{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,41 +1,41 @@\n-Zip file size: 426419 bytes, number of entries: 177\n+Zip file size: 426194 bytes, number of entries: 177\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/\n -rw----     2.0 fat       25 bX stor 70-Jan-01 00:00 META-INF/MANIFEST.MF\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/dev.langchain4j/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/dev.langchain4j/langchain4j-core/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/dev.langchain4j/langchain4j-core/pom.properties\n -rw----     2.0 fat     7181 bX stor 70-Jan-01 00:00 META-INF/maven/dev.langchain4j/langchain4j-core/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/services/\n -rw----     2.0 fat       82 bX stor 70-Jan-01 00:00 META-INF/services/dev.langchain4j.spi.ExampleService\n -rw----     2.0 fat       39 bX stor 70-Jan-01 00:00 META-INF/services/dev.langchain4j.spi.SupplierService\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/agent/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/\n--rw----     2.0 fat     1273 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.class\n--rw----     2.0 fat     6167 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/JsonSchemaPropertyTest.class\n+-rw----     2.0 fat     1332 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.class\n+-rw----     2.0 fat     6158 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/JsonSchemaPropertyTest.class\n -rw----     2.0 fat     2507 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/ToolExecutionRequestTest.class\n -rw----     2.0 fat     2198 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.class\n -rw----     2.0 fat     3090 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/ToolParametersTest.class\n -rw----     2.0 fat     5097 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/ToolSpecificationTest.class\n--rw----     2.0 fat     1258 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/ToolSpecificationsTest$E.class\n+-rw----     2.0 fat     1317 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/ToolSpecificationsTest$E.class\n -rw----     2.0 fat     2721 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper.class\n--rw----     2.0 fat     9413 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/ToolSpecificationsTest.class\n+-rw----     2.0 fat     9418 bX stor 70-Jan-01 00:00 dev/langchain4j/agent/tool/ToolSpecificationsTest.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/classification/\n--rw----     2.0 fat     1682 bX stor 70-Jan-01 00:00 dev/langchain4j/classification/TextClassifierTest$CatClassifier.class\n--rw----     2.0 fat     1324 bX stor 70-Jan-01 00:00 dev/langchain4j/classification/TextClassifierTest$Categories.class\n+-rw----     2.0 fat     1679 bX stor 70-Jan-01 00:00 dev/langchain4j/classification/TextClassifierTest$CatClassifier.class\n+-rw----     2.0 fat     1383 bX stor 70-Jan-01 00:00 dev/langchain4j/classification/TextClassifierTest$Categories.class\n -rw----     2.0 fat     1754 bX stor 70-Jan-01 00:00 dev/langchain4j/classification/TextClassifierTest.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/data/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/data/document/\n--rw----     2.0 fat     1075 bX stor 70-Jan-01 00:00 dev/langchain4j/data/document/DocumentLoaderTest$1.class\n+-rw----     2.0 fat     1066 bX stor 70-Jan-01 00:00 dev/langchain4j/data/document/DocumentLoaderTest$1.class\n -rw----     2.0 fat     1178 bX stor 70-Jan-01 00:00 dev/langchain4j/data/document/DocumentLoaderTest$StringSource.class\n--rw----     2.0 fat     1356 bX stor 70-Jan-01 00:00 dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.class\n--rw----     2.0 fat     5190 bX stor 70-Jan-01 00:00 dev/langchain4j/data/document/DocumentLoaderTest.class\n+-rw----     2.0 fat     1350 bX stor 70-Jan-01 00:00 dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.class\n+-rw----     2.0 fat     5046 bX stor 70-Jan-01 00:00 dev/langchain4j/data/document/DocumentLoaderTest.class\n -rw----     2.0 fat     2966 bX stor 70-Jan-01 00:00 dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.class\n -rw----     2.0 fat     1991 bX stor 70-Jan-01 00:00 dev/langchain4j/data/document/DocumentSplitterTest.class\n -rw----     2.0 fat     3689 bX stor 70-Jan-01 00:00 dev/langchain4j/data/document/DocumentTest.class\n -rw----     2.0 fat     2808 bX stor 70-Jan-01 00:00 dev/langchain4j/data/document/DocumentTransformerTest.class\n -rw----     2.0 fat     3966 bX stor 70-Jan-01 00:00 dev/langchain4j/data/document/MetadataTest.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/data/embedding/\n -rw----     2.0 fat     2927 bX stor 70-Jan-01 00:00 dev/langchain4j/data/embedding/EmbeddingTest.class\n@@ -47,46 +47,46 @@\n -rw----     2.0 fat     1231 bX stor 70-Jan-01 00:00 dev/langchain4j/data/message/ChatMessageTypeTest.class\n -rw----     2.0 fat     4936 bX stor 70-Jan-01 00:00 dev/langchain4j/data/message/ImageContentTest.class\n -rw----     2.0 fat     2245 bX stor 70-Jan-01 00:00 dev/langchain4j/data/message/SystemMessageTest.class\n -rw----     2.0 fat     3381 bX stor 70-Jan-01 00:00 dev/langchain4j/data/message/ToolExecutionResultMessageTest.class\n -rw----     2.0 fat     6692 bX stor 70-Jan-01 00:00 dev/langchain4j/data/message/UserMessageTest.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/data/segment/\n -rw----     2.0 fat     4470 bX stor 70-Jan-01 00:00 dev/langchain4j/data/segment/TextSegmentTest.class\n--rw----     2.0 fat     1309 bX stor 70-Jan-01 00:00 dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.class\n+-rw----     2.0 fat     1306 bX stor 70-Jan-01 00:00 dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.class\n -rw----     2.0 fat     2226 bX stor 70-Jan-01 00:00 dev/langchain4j/data/segment/TextSegmentTransformerTest.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/internal/\n -rw----     2.0 fat     1351 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/ExceptionsTest.class\n -rw----     2.0 fat      722 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/GsonJsonCodecTest$1.class\n--rw----     2.0 fat      975 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/GsonJsonCodecTest$DateExample.class\n--rw----     2.0 fat      857 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/GsonJsonCodecTest$Example.class\n--rw----     2.0 fat     6044 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/GsonJsonCodecTest.class\n+-rw----     2.0 fat      972 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/GsonJsonCodecTest$DateExample.class\n+-rw----     2.0 fat      854 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/GsonJsonCodecTest$Example.class\n+-rw----     2.0 fat     5932 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/GsonJsonCodecTest.class\n -rw----     2.0 fat      222 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/JsonTest$1.class\n -rw----     2.0 fat     1567 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/JsonTest$TestData.class\n -rw----     2.0 fat      687 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/JsonTest$TestObject.class\n--rw----     2.0 fat     4228 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/JsonTest.class\n--rw----     2.0 fat     5792 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/RetryUtilsTest.class\n--rw----     2.0 fat     9684 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/UtilsTest.class\n--rw----     2.0 fat    10130 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/ValidationUtilsTest.class\n+-rw----     2.0 fat     4092 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/JsonTest.class\n+-rw----     2.0 fat     5804 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/RetryUtilsTest.class\n+-rw----     2.0 fat     9682 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/UtilsTest.class\n+-rw----     2.0 fat    10127 bX stor 70-Jan-01 00:00 dev/langchain4j/internal/ValidationUtilsTest.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/model/\n--rw----     2.0 fat     2655 bX stor 70-Jan-01 00:00 dev/langchain4j/model/ExampleTestTokenizer.class\n+-rw----     2.0 fat     2652 bX stor 70-Jan-01 00:00 dev/langchain4j/model/ExampleTestTokenizer.class\n -rw----     2.0 fat     1144 bX stor 70-Jan-01 00:00 dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.class\n -rw----     2.0 fat     1143 bX stor 70-Jan-01 00:00 dev/langchain4j/model/StreamingResponseHandlerTest.class\n -rw----     2.0 fat      753 bX stor 70-Jan-01 00:00 dev/langchain4j/model/TokenizerTest$ExampleTools.class\n -rw----     2.0 fat     2340 bX stor 70-Jan-01 00:00 dev/langchain4j/model/TokenizerTest.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/model/chat/\n -rw----     2.0 fat     1566 bX stor 70-Jan-01 00:00 dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.class\n -rw----     2.0 fat     5045 bX stor 70-Jan-01 00:00 dev/langchain4j/model/chat/ChatLanguageModelTest.class\n -rw----     2.0 fat     1874 bX stor 70-Jan-01 00:00 dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.class\n -rw----     2.0 fat     2127 bX stor 70-Jan-01 00:00 dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.class\n -rw----     2.0 fat     5884 bX stor 70-Jan-01 00:00 dev/langchain4j/model/chat/StreamingChatLanguageModelTest.class\n--rw----     2.0 fat     2609 bX stor 70-Jan-01 00:00 dev/langchain4j/model/chat/TestStreamingResponseHandler.class\n+-rw----     2.0 fat     2606 bX stor 70-Jan-01 00:00 dev/langchain4j/model/chat/TestStreamingResponseHandler.class\n -rw----     2.0 fat     2082 bX stor 70-Jan-01 00:00 dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class\n -rw----     2.0 fat     1991 bX stor 70-Jan-01 00:00 dev/langchain4j/model/chat/TokenCountEstimatorTest.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/model/chat/mock/\n--rw----     2.0 fat     2792 bX stor 70-Jan-01 00:00 dev/langchain4j/model/chat/mock/ChatModelMock.class\n+-rw----     2.0 fat     2786 bX stor 70-Jan-01 00:00 dev/langchain4j/model/chat/mock/ChatModelMock.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/model/embedding/\n -rw----     2.0 fat     1344 bX stor 70-Jan-01 00:00 dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.class\n -rw----     2.0 fat     3378 bX stor 70-Jan-01 00:00 dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.class\n -rw----     2.0 fat     3982 bX stor 70-Jan-01 00:00 dev/langchain4j/model/embedding/EmbeddingModelTest.class\n -rw----     2.0 fat      854 bX stor 70-Jan-01 00:00 dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class\n -rw----     2.0 fat     1675 bX stor 70-Jan-01 00:00 dev/langchain4j/model/embedding/TokenCountEstimatorTest.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/model/image/\n@@ -152,28 +152,28 @@\n -rw----     2.0 fat     3931 bX stor 70-Jan-01 00:00 dev/langchain4j/retriever/RetrieverTest.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/spi/\n -rw----     2.0 fat      174 bX stor 70-Jan-01 00:00 dev/langchain4j/spi/ExampleService.class\n -rw----     2.0 fat      479 bX stor 70-Jan-01 00:00 dev/langchain4j/spi/ExampleServiceGoodbye.class\n -rw----     2.0 fat      471 bX stor 70-Jan-01 00:00 dev/langchain4j/spi/ExampleServiceHello.class\n -rw----     2.0 fat      684 bX stor 70-Jan-01 00:00 dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.class\n -rw----     2.0 fat      296 bX stor 70-Jan-01 00:00 dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.class\n--rw----     2.0 fat     5102 bX stor 70-Jan-01 00:00 dev/langchain4j/spi/ServiceHelperTest.class\n+-rw----     2.0 fat     5104 bX stor 70-Jan-01 00:00 dev/langchain4j/spi/ServiceHelperTest.class\n -rw----     2.0 fat      256 bX stor 70-Jan-01 00:00 dev/langchain4j/spi/SupplierService.class\n -rw----     2.0 fat      565 bX stor 70-Jan-01 00:00 dev/langchain4j/spi/SupplierServiceImpl.class\n -rw----     2.0 fat      272 bX stor 70-Jan-01 00:00 dev/langchain4j/spi/SupplierServiceNotFound.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/spi/prompt/\n -rw----     2.0 fat     1604 bX stor 70-Jan-01 00:00 dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/store/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/store/embedding/\n -rw----     2.0 fat     3474 bX stor 70-Jan-01 00:00 dev/langchain4j/store/embedding/CosineSimilarityTest.class\n -rw----     2.0 fat     2957 bX stor 70-Jan-01 00:00 dev/langchain4j/store/embedding/EmbeddingMatchTest.class\n--rw----     2.0 fat     3775 bX stor 70-Jan-01 00:00 dev/langchain4j/store/embedding/EmbeddingStoreIT.class\n+-rw----     2.0 fat     3778 bX stor 70-Jan-01 00:00 dev/langchain4j/store/embedding/EmbeddingStoreIT.class\n -rw----     2.0 fat     6448 bX stor 70-Jan-01 00:00 dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest.class\n -rw----     2.0 fat     1878 bX stor 70-Jan-01 00:00 dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.class\n -rw----     2.0 fat     3183 bX stor 70-Jan-01 00:00 dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.class\n -rw----     2.0 fat     3655 bX stor 70-Jan-01 00:00 dev/langchain4j/store/embedding/EmbeddingStoreTest.class\n--rw----     2.0 fat     8265 bX stor 70-Jan-01 00:00 dev/langchain4j/store/embedding/EmbeddingStoreWithoutMetadataIT.class\n+-rw----     2.0 fat     8286 bX stor 70-Jan-01 00:00 dev/langchain4j/store/embedding/EmbeddingStoreWithoutMetadataIT.class\n -rw----     2.0 fat      867 bX stor 70-Jan-01 00:00 dev/langchain4j/store/embedding/RelevanceScoreTest.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/store/memory/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/store/memory/chat/\n -rw----     2.0 fat     1554 bX stor 70-Jan-01 00:00 dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest.class\n-177 files, 388883 bytes uncompressed, 388883 bytes compressed:  0.0%\n+177 files, 388658 bytes uncompressed, 388658 bytes compressed:  0.0%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -346,9592 +346,9592 @@\n #\n 0211F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 02121   Length              0005 (5)\n 02123   Flags               01 (1) 'Modification'\n 02124   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n 02128 PAYLOAD\n \n-02621 DATA DESCRIPTOR       08074B50 (134695760)\n-02625 CRC                   BF90882F (3213920303)\n-02629 Compressed Size       000004F9 (1273)\n-0262D Uncompressed Size     000004F9 (1273)\n-\n-02631 LOCAL HEADER #16      04034B50 (67324752)\n-02635 Extract Zip Spec      14 (20) '2.0'\n-02636 Extract OS            00 (0) 'MS-DOS'\n-02637 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-02639 Compression Method    0000 (0) 'Stored'\n-0263B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0263F CRC                   00000000 (0)\n-02643 Compressed Size       00000000 (0)\n-02647 Uncompressed Size     00000000 (0)\n-0264B Filename Length       0037 (55)\n-0264D Extra Length          0009 (9)\n-0264F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x264F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-02686 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-02688   Length              0005 (5)\n-0268A   Flags               01 (1) 'Modification'\n-0268B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0268F PAYLOAD\n-\n-03EA6 DATA DESCRIPTOR       08074B50 (134695760)\n-03EAA CRC                   2B935A46 (731077190)\n-03EAE Compressed Size       00001817 (6167)\n-03EB2 Uncompressed Size     00001817 (6167)\n-\n-03EB6 LOCAL HEADER #17      04034B50 (67324752)\n-03EBA Extract Zip Spec      14 (20) '2.0'\n-03EBB Extract OS            00 (0) 'MS-DOS'\n-03EBC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-03EBE Compression Method    0000 (0) 'Stored'\n-03EC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03EC4 CRC                   00000000 (0)\n-03EC8 Compressed Size       00000000 (0)\n-03ECC Uncompressed Size     00000000 (0)\n-03ED0 Filename Length       0039 (57)\n-03ED2 Extra Length          0009 (9)\n-03ED4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3ED4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03F0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03F0F   Length              0005 (5)\n-03F11   Flags               01 (1) 'Modification'\n-03F12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03F16 PAYLOAD\n-\n-048E1 DATA DESCRIPTOR       08074B50 (134695760)\n-048E5 CRC                   CE3C4212 (3460055570)\n-048E9 Compressed Size       000009CB (2507)\n-048ED Uncompressed Size     000009CB (2507)\n-\n-048F1 LOCAL HEADER #18      04034B50 (67324752)\n-048F5 Extract Zip Spec      14 (20) '2.0'\n-048F6 Extract OS            00 (0) 'MS-DOS'\n-048F7 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-048F9 Compression Method    0000 (0) 'Stored'\n-048FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-048FF CRC                   00000000 (0)\n-04903 Compressed Size       00000000 (0)\n-04907 Uncompressed Size     00000000 (0)\n-0490B Filename Length       003D (61)\n-0490D Extra Length          0009 (9)\n-0490F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x490F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0494C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0494E   Length              0005 (5)\n-04950   Flags               01 (1) 'Modification'\n-04951   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04955 PAYLOAD\n-\n-051EB DATA DESCRIPTOR       08074B50 (134695760)\n-051EF CRC                   057A8D92 (91917714)\n-051F3 Compressed Size       00000896 (2198)\n-051F7 Uncompressed Size     00000896 (2198)\n-\n-051FB LOCAL HEADER #19      04034B50 (67324752)\n-051FF Extract Zip Spec      14 (20) '2.0'\n-05200 Extract OS            00 (0) 'MS-DOS'\n-05201 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-05203 Compression Method    0000 (0) 'Stored'\n-05205 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05209 CRC                   00000000 (0)\n-0520D Compressed Size       00000000 (0)\n-05211 Uncompressed Size     00000000 (0)\n-05215 Filename Length       0033 (51)\n-05217 Extra Length          0009 (9)\n-05219 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5219: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0524C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0524E   Length              0005 (5)\n-05250   Flags               01 (1) 'Modification'\n-05251   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05255 PAYLOAD\n-\n-05E67 DATA DESCRIPTOR       08074B50 (134695760)\n-05E6B CRC                   CA0A38E7 (3389667559)\n-05E6F Compressed Size       00000C12 (3090)\n-05E73 Uncompressed Size     00000C12 (3090)\n-\n-05E77 LOCAL HEADER #20      04034B50 (67324752)\n-05E7B Extract Zip Spec      14 (20) '2.0'\n-05E7C Extract OS            00 (0) 'MS-DOS'\n-05E7D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-05E7F Compression Method    0000 (0) 'Stored'\n-05E81 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05E85 CRC                   00000000 (0)\n-05E89 Compressed Size       00000000 (0)\n-05E8D Uncompressed Size     00000000 (0)\n-05E91 Filename Length       0036 (54)\n-05E93 Extra Length          0009 (9)\n-05E95 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E95: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05ECB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05ECD   Length              0005 (5)\n-05ECF   Flags               01 (1) 'Modification'\n-05ED0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05ED4 PAYLOAD\n-\n-072BD DATA DESCRIPTOR       08074B50 (134695760)\n-072C1 CRC                   846255CA (2221037002)\n-072C5 Compressed Size       000013E9 (5097)\n-072C9 Uncompressed Size     000013E9 (5097)\n-\n-072CD LOCAL HEADER #21      04034B50 (67324752)\n-072D1 Extract Zip Spec      14 (20) '2.0'\n-072D2 Extract OS            00 (0) 'MS-DOS'\n-072D3 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-072D5 Compression Method    0000 (0) 'Stored'\n-072D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-072DB CRC                   00000000 (0)\n-072DF Compressed Size       00000000 (0)\n-072E3 Uncompressed Size     00000000 (0)\n-072E7 Filename Length       0039 (57)\n-072E9 Extra Length          0009 (9)\n-072EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x72EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07324 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07326   Length              0005 (5)\n-07328   Flags               01 (1) 'Modification'\n-07329   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0732D PAYLOAD\n-\n-07817 DATA DESCRIPTOR       08074B50 (134695760)\n-0781B CRC                   60EF8975 (1626311029)\n-0781F Compressed Size       000004EA (1258)\n-07823 Uncompressed Size     000004EA (1258)\n-\n-07827 LOCAL HEADER #22      04034B50 (67324752)\n-0782B Extract Zip Spec      14 (20) '2.0'\n-0782C Extract OS            00 (0) 'MS-DOS'\n-0782D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0782F Compression Method    0000 (0) 'Stored'\n-07831 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07835 CRC                   00000000 (0)\n-07839 Compressed Size       00000000 (0)\n-0783D Uncompressed Size     00000000 (0)\n-07841 Filename Length       003F (63)\n-07843 Extra Length          0009 (9)\n-07845 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7845: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07884 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07886   Length              0005 (5)\n-07888   Flags               01 (1) 'Modification'\n-07889   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0788D PAYLOAD\n-\n-0832E DATA DESCRIPTOR       08074B50 (134695760)\n-08332 CRC                   A9DEB6E6 (2849945318)\n-08336 Compressed Size       00000AA1 (2721)\n-0833A Uncompressed Size     00000AA1 (2721)\n-\n-0833E LOCAL HEADER #23      04034B50 (67324752)\n-08342 Extract Zip Spec      14 (20) '2.0'\n-08343 Extract OS            00 (0) 'MS-DOS'\n-08344 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-08346 Compression Method    0000 (0) 'Stored'\n-08348 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0834C CRC                   00000000 (0)\n-08350 Compressed Size       00000000 (0)\n-08354 Uncompressed Size     00000000 (0)\n-08358 Filename Length       0037 (55)\n-0835A Extra Length          0009 (9)\n-0835C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x835C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-08393 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-08395   Length              0005 (5)\n-08397   Flags               01 (1) 'Modification'\n-08398   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0839C PAYLOAD\n-\n-0A861 DATA DESCRIPTOR       08074B50 (134695760)\n-0A865 CRC                   7023D1A9 (1881395625)\n-0A869 Compressed Size       000024C5 (9413)\n-0A86D Uncompressed Size     000024C5 (9413)\n-\n-0A871 LOCAL HEADER #24      04034B50 (67324752)\n-0A875 Extract Zip Spec      14 (20) '2.0'\n-0A876 Extract OS            00 (0) 'MS-DOS'\n-0A877 General Purpose Flag  0000 (0)\n-0A879 Compression Method    0000 (0) 'Stored'\n-0A87B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A87F CRC                   00000000 (0)\n-0A883 Compressed Size       00000000 (0)\n-0A887 Uncompressed Size     00000000 (0)\n-0A88B Filename Length       001F (31)\n-0A88D Extra Length          0009 (9)\n-0A88F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA88F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A8AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A8B0   Length              0005 (5)\n-0A8B2   Flags               01 (1) 'Modification'\n-0A8B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0A8B7 LOCAL HEADER #25      04034B50 (67324752)\n-0A8BB Extract Zip Spec      14 (20) '2.0'\n-0A8BC Extract OS            00 (0) 'MS-DOS'\n-0A8BD General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0A8BF Compression Method    0000 (0) 'Stored'\n-0A8C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A8C5 CRC                   00000000 (0)\n-0A8C9 Compressed Size       00000000 (0)\n-0A8CD Uncompressed Size     00000000 (0)\n-0A8D1 Filename Length       0045 (69)\n-0A8D3 Extra Length          0009 (9)\n-0A8D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA8D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A91A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A91C   Length              0005 (5)\n-0A91E   Flags               01 (1) 'Modification'\n-0A91F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0A923 PAYLOAD\n-\n-0AFB5 DATA DESCRIPTOR       08074B50 (134695760)\n-0AFB9 CRC                   27E382EF (669221615)\n-0AFBD Compressed Size       00000692 (1682)\n-0AFC1 Uncompressed Size     00000692 (1682)\n-\n-0AFC5 LOCAL HEADER #26      04034B50 (67324752)\n-0AFC9 Extract Zip Spec      14 (20) '2.0'\n-0AFCA Extract OS            00 (0) 'MS-DOS'\n-0AFCB General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0AFCD Compression Method    0000 (0) 'Stored'\n-0AFCF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0AFD3 CRC                   00000000 (0)\n-0AFD7 Compressed Size       00000000 (0)\n-0AFDB Uncompressed Size     00000000 (0)\n-0AFDF Filename Length       0042 (66)\n-0AFE1 Extra Length          0009 (9)\n-0AFE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xAFE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0B025 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0B027   Length              0005 (5)\n-0B029   Flags               01 (1) 'Modification'\n-0B02A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0B02E PAYLOAD\n-\n-0B55A DATA DESCRIPTOR       08074B50 (134695760)\n-0B55E CRC                   4A264766 (1244022630)\n-0B562 Compressed Size       0000052C (1324)\n-0B566 Uncompressed Size     0000052C (1324)\n-\n-0B56A LOCAL HEADER #27      04034B50 (67324752)\n-0B56E Extract Zip Spec      14 (20) '2.0'\n-0B56F Extract OS            00 (0) 'MS-DOS'\n-0B570 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0B572 Compression Method    0000 (0) 'Stored'\n-0B574 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0B578 CRC                   00000000 (0)\n-0B57C Compressed Size       00000000 (0)\n-0B580 Uncompressed Size     00000000 (0)\n-0B584 Filename Length       0037 (55)\n-0B586 Extra Length          0009 (9)\n-0B588 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xB588: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0B5BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0B5C1   Length              0005 (5)\n-0B5C3   Flags               01 (1) 'Modification'\n-0B5C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0B5C8 PAYLOAD\n-\n-0BCA2 DATA DESCRIPTOR       08074B50 (134695760)\n-0BCA6 CRC                   03008853 (50366547)\n-0BCAA Compressed Size       000006DA (1754)\n-0BCAE Uncompressed Size     000006DA (1754)\n-\n-0BCB2 LOCAL HEADER #28      04034B50 (67324752)\n-0BCB6 Extract Zip Spec      14 (20) '2.0'\n-0BCB7 Extract OS            00 (0) 'MS-DOS'\n-0BCB8 General Purpose Flag  0000 (0)\n-0BCBA Compression Method    0000 (0) 'Stored'\n-0BCBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0BCC0 CRC                   00000000 (0)\n-0BCC4 Compressed Size       00000000 (0)\n-0BCC8 Uncompressed Size     00000000 (0)\n-0BCCC Filename Length       0015 (21)\n-0BCCE Extra Length          0009 (9)\n-0BCD0 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBCD0: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0BCE5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0BCE7   Length              0005 (5)\n-0BCE9   Flags               01 (1) 'Modification'\n-0BCEA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0BCEE LOCAL HEADER #29      04034B50 (67324752)\n-0BCF2 Extract Zip Spec      14 (20) '2.0'\n-0BCF3 Extract OS            00 (0) 'MS-DOS'\n-0BCF4 General Purpose Flag  0000 (0)\n-0BCF6 Compression Method    0000 (0) 'Stored'\n-0BCF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0BCFC CRC                   00000000 (0)\n-0BD00 Compressed Size       00000000 (0)\n-0BD04 Uncompressed Size     00000000 (0)\n-0BD08 Filename Length       001E (30)\n-0BD0A Extra Length          0009 (9)\n-0BD0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBD0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0BD2A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0BD2C   Length              0005 (5)\n-0BD2E   Flags               01 (1) 'Modification'\n-0BD2F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0BD33 LOCAL HEADER #30      04034B50 (67324752)\n-0BD37 Extract Zip Spec      14 (20) '2.0'\n-0BD38 Extract OS            00 (0) 'MS-DOS'\n-0BD39 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0BD3B Compression Method    0000 (0) 'Stored'\n-0BD3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0BD41 CRC                   00000000 (0)\n-0BD45 Compressed Size       00000000 (0)\n-0BD49 Uncompressed Size     00000000 (0)\n-0BD4D Filename Length       0038 (56)\n-0BD4F Extra Length          0009 (9)\n-0BD51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBD51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0BD89 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0BD8B   Length              0005 (5)\n-0BD8D   Flags               01 (1) 'Modification'\n-0BD8E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0BD92 PAYLOAD\n-\n-0C1C5 DATA DESCRIPTOR       08074B50 (134695760)\n-0C1C9 CRC                   E30F75DE (3809441246)\n-0C1CD Compressed Size       00000433 (1075)\n-0C1D1 Uncompressed Size     00000433 (1075)\n-\n-0C1D5 LOCAL HEADER #31      04034B50 (67324752)\n-0C1D9 Extract Zip Spec      14 (20) '2.0'\n-0C1DA Extract OS            00 (0) 'MS-DOS'\n-0C1DB General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0C1DD Compression Method    0000 (0) 'Stored'\n-0C1DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0C1E3 CRC                   00000000 (0)\n-0C1E7 Compressed Size       00000000 (0)\n-0C1EB Uncompressed Size     00000000 (0)\n-0C1EF Filename Length       0043 (67)\n-0C1F1 Extra Length          0009 (9)\n-0C1F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xC1F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0C236 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0C238   Length              0005 (5)\n-0C23A   Flags               01 (1) 'Modification'\n-0C23B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0C23F PAYLOAD\n-\n-0C6D9 DATA DESCRIPTOR       08074B50 (134695760)\n-0C6DD CRC                   74C75A24 (1959221796)\n-0C6E1 Compressed Size       0000049A (1178)\n-0C6E5 Uncompressed Size     0000049A (1178)\n-\n-0C6E9 LOCAL HEADER #32      04034B50 (67324752)\n-0C6ED Extract Zip Spec      14 (20) '2.0'\n-0C6EE Extract OS            00 (0) 'MS-DOS'\n-0C6EF General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0C6F1 Compression Method    0000 (0) 'Stored'\n-0C6F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0C6F7 CRC                   00000000 (0)\n-0C6FB Compressed Size       00000000 (0)\n-0C6FF Uncompressed Size     00000000 (0)\n-0C703 Filename Length       0044 (68)\n-0C705 Extra Length          0009 (9)\n-0C707 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xC707: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0C74B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0C74D   Length              0005 (5)\n-0C74F   Flags               01 (1) 'Modification'\n-0C750   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0C754 PAYLOAD\n-\n-0CCA0 DATA DESCRIPTOR       08074B50 (134695760)\n-0CCA4 CRC                   5A0F0092 (1510932626)\n-0CCA8 Compressed Size       0000054C (1356)\n-0CCAC Uncompressed Size     0000054C (1356)\n-\n-0CCB0 LOCAL HEADER #33      04034B50 (67324752)\n-0CCB4 Extract Zip Spec      14 (20) '2.0'\n-0CCB5 Extract OS            00 (0) 'MS-DOS'\n-0CCB6 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0CCB8 Compression Method    0000 (0) 'Stored'\n-0CCBA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0CCBE CRC                   00000000 (0)\n-0CCC2 Compressed Size       00000000 (0)\n-0CCC6 Uncompressed Size     00000000 (0)\n-0CCCA Filename Length       0036 (54)\n-0CCCC Extra Length          0009 (9)\n-0CCCE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xCCCE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0CD04 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0CD06   Length              0005 (5)\n-0CD08   Flags               01 (1) 'Modification'\n-0CD09   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0CD0D PAYLOAD\n-\n-0E153 DATA DESCRIPTOR       08074B50 (134695760)\n-0E157 CRC                   CFC03DEB (3485482475)\n-0E15B Compressed Size       00001446 (5190)\n-0E15F Uncompressed Size     00001446 (5190)\n-\n-0E163 LOCAL HEADER #34      04034B50 (67324752)\n-0E167 Extract Zip Spec      14 (20) '2.0'\n-0E168 Extract OS            00 (0) 'MS-DOS'\n-0E169 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0E16B Compression Method    0000 (0) 'Stored'\n-0E16D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0E171 CRC                   00000000 (0)\n-0E175 Compressed Size       00000000 (0)\n-0E179 Uncompressed Size     00000000 (0)\n-0E17D Filename Length       004B (75)\n-0E17F Extra Length          0009 (9)\n-0E181 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xE181: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0E1CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0E1CE   Length              0005 (5)\n-0E1D0   Flags               01 (1) 'Modification'\n-0E1D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0E1D5 PAYLOAD\n-\n-0ED6B DATA DESCRIPTOR       08074B50 (134695760)\n-0ED6F CRC                   DAAE3E94 (3668852372)\n-0ED73 Compressed Size       00000B96 (2966)\n-0ED77 Uncompressed Size     00000B96 (2966)\n-\n-0ED7B LOCAL HEADER #35      04034B50 (67324752)\n-0ED7F Extract Zip Spec      14 (20) '2.0'\n-0ED80 Extract OS            00 (0) 'MS-DOS'\n-0ED81 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0ED83 Compression Method    0000 (0) 'Stored'\n-0ED85 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0ED89 CRC                   00000000 (0)\n-0ED8D Compressed Size       00000000 (0)\n-0ED91 Uncompressed Size     00000000 (0)\n-0ED95 Filename Length       0038 (56)\n-0ED97 Extra Length          0009 (9)\n-0ED99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xED99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0EDD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0EDD3   Length              0005 (5)\n-0EDD5   Flags               01 (1) 'Modification'\n-0EDD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0EDDA PAYLOAD\n-\n-0F5A1 DATA DESCRIPTOR       08074B50 (134695760)\n-0F5A5 CRC                   8DE30265 (2380464741)\n-0F5A9 Compressed Size       000007C7 (1991)\n-0F5AD Uncompressed Size     000007C7 (1991)\n-\n-0F5B1 LOCAL HEADER #36      04034B50 (67324752)\n-0F5B5 Extract Zip Spec      14 (20) '2.0'\n-0F5B6 Extract OS            00 (0) 'MS-DOS'\n-0F5B7 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0F5B9 Compression Method    0000 (0) 'Stored'\n-0F5BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0F5BF CRC                   00000000 (0)\n-0F5C3 Compressed Size       00000000 (0)\n-0F5C7 Uncompressed Size     00000000 (0)\n-0F5CB Filename Length       0030 (48)\n-0F5CD Extra Length          0009 (9)\n-0F5CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xF5CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0F5FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0F601   Length              0005 (5)\n-0F603   Flags               01 (1) 'Modification'\n-0F604   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0F608 PAYLOAD\n-\n-10471 DATA DESCRIPTOR       08074B50 (134695760)\n-10475 CRC                   B0BFE5FC (2965366268)\n-10479 Compressed Size       00000E69 (3689)\n-1047D Uncompressed Size     00000E69 (3689)\n-\n-10481 LOCAL HEADER #37      04034B50 (67324752)\n-10485 Extract Zip Spec      14 (20) '2.0'\n-10486 Extract OS            00 (0) 'MS-DOS'\n-10487 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-10489 Compression Method    0000 (0) 'Stored'\n-1048B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1048F CRC                   00000000 (0)\n-10493 Compressed Size       00000000 (0)\n-10497 Uncompressed Size     00000000 (0)\n-1049B Filename Length       003B (59)\n-1049D Extra Length          0009 (9)\n-1049F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1049F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-104DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-104DC   Length              0005 (5)\n-104DE   Flags               01 (1) 'Modification'\n-104DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-104E3 PAYLOAD\n-\n-10FDB DATA DESCRIPTOR       08074B50 (134695760)\n-10FDF CRC                   BB4A5EDA (3142213338)\n-10FE3 Compressed Size       00000AF8 (2808)\n-10FE7 Uncompressed Size     00000AF8 (2808)\n-\n-10FEB LOCAL HEADER #38      04034B50 (67324752)\n-10FEF Extract Zip Spec      14 (20) '2.0'\n-10FF0 Extract OS            00 (0) 'MS-DOS'\n-10FF1 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-10FF3 Compression Method    0000 (0) 'Stored'\n-10FF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-10FF9 CRC                   00000000 (0)\n-10FFD Compressed Size       00000000 (0)\n-11001 Uncompressed Size     00000000 (0)\n-11005 Filename Length       0030 (48)\n-11007 Extra Length          0009 (9)\n-11009 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11009: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11039 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1103B   Length              0005 (5)\n-1103D   Flags               01 (1) 'Modification'\n-1103E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11042 PAYLOAD\n-\n-11FC0 DATA DESCRIPTOR       08074B50 (134695760)\n-11FC4 CRC                   A03B05A8 (2688222632)\n-11FC8 Compressed Size       00000F7E (3966)\n-11FCC Uncompressed Size     00000F7E (3966)\n-\n-11FD0 LOCAL HEADER #39      04034B50 (67324752)\n-11FD4 Extract Zip Spec      14 (20) '2.0'\n-11FD5 Extract OS            00 (0) 'MS-DOS'\n-11FD6 General Purpose Flag  0000 (0)\n-11FD8 Compression Method    0000 (0) 'Stored'\n-11FDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11FDE CRC                   00000000 (0)\n-11FE2 Compressed Size       00000000 (0)\n-11FE6 Uncompressed Size     00000000 (0)\n-11FEA Filename Length       001F (31)\n-11FEC Extra Length          0009 (9)\n-11FEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11FEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1200D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1200F   Length              0005 (5)\n-12011   Flags               01 (1) 'Modification'\n-12012   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-12016 LOCAL HEADER #40      04034B50 (67324752)\n-1201A Extract Zip Spec      14 (20) '2.0'\n-1201B Extract OS            00 (0) 'MS-DOS'\n-1201C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1201E Compression Method    0000 (0) 'Stored'\n-12020 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12024 CRC                   00000000 (0)\n-12028 Compressed Size       00000000 (0)\n-1202C Uncompressed Size     00000000 (0)\n-12030 Filename Length       0032 (50)\n-12032 Extra Length          0009 (9)\n-12034 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12034: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-12066 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12068   Length              0005 (5)\n-1206A   Flags               01 (1) 'Modification'\n-1206B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1206F PAYLOAD\n-\n-12BDE DATA DESCRIPTOR       08074B50 (134695760)\n-12BE2 CRC                   E6B32CE0 (3870502112)\n-12BE6 Compressed Size       00000B6F (2927)\n-12BEA Uncompressed Size     00000B6F (2927)\n-\n-12BEE LOCAL HEADER #41      04034B50 (67324752)\n-12BF2 Extract Zip Spec      14 (20) '2.0'\n-12BF3 Extract OS            00 (0) 'MS-DOS'\n-12BF4 General Purpose Flag  0000 (0)\n-12BF6 Compression Method    0000 (0) 'Stored'\n-12BF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12BFC CRC                   00000000 (0)\n-12C00 Compressed Size       00000000 (0)\n-12C04 Uncompressed Size     00000000 (0)\n-12C08 Filename Length       001B (27)\n-12C0A Extra Length          0009 (9)\n-12C0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12C0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-12C27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12C29   Length              0005 (5)\n-12C2B   Flags               01 (1) 'Modification'\n-12C2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-12C30 LOCAL HEADER #42      04034B50 (67324752)\n-12C34 Extract Zip Spec      14 (20) '2.0'\n-12C35 Extract OS            00 (0) 'MS-DOS'\n-12C36 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-12C38 Compression Method    0000 (0) 'Stored'\n-12C3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12C3E CRC                   00000000 (0)\n-12C42 Compressed Size       00000000 (0)\n-12C46 Uncompressed Size     00000000 (0)\n-12C4A Filename Length       002A (42)\n-12C4C Extra Length          0009 (9)\n-12C4E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12C4E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-12C78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12C7A   Length              0005 (5)\n-12C7C   Flags               01 (1) 'Modification'\n-12C7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-12C81 PAYLOAD\n-\n-13928 DATA DESCRIPTOR       08074B50 (134695760)\n-1392C CRC                   A23E9949 (2722011465)\n-13930 Compressed Size       00000CA7 (3239)\n-13934 Uncompressed Size     00000CA7 (3239)\n-\n-13938 LOCAL HEADER #43      04034B50 (67324752)\n-1393C Extract Zip Spec      14 (20) '2.0'\n-1393D Extract OS            00 (0) 'MS-DOS'\n-1393E General Purpose Flag  0000 (0)\n-13940 Compression Method    0000 (0) 'Stored'\n-13942 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13946 CRC                   00000000 (0)\n-1394A Compressed Size       00000000 (0)\n-1394E Uncompressed Size     00000000 (0)\n-13952 Filename Length       001D (29)\n-13954 Extra Length          0009 (9)\n-13956 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13956: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13973 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13975   Length              0005 (5)\n-13977   Flags               01 (1) 'Modification'\n-13978   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1397C LOCAL HEADER #44      04034B50 (67324752)\n-13980 Extract Zip Spec      14 (20) '2.0'\n-13981 Extract OS            00 (0) 'MS-DOS'\n-13982 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-13984 Compression Method    0000 (0) 'Stored'\n-13986 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1398A CRC                   00000000 (0)\n-1398E Compressed Size       00000000 (0)\n-13992 Uncompressed Size     00000000 (0)\n-13996 Filename Length       0030 (48)\n-13998 Extra Length          0009 (9)\n-1399A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1399A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-139CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-139CC   Length              0005 (5)\n-139CE   Flags               01 (1) 'Modification'\n-139CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-139D3 PAYLOAD\n-\n-14B6D DATA DESCRIPTOR       08074B50 (134695760)\n-14B71 CRC                   25124015 (621953045)\n-14B75 Compressed Size       0000119A (4506)\n-14B79 Uncompressed Size     0000119A (4506)\n-\n-14B7D LOCAL HEADER #45      04034B50 (67324752)\n-14B81 Extract Zip Spec      14 (20) '2.0'\n-14B82 Extract OS            00 (0) 'MS-DOS'\n-14B83 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-14B85 Compression Method    0000 (0) 'Stored'\n-14B87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14B8B CRC                   00000000 (0)\n-14B8F Compressed Size       00000000 (0)\n-14B93 Uncompressed Size     00000000 (0)\n-14B97 Filename Length       003C (60)\n-14B99 Extra Length          0009 (9)\n-14B9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14B9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14BD7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14BD9   Length              0005 (5)\n-14BDB   Flags               01 (1) 'Modification'\n-14BDC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14BE0 PAYLOAD\n-\n-165A0 DATA DESCRIPTOR       08074B50 (134695760)\n-165A4 CRC                   5996933F (1503040319)\n-165A8 Compressed Size       000019C0 (6592)\n-165AC Uncompressed Size     000019C0 (6592)\n-\n-165B0 LOCAL HEADER #46      04034B50 (67324752)\n-165B4 Extract Zip Spec      14 (20) '2.0'\n-165B5 Extract OS            00 (0) 'MS-DOS'\n-165B6 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-165B8 Compression Method    0000 (0) 'Stored'\n-165BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-165BE CRC                   00000000 (0)\n-165C2 Compressed Size       00000000 (0)\n-165C6 Uncompressed Size     00000000 (0)\n-165CA Filename Length       0036 (54)\n-165CC Extra Length          0009 (9)\n-165CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x165CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16604 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16606   Length              0005 (5)\n-16608   Flags               01 (1) 'Modification'\n-16609   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1660D PAYLOAD\n-\n-16ADC DATA DESCRIPTOR       08074B50 (134695760)\n-16AE0 CRC                   421C3746 (1109145414)\n-16AE4 Compressed Size       000004CF (1231)\n-16AE8 Uncompressed Size     000004CF (1231)\n-\n-16AEC LOCAL HEADER #47      04034B50 (67324752)\n-16AF0 Extract Zip Spec      14 (20) '2.0'\n-16AF1 Extract OS            00 (0) 'MS-DOS'\n-16AF2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-16AF4 Compression Method    0000 (0) 'Stored'\n-16AF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16AFA CRC                   00000000 (0)\n-16AFE Compressed Size       00000000 (0)\n-16B02 Uncompressed Size     00000000 (0)\n-16B06 Filename Length       0033 (51)\n-16B08 Extra Length          0009 (9)\n-16B0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16B0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16B3D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16B3F   Length              0005 (5)\n-16B41   Flags               01 (1) 'Modification'\n-16B42   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16B46 PAYLOAD\n-\n-17E8E DATA DESCRIPTOR       08074B50 (134695760)\n-17E92 CRC                   0F927E5E (261258846)\n-17E96 Compressed Size       00001348 (4936)\n-17E9A Uncompressed Size     00001348 (4936)\n-\n-17E9E LOCAL HEADER #48      04034B50 (67324752)\n-17EA2 Extract Zip Spec      14 (20) '2.0'\n-17EA3 Extract OS            00 (0) 'MS-DOS'\n-17EA4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-17EA6 Compression Method    0000 (0) 'Stored'\n-17EA8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-17EAC CRC                   00000000 (0)\n-17EB0 Compressed Size       00000000 (0)\n-17EB4 Uncompressed Size     00000000 (0)\n-17EB8 Filename Length       0034 (52)\n-17EBA Extra Length          0009 (9)\n-17EBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x17EBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-17EF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-17EF2   Length              0005 (5)\n-17EF4   Flags               01 (1) 'Modification'\n-17EF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-17EF9 PAYLOAD\n-\n-187BE DATA DESCRIPTOR       08074B50 (134695760)\n-187C2 CRC                   CDF9EC0F (3455708175)\n-187C6 Compressed Size       000008C5 (2245)\n-187CA Uncompressed Size     000008C5 (2245)\n-\n-187CE LOCAL HEADER #49      04034B50 (67324752)\n-187D2 Extract Zip Spec      14 (20) '2.0'\n-187D3 Extract OS            00 (0) 'MS-DOS'\n-187D4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-187D6 Compression Method    0000 (0) 'Stored'\n-187D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-187DC CRC                   00000000 (0)\n-187E0 Compressed Size       00000000 (0)\n-187E4 Uncompressed Size     00000000 (0)\n-187E8 Filename Length       0041 (65)\n-187EA Extra Length          0009 (9)\n-187EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x187EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1882D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1882F   Length              0005 (5)\n-18831   Flags               01 (1) 'Modification'\n-18832   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-18836 PAYLOAD\n-\n-1956B DATA DESCRIPTOR       08074B50 (134695760)\n-1956F CRC                   5A33884E (1513326670)\n-19573 Compressed Size       00000D35 (3381)\n-19577 Uncompressed Size     00000D35 (3381)\n-\n-1957B LOCAL HEADER #50      04034B50 (67324752)\n-1957F Extract Zip Spec      14 (20) '2.0'\n-19580 Extract OS            00 (0) 'MS-DOS'\n-19581 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-19583 Compression Method    0000 (0) 'Stored'\n-19585 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-19589 CRC                   00000000 (0)\n-1958D Compressed Size       00000000 (0)\n-19591 Uncompressed Size     00000000 (0)\n-19595 Filename Length       0032 (50)\n-19597 Extra Length          0009 (9)\n-19599 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x19599: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-195CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-195CD   Length              0005 (5)\n-195CF   Flags               01 (1) 'Modification'\n-195D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-195D4 PAYLOAD\n-\n-1AFF8 DATA DESCRIPTOR       08074B50 (134695760)\n-1AFFC CRC                   8665BB83 (2254814083)\n-1B000 Compressed Size       00001A24 (6692)\n-1B004 Uncompressed Size     00001A24 (6692)\n-\n-1B008 LOCAL HEADER #51      04034B50 (67324752)\n-1B00C Extract Zip Spec      14 (20) '2.0'\n-1B00D Extract OS            00 (0) 'MS-DOS'\n-1B00E General Purpose Flag  0000 (0)\n-1B010 Compression Method    0000 (0) 'Stored'\n-1B012 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B016 CRC                   00000000 (0)\n-1B01A Compressed Size       00000000 (0)\n-1B01E Uncompressed Size     00000000 (0)\n-1B022 Filename Length       001D (29)\n-1B024 Extra Length          0009 (9)\n-1B026 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B026: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B043 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B045   Length              0005 (5)\n-1B047   Flags               01 (1) 'Modification'\n-1B048   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1B04C LOCAL HEADER #52      04034B50 (67324752)\n-1B050 Extract Zip Spec      14 (20) '2.0'\n-1B051 Extract OS            00 (0) 'MS-DOS'\n-1B052 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1B054 Compression Method    0000 (0) 'Stored'\n-1B056 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B05A CRC                   00000000 (0)\n-1B05E Compressed Size       00000000 (0)\n-1B062 Uncompressed Size     00000000 (0)\n-1B066 Filename Length       0032 (50)\n-1B068 Extra Length          0009 (9)\n-1B06A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B06A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B09C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B09E   Length              0005 (5)\n-1B0A0   Flags               01 (1) 'Modification'\n-1B0A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B0A5 PAYLOAD\n-\n-1C21B DATA DESCRIPTOR       08074B50 (134695760)\n-1C21F CRC                   DB628F10 (3680669456)\n-1C223 Compressed Size       00001176 (4470)\n-1C227 Uncompressed Size     00001176 (4470)\n-\n-1C22B LOCAL HEADER #53      04034B50 (67324752)\n-1C22F Extract Zip Spec      14 (20) '2.0'\n-1C230 Extract OS            00 (0) 'MS-DOS'\n-1C231 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1C233 Compression Method    0000 (0) 'Stored'\n-1C235 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C239 CRC                   00000000 (0)\n-1C23D Compressed Size       00000000 (0)\n-1C241 Uncompressed Size     00000000 (0)\n-1C245 Filename Length       0057 (87)\n-1C247 Extra Length          0009 (9)\n-1C249 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C249: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C2A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C2A2   Length              0005 (5)\n-1C2A4   Flags               01 (1) 'Modification'\n-1C2A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C2A9 PAYLOAD\n-\n-1C7C6 DATA DESCRIPTOR       08074B50 (134695760)\n-1C7CA CRC                   E5E3EA59 (3856919129)\n-1C7CE Compressed Size       0000051D (1309)\n-1C7D2 Uncompressed Size     0000051D (1309)\n-\n-1C7D6 LOCAL HEADER #54      04034B50 (67324752)\n-1C7DA Extract Zip Spec      14 (20) '2.0'\n-1C7DB Extract OS            00 (0) 'MS-DOS'\n-1C7DC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1C7DE Compression Method    0000 (0) 'Stored'\n-1C7E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C7E4 CRC                   00000000 (0)\n-1C7E8 Compressed Size       00000000 (0)\n-1C7EC Uncompressed Size     00000000 (0)\n-1C7F0 Filename Length       003D (61)\n-1C7F2 Extra Length          0009 (9)\n-1C7F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C7F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C831 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C833   Length              0005 (5)\n-1C835   Flags               01 (1) 'Modification'\n-1C836   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C83A PAYLOAD\n-\n-1D0EC DATA DESCRIPTOR       08074B50 (134695760)\n-1D0F0 CRC                   F1DBC679 (4057712249)\n-1D0F4 Compressed Size       000008B2 (2226)\n-1D0F8 Uncompressed Size     000008B2 (2226)\n-\n-1D0FC LOCAL HEADER #55      04034B50 (67324752)\n-1D100 Extract Zip Spec      14 (20) '2.0'\n-1D101 Extract OS            00 (0) 'MS-DOS'\n-1D102 General Purpose Flag  0000 (0)\n-1D104 Compression Method    0000 (0) 'Stored'\n-1D106 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D10A CRC                   00000000 (0)\n-1D10E Compressed Size       00000000 (0)\n-1D112 Uncompressed Size     00000000 (0)\n-1D116 Filename Length       0019 (25)\n-1D118 Extra Length          0009 (9)\n-1D11A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D11A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D133 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D135   Length              0005 (5)\n-1D137   Flags               01 (1) 'Modification'\n-1D138   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1D13C LOCAL HEADER #56      04034B50 (67324752)\n-1D140 Extract Zip Spec      14 (20) '2.0'\n-1D141 Extract OS            00 (0) 'MS-DOS'\n-1D142 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1D144 Compression Method    0000 (0) 'Stored'\n-1D146 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D14A CRC                   00000000 (0)\n-1D14E Compressed Size       00000000 (0)\n-1D152 Uncompressed Size     00000000 (0)\n-1D156 Filename Length       002D (45)\n-1D158 Extra Length          0009 (9)\n-1D15A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D15A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D187 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D189   Length              0005 (5)\n-1D18B   Flags               01 (1) 'Modification'\n-1D18C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D190 PAYLOAD\n-\n-1D6D7 DATA DESCRIPTOR       08074B50 (134695760)\n-1D6DB CRC                   C3188174 (3273163124)\n-1D6DF Compressed Size       00000547 (1351)\n-1D6E3 Uncompressed Size     00000547 (1351)\n-\n-1D6E7 LOCAL HEADER #57      04034B50 (67324752)\n-1D6EB Extract Zip Spec      14 (20) '2.0'\n-1D6EC Extract OS            00 (0) 'MS-DOS'\n-1D6ED General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1D6EF Compression Method    0000 (0) 'Stored'\n-1D6F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D6F5 CRC                   00000000 (0)\n-1D6F9 Compressed Size       00000000 (0)\n-1D6FD Uncompressed Size     00000000 (0)\n-1D701 Filename Length       0032 (50)\n-1D703 Extra Length          0009 (9)\n-1D705 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D705: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D737 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D739   Length              0005 (5)\n-1D73B   Flags               01 (1) 'Modification'\n-1D73C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D740 PAYLOAD\n-\n-1DA12 DATA DESCRIPTOR       08074B50 (134695760)\n-1DA16 CRC                   F3F211B7 (4092727735)\n-1DA1A Compressed Size       000002D2 (722)\n-1DA1E Uncompressed Size     000002D2 (722)\n-\n-1DA22 LOCAL HEADER #58      04034B50 (67324752)\n-1DA26 Extract Zip Spec      14 (20) '2.0'\n-1DA27 Extract OS            00 (0) 'MS-DOS'\n-1DA28 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1DA2A Compression Method    0000 (0) 'Stored'\n-1DA2C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1DA30 CRC                   00000000 (0)\n-1DA34 Compressed Size       00000000 (0)\n-1DA38 Uncompressed Size     00000000 (0)\n-1DA3C Filename Length       003C (60)\n-1DA3E Extra Length          0009 (9)\n-1DA40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1DA40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1DA7C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1DA7E   Length              0005 (5)\n-1DA80   Flags               01 (1) 'Modification'\n-1DA81   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1DA85 PAYLOAD\n-\n-1DE54 DATA DESCRIPTOR       08074B50 (134695760)\n-1DE58 CRC                   7C5D6AFA (2086497018)\n-1DE5C Compressed Size       000003CF (975)\n-1DE60 Uncompressed Size     000003CF (975)\n-\n-1DE64 LOCAL HEADER #59      04034B50 (67324752)\n-1DE68 Extract Zip Spec      14 (20) '2.0'\n-1DE69 Extract OS            00 (0) 'MS-DOS'\n-1DE6A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1DE6C Compression Method    0000 (0) 'Stored'\n-1DE6E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1DE72 CRC                   00000000 (0)\n-1DE76 Compressed Size       00000000 (0)\n-1DE7A Uncompressed Size     00000000 (0)\n-1DE7E Filename Length       0038 (56)\n-1DE80 Extra Length          0009 (9)\n-1DE82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1DE82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1DEBA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1DEBC   Length              0005 (5)\n-1DEBE   Flags               01 (1) 'Modification'\n-1DEBF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1DEC3 PAYLOAD\n-\n-1E21C DATA DESCRIPTOR       08074B50 (134695760)\n-1E220 CRC                   0192E22B (26403371)\n-1E224 Compressed Size       00000359 (857)\n-1E228 Uncompressed Size     00000359 (857)\n-\n-1E22C LOCAL HEADER #60      04034B50 (67324752)\n-1E230 Extract Zip Spec      14 (20) '2.0'\n-1E231 Extract OS            00 (0) 'MS-DOS'\n-1E232 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1E234 Compression Method    0000 (0) 'Stored'\n-1E236 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E23A CRC                   00000000 (0)\n-1E23E Compressed Size       00000000 (0)\n-1E242 Uncompressed Size     00000000 (0)\n-1E246 Filename Length       0030 (48)\n-1E248 Extra Length          0009 (9)\n-1E24A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E24A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E27A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E27C   Length              0005 (5)\n-1E27E   Flags               01 (1) 'Modification'\n-1E27F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E283 PAYLOAD\n-\n-1FA1F DATA DESCRIPTOR       08074B50 (134695760)\n-1FA23 CRC                   26456553 (642082131)\n-1FA27 Compressed Size       0000179C (6044)\n-1FA2B Uncompressed Size     0000179C (6044)\n-\n-1FA2F LOCAL HEADER #61      04034B50 (67324752)\n-1FA33 Extract Zip Spec      14 (20) '2.0'\n-1FA34 Extract OS            00 (0) 'MS-DOS'\n-1FA35 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1FA37 Compression Method    0000 (0) 'Stored'\n-1FA39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1FA3D CRC                   00000000 (0)\n-1FA41 Compressed Size       00000000 (0)\n-1FA45 Uncompressed Size     00000000 (0)\n-1FA49 Filename Length       0029 (41)\n-1FA4B Extra Length          0009 (9)\n-1FA4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1FA4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1FA76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1FA78   Length              0005 (5)\n-1FA7A   Flags               01 (1) 'Modification'\n-1FA7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1FA7F PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+0265C DATA DESCRIPTOR       08074B50 (134695760)\n+02660 CRC                   6502A609 (1694672393)\n+02664 Compressed Size       00000534 (1332)\n+02668 Uncompressed Size     00000534 (1332)\n+\n+0266C LOCAL HEADER #16      04034B50 (67324752)\n+02670 Extract Zip Spec      14 (20) '2.0'\n+02671 Extract OS            00 (0) 'MS-DOS'\n+02672 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+02674 Compression Method    0000 (0) 'Stored'\n+02676 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0267A CRC                   00000000 (0)\n+0267E Compressed Size       00000000 (0)\n+02682 Uncompressed Size     00000000 (0)\n+02686 Filename Length       0037 (55)\n+02688 Extra Length          0009 (9)\n+0268A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x268A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+026C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+026C3   Length              0005 (5)\n+026C5   Flags               01 (1) 'Modification'\n+026C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+026CA PAYLOAD\n+\n+03ED8 DATA DESCRIPTOR       08074B50 (134695760)\n+03EDC CRC                   E0919879 (3767638137)\n+03EE0 Compressed Size       0000180E (6158)\n+03EE4 Uncompressed Size     0000180E (6158)\n+\n+03EE8 LOCAL HEADER #17      04034B50 (67324752)\n+03EEC Extract Zip Spec      14 (20) '2.0'\n+03EED Extract OS            00 (0) 'MS-DOS'\n+03EEE General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+03EF0 Compression Method    0000 (0) 'Stored'\n+03EF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03EF6 CRC                   00000000 (0)\n+03EFA Compressed Size       00000000 (0)\n+03EFE Uncompressed Size     00000000 (0)\n+03F02 Filename Length       0039 (57)\n+03F04 Extra Length          0009 (9)\n+03F06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03F3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03F41   Length              0005 (5)\n+03F43   Flags               01 (1) 'Modification'\n+03F44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03F48 PAYLOAD\n+\n+04913 DATA DESCRIPTOR       08074B50 (134695760)\n+04917 CRC                   00472512 (4662546)\n+0491B Compressed Size       000009CB (2507)\n+0491F Uncompressed Size     000009CB (2507)\n+\n+04923 LOCAL HEADER #18      04034B50 (67324752)\n+04927 Extract Zip Spec      14 (20) '2.0'\n+04928 Extract OS            00 (0) 'MS-DOS'\n+04929 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0492B Compression Method    0000 (0) 'Stored'\n+0492D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04931 CRC                   00000000 (0)\n+04935 Compressed Size       00000000 (0)\n+04939 Uncompressed Size     00000000 (0)\n+0493D Filename Length       003D (61)\n+0493F Extra Length          0009 (9)\n+04941 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4941: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0497E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04980   Length              0005 (5)\n+04982   Flags               01 (1) 'Modification'\n+04983   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04987 PAYLOAD\n+\n+0521D DATA DESCRIPTOR       08074B50 (134695760)\n+05221 CRC                   D61222D3 (3591512787)\n+05225 Compressed Size       00000896 (2198)\n+05229 Uncompressed Size     00000896 (2198)\n+\n+0522D LOCAL HEADER #19      04034B50 (67324752)\n+05231 Extract Zip Spec      14 (20) '2.0'\n+05232 Extract OS            00 (0) 'MS-DOS'\n+05233 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+05235 Compression Method    0000 (0) 'Stored'\n+05237 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0523B CRC                   00000000 (0)\n+0523F Compressed Size       00000000 (0)\n+05243 Uncompressed Size     00000000 (0)\n+05247 Filename Length       0033 (51)\n+05249 Extra Length          0009 (9)\n+0524B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x524B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0527E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05280   Length              0005 (5)\n+05282   Flags               01 (1) 'Modification'\n+05283   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05287 PAYLOAD\n+\n+05E99 DATA DESCRIPTOR       08074B50 (134695760)\n+05E9D CRC                   C83E33B8 (3359519672)\n+05EA1 Compressed Size       00000C12 (3090)\n+05EA5 Uncompressed Size     00000C12 (3090)\n+\n+05EA9 LOCAL HEADER #20      04034B50 (67324752)\n+05EAD Extract Zip Spec      14 (20) '2.0'\n+05EAE Extract OS            00 (0) 'MS-DOS'\n+05EAF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+05EB1 Compression Method    0000 (0) 'Stored'\n+05EB3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05EB7 CRC                   00000000 (0)\n+05EBB Compressed Size       00000000 (0)\n+05EBF Uncompressed Size     00000000 (0)\n+05EC3 Filename Length       0036 (54)\n+05EC5 Extra Length          0009 (9)\n+05EC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05EFD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05EFF   Length              0005 (5)\n+05F01   Flags               01 (1) 'Modification'\n+05F02   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05F06 PAYLOAD\n+\n+072EF DATA DESCRIPTOR       08074B50 (134695760)\n+072F3 CRC                   743D90B3 (1950191795)\n+072F7 Compressed Size       000013E9 (5097)\n+072FB Uncompressed Size     000013E9 (5097)\n+\n+072FF LOCAL HEADER #21      04034B50 (67324752)\n+07303 Extract Zip Spec      14 (20) '2.0'\n+07304 Extract OS            00 (0) 'MS-DOS'\n+07305 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+07307 Compression Method    0000 (0) 'Stored'\n+07309 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0730D CRC                   00000000 (0)\n+07311 Compressed Size       00000000 (0)\n+07315 Uncompressed Size     00000000 (0)\n+07319 Filename Length       0039 (57)\n+0731B Extra Length          0009 (9)\n+0731D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x731D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07356 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07358   Length              0005 (5)\n+0735A   Flags               01 (1) 'Modification'\n+0735B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0735F PAYLOAD\n+\n+07884 DATA DESCRIPTOR       08074B50 (134695760)\n+07888 CRC                   330D4B66 (856509286)\n+0788C Compressed Size       00000525 (1317)\n+07890 Uncompressed Size     00000525 (1317)\n+\n+07894 LOCAL HEADER #22      04034B50 (67324752)\n+07898 Extract Zip Spec      14 (20) '2.0'\n+07899 Extract OS            00 (0) 'MS-DOS'\n+0789A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0789C Compression Method    0000 (0) 'Stored'\n+0789E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+078A2 CRC                   00000000 (0)\n+078A6 Compressed Size       00000000 (0)\n+078AA Uncompressed Size     00000000 (0)\n+078AE Filename Length       003F (63)\n+078B0 Extra Length          0009 (9)\n+078B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x78B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+078F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+078F3   Length              0005 (5)\n+078F5   Flags               01 (1) 'Modification'\n+078F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+078FA PAYLOAD\n+\n+0839B DATA DESCRIPTOR       08074B50 (134695760)\n+0839F CRC                   AA8A4829 (2861189161)\n+083A3 Compressed Size       00000AA1 (2721)\n+083A7 Uncompressed Size     00000AA1 (2721)\n+\n+083AB LOCAL HEADER #23      04034B50 (67324752)\n+083AF Extract Zip Spec      14 (20) '2.0'\n+083B0 Extract OS            00 (0) 'MS-DOS'\n+083B1 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+083B3 Compression Method    0000 (0) 'Stored'\n+083B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+083B9 CRC                   00000000 (0)\n+083BD Compressed Size       00000000 (0)\n+083C1 Uncompressed Size     00000000 (0)\n+083C5 Filename Length       0037 (55)\n+083C7 Extra Length          0009 (9)\n+083C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x83C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+08400 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+08402   Length              0005 (5)\n+08404   Flags               01 (1) 'Modification'\n+08405   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+08409 PAYLOAD\n+\n+0A8D3 DATA DESCRIPTOR       08074B50 (134695760)\n+0A8D7 CRC                   6D595579 (1834571129)\n+0A8DB Compressed Size       000024CA (9418)\n+0A8DF Uncompressed Size     000024CA (9418)\n+\n+0A8E3 LOCAL HEADER #24      04034B50 (67324752)\n+0A8E7 Extract Zip Spec      14 (20) '2.0'\n+0A8E8 Extract OS            00 (0) 'MS-DOS'\n+0A8E9 General Purpose Flag  0000 (0)\n+0A8EB Compression Method    0000 (0) 'Stored'\n+0A8ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A8F1 CRC                   00000000 (0)\n+0A8F5 Compressed Size       00000000 (0)\n+0A8F9 Uncompressed Size     00000000 (0)\n+0A8FD Filename Length       001F (31)\n+0A8FF Extra Length          0009 (9)\n+0A901 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA901: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A920 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A922   Length              0005 (5)\n+0A924   Flags               01 (1) 'Modification'\n+0A925   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0A929 LOCAL HEADER #25      04034B50 (67324752)\n+0A92D Extract Zip Spec      14 (20) '2.0'\n+0A92E Extract OS            00 (0) 'MS-DOS'\n+0A92F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0A931 Compression Method    0000 (0) 'Stored'\n+0A933 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A937 CRC                   00000000 (0)\n+0A93B Compressed Size       00000000 (0)\n+0A93F Uncompressed Size     00000000 (0)\n+0A943 Filename Length       0045 (69)\n+0A945 Extra Length          0009 (9)\n+0A947 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA947: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A98C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A98E   Length              0005 (5)\n+0A990   Flags               01 (1) 'Modification'\n+0A991   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A995 PAYLOAD\n+\n+0B024 DATA DESCRIPTOR       08074B50 (134695760)\n+0B028 CRC                   7F56624E (2136367694)\n+0B02C Compressed Size       0000068F (1679)\n+0B030 Uncompressed Size     0000068F (1679)\n+\n+0B034 LOCAL HEADER #26      04034B50 (67324752)\n+0B038 Extract Zip Spec      14 (20) '2.0'\n+0B039 Extract OS            00 (0) 'MS-DOS'\n+0B03A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0B03C Compression Method    0000 (0) 'Stored'\n+0B03E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0B042 CRC                   00000000 (0)\n+0B046 Compressed Size       00000000 (0)\n+0B04A Uncompressed Size     00000000 (0)\n+0B04E Filename Length       0042 (66)\n+0B050 Extra Length          0009 (9)\n+0B052 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xB052: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0B094 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0B096   Length              0005 (5)\n+0B098   Flags               01 (1) 'Modification'\n+0B099   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0B09D PAYLOAD\n+\n+0B604 DATA DESCRIPTOR       08074B50 (134695760)\n+0B608 CRC                   06D3E6D4 (114550484)\n+0B60C Compressed Size       00000567 (1383)\n+0B610 Uncompressed Size     00000567 (1383)\n+\n+0B614 LOCAL HEADER #27      04034B50 (67324752)\n+0B618 Extract Zip Spec      14 (20) '2.0'\n+0B619 Extract OS            00 (0) 'MS-DOS'\n+0B61A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0B61C Compression Method    0000 (0) 'Stored'\n+0B61E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0B622 CRC                   00000000 (0)\n+0B626 Compressed Size       00000000 (0)\n+0B62A Uncompressed Size     00000000 (0)\n+0B62E Filename Length       0037 (55)\n+0B630 Extra Length          0009 (9)\n+0B632 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xB632: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0B669 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0B66B   Length              0005 (5)\n+0B66D   Flags               01 (1) 'Modification'\n+0B66E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0B672 PAYLOAD\n+\n+0BD4C DATA DESCRIPTOR       08074B50 (134695760)\n+0BD50 CRC                   8B6E7B6E (2339273582)\n+0BD54 Compressed Size       000006DA (1754)\n+0BD58 Uncompressed Size     000006DA (1754)\n+\n+0BD5C LOCAL HEADER #28      04034B50 (67324752)\n+0BD60 Extract Zip Spec      14 (20) '2.0'\n+0BD61 Extract OS            00 (0) 'MS-DOS'\n+0BD62 General Purpose Flag  0000 (0)\n+0BD64 Compression Method    0000 (0) 'Stored'\n+0BD66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0BD6A CRC                   00000000 (0)\n+0BD6E Compressed Size       00000000 (0)\n+0BD72 Uncompressed Size     00000000 (0)\n+0BD76 Filename Length       0015 (21)\n+0BD78 Extra Length          0009 (9)\n+0BD7A Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBD7A: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0BD8F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0BD91   Length              0005 (5)\n+0BD93   Flags               01 (1) 'Modification'\n+0BD94   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0BD98 LOCAL HEADER #29      04034B50 (67324752)\n+0BD9C Extract Zip Spec      14 (20) '2.0'\n+0BD9D Extract OS            00 (0) 'MS-DOS'\n+0BD9E General Purpose Flag  0000 (0)\n+0BDA0 Compression Method    0000 (0) 'Stored'\n+0BDA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0BDA6 CRC                   00000000 (0)\n+0BDAA Compressed Size       00000000 (0)\n+0BDAE Uncompressed Size     00000000 (0)\n+0BDB2 Filename Length       001E (30)\n+0BDB4 Extra Length          0009 (9)\n+0BDB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBDB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0BDD4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0BDD6   Length              0005 (5)\n+0BDD8   Flags               01 (1) 'Modification'\n+0BDD9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0BDDD LOCAL HEADER #30      04034B50 (67324752)\n+0BDE1 Extract Zip Spec      14 (20) '2.0'\n+0BDE2 Extract OS            00 (0) 'MS-DOS'\n+0BDE3 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0BDE5 Compression Method    0000 (0) 'Stored'\n+0BDE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0BDEB CRC                   00000000 (0)\n+0BDEF Compressed Size       00000000 (0)\n+0BDF3 Uncompressed Size     00000000 (0)\n+0BDF7 Filename Length       0038 (56)\n+0BDF9 Extra Length          0009 (9)\n+0BDFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBDFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0BE33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0BE35   Length              0005 (5)\n+0BE37   Flags               01 (1) 'Modification'\n+0BE38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0BE3C PAYLOAD\n+\n+0C266 DATA DESCRIPTOR       08074B50 (134695760)\n+0C26A CRC                   3669465B (912868955)\n+0C26E Compressed Size       0000042A (1066)\n+0C272 Uncompressed Size     0000042A (1066)\n+\n+0C276 LOCAL HEADER #31      04034B50 (67324752)\n+0C27A Extract Zip Spec      14 (20) '2.0'\n+0C27B Extract OS            00 (0) 'MS-DOS'\n+0C27C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0C27E Compression Method    0000 (0) 'Stored'\n+0C280 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0C284 CRC                   00000000 (0)\n+0C288 Compressed Size       00000000 (0)\n+0C28C Uncompressed Size     00000000 (0)\n+0C290 Filename Length       0043 (67)\n+0C292 Extra Length          0009 (9)\n+0C294 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC294: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0C2D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0C2D9   Length              0005 (5)\n+0C2DB   Flags               01 (1) 'Modification'\n+0C2DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0C2E0 PAYLOAD\n+\n+0C77A DATA DESCRIPTOR       08074B50 (134695760)\n+0C77E CRC                   7D90A409 (2106631177)\n+0C782 Compressed Size       0000049A (1178)\n+0C786 Uncompressed Size     0000049A (1178)\n+\n+0C78A LOCAL HEADER #32      04034B50 (67324752)\n+0C78E Extract Zip Spec      14 (20) '2.0'\n+0C78F Extract OS            00 (0) 'MS-DOS'\n+0C790 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0C792 Compression Method    0000 (0) 'Stored'\n+0C794 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0C798 CRC                   00000000 (0)\n+0C79C Compressed Size       00000000 (0)\n+0C7A0 Uncompressed Size     00000000 (0)\n+0C7A4 Filename Length       0044 (68)\n+0C7A6 Extra Length          0009 (9)\n+0C7A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC7A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0C7EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0C7EE   Length              0005 (5)\n+0C7F0   Flags               01 (1) 'Modification'\n+0C7F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0C7F5 PAYLOAD\n+\n+0CD3B DATA DESCRIPTOR       08074B50 (134695760)\n+0CD3F CRC                   0E9F3A5C (245316188)\n+0CD43 Compressed Size       00000546 (1350)\n+0CD47 Uncompressed Size     00000546 (1350)\n+\n+0CD4B LOCAL HEADER #33      04034B50 (67324752)\n+0CD4F Extract Zip Spec      14 (20) '2.0'\n+0CD50 Extract OS            00 (0) 'MS-DOS'\n+0CD51 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0CD53 Compression Method    0000 (0) 'Stored'\n+0CD55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0CD59 CRC                   00000000 (0)\n+0CD5D Compressed Size       00000000 (0)\n+0CD61 Uncompressed Size     00000000 (0)\n+0CD65 Filename Length       0036 (54)\n+0CD67 Extra Length          0009 (9)\n+0CD69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xCD69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0CD9F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0CDA1   Length              0005 (5)\n+0CDA3   Flags               01 (1) 'Modification'\n+0CDA4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0CDA8 PAYLOAD\n+\n+0E15E DATA DESCRIPTOR       08074B50 (134695760)\n+0E162 CRC                   4EA4211F (1319379231)\n+0E166 Compressed Size       000013B6 (5046)\n+0E16A Uncompressed Size     000013B6 (5046)\n+\n+0E16E LOCAL HEADER #34      04034B50 (67324752)\n+0E172 Extract Zip Spec      14 (20) '2.0'\n+0E173 Extract OS            00 (0) 'MS-DOS'\n+0E174 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0E176 Compression Method    0000 (0) 'Stored'\n+0E178 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0E17C CRC                   00000000 (0)\n+0E180 Compressed Size       00000000 (0)\n+0E184 Uncompressed Size     00000000 (0)\n+0E188 Filename Length       004B (75)\n+0E18A Extra Length          0009 (9)\n+0E18C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xE18C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0E1D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0E1D9   Length              0005 (5)\n+0E1DB   Flags               01 (1) 'Modification'\n+0E1DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0E1E0 PAYLOAD\n+\n+0ED76 DATA DESCRIPTOR       08074B50 (134695760)\n+0ED7A CRC                   5350F976 (1397815670)\n+0ED7E Compressed Size       00000B96 (2966)\n+0ED82 Uncompressed Size     00000B96 (2966)\n+\n+0ED86 LOCAL HEADER #35      04034B50 (67324752)\n+0ED8A Extract Zip Spec      14 (20) '2.0'\n+0ED8B Extract OS            00 (0) 'MS-DOS'\n+0ED8C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0ED8E Compression Method    0000 (0) 'Stored'\n+0ED90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0ED94 CRC                   00000000 (0)\n+0ED98 Compressed Size       00000000 (0)\n+0ED9C Uncompressed Size     00000000 (0)\n+0EDA0 Filename Length       0038 (56)\n+0EDA2 Extra Length          0009 (9)\n+0EDA4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xEDA4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0EDDC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0EDDE   Length              0005 (5)\n+0EDE0   Flags               01 (1) 'Modification'\n+0EDE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0EDE5 PAYLOAD\n+\n+0F5AC DATA DESCRIPTOR       08074B50 (134695760)\n+0F5B0 CRC                   10864B8C (277236620)\n+0F5B4 Compressed Size       000007C7 (1991)\n+0F5B8 Uncompressed Size     000007C7 (1991)\n+\n+0F5BC LOCAL HEADER #36      04034B50 (67324752)\n+0F5C0 Extract Zip Spec      14 (20) '2.0'\n+0F5C1 Extract OS            00 (0) 'MS-DOS'\n+0F5C2 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0F5C4 Compression Method    0000 (0) 'Stored'\n+0F5C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0F5CA CRC                   00000000 (0)\n+0F5CE Compressed Size       00000000 (0)\n+0F5D2 Uncompressed Size     00000000 (0)\n+0F5D6 Filename Length       0030 (48)\n+0F5D8 Extra Length          0009 (9)\n+0F5DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xF5DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0F60A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0F60C   Length              0005 (5)\n+0F60E   Flags               01 (1) 'Modification'\n+0F60F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0F613 PAYLOAD\n+\n+1047C DATA DESCRIPTOR       08074B50 (134695760)\n+10480 CRC                   9DD32FAD (2647863213)\n+10484 Compressed Size       00000E69 (3689)\n+10488 Uncompressed Size     00000E69 (3689)\n+\n+1048C LOCAL HEADER #37      04034B50 (67324752)\n+10490 Extract Zip Spec      14 (20) '2.0'\n+10491 Extract OS            00 (0) 'MS-DOS'\n+10492 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+10494 Compression Method    0000 (0) 'Stored'\n+10496 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1049A CRC                   00000000 (0)\n+1049E Compressed Size       00000000 (0)\n+104A2 Uncompressed Size     00000000 (0)\n+104A6 Filename Length       003B (59)\n+104A8 Extra Length          0009 (9)\n+104AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x104AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+104E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+104E7   Length              0005 (5)\n+104E9   Flags               01 (1) 'Modification'\n+104EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+104EE PAYLOAD\n+\n+10FE6 DATA DESCRIPTOR       08074B50 (134695760)\n+10FEA CRC                   F6B3CB5C (4138978140)\n+10FEE Compressed Size       00000AF8 (2808)\n+10FF2 Uncompressed Size     00000AF8 (2808)\n+\n+10FF6 LOCAL HEADER #38      04034B50 (67324752)\n+10FFA Extract Zip Spec      14 (20) '2.0'\n+10FFB Extract OS            00 (0) 'MS-DOS'\n+10FFC General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+10FFE Compression Method    0000 (0) 'Stored'\n+11000 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11004 CRC                   00000000 (0)\n+11008 Compressed Size       00000000 (0)\n+1100C Uncompressed Size     00000000 (0)\n+11010 Filename Length       0030 (48)\n+11012 Extra Length          0009 (9)\n+11014 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11014: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11044 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11046   Length              0005 (5)\n+11048   Flags               01 (1) 'Modification'\n+11049   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1104D PAYLOAD\n+\n+11FCB DATA DESCRIPTOR       08074B50 (134695760)\n+11FCF CRC                   93036480 (2466473088)\n+11FD3 Compressed Size       00000F7E (3966)\n+11FD7 Uncompressed Size     00000F7E (3966)\n+\n+11FDB LOCAL HEADER #39      04034B50 (67324752)\n+11FDF Extract Zip Spec      14 (20) '2.0'\n+11FE0 Extract OS            00 (0) 'MS-DOS'\n+11FE1 General Purpose Flag  0000 (0)\n+11FE3 Compression Method    0000 (0) 'Stored'\n+11FE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11FE9 CRC                   00000000 (0)\n+11FED Compressed Size       00000000 (0)\n+11FF1 Uncompressed Size     00000000 (0)\n+11FF5 Filename Length       001F (31)\n+11FF7 Extra Length          0009 (9)\n+11FF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11FF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12018 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1201A   Length              0005 (5)\n+1201C   Flags               01 (1) 'Modification'\n+1201D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+12021 LOCAL HEADER #40      04034B50 (67324752)\n+12025 Extract Zip Spec      14 (20) '2.0'\n+12026 Extract OS            00 (0) 'MS-DOS'\n+12027 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+12029 Compression Method    0000 (0) 'Stored'\n+1202B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1202F CRC                   00000000 (0)\n+12033 Compressed Size       00000000 (0)\n+12037 Uncompressed Size     00000000 (0)\n+1203B Filename Length       0032 (50)\n+1203D Extra Length          0009 (9)\n+1203F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1203F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12071 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12073   Length              0005 (5)\n+12075   Flags               01 (1) 'Modification'\n+12076   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1207A PAYLOAD\n+\n+12BE9 DATA DESCRIPTOR       08074B50 (134695760)\n+12BED CRC                   ED73F0E8 (3983798504)\n+12BF1 Compressed Size       00000B6F (2927)\n+12BF5 Uncompressed Size     00000B6F (2927)\n+\n+12BF9 LOCAL HEADER #41      04034B50 (67324752)\n+12BFD Extract Zip Spec      14 (20) '2.0'\n+12BFE Extract OS            00 (0) 'MS-DOS'\n+12BFF General Purpose Flag  0000 (0)\n+12C01 Compression Method    0000 (0) 'Stored'\n+12C03 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+12C07 CRC                   00000000 (0)\n+12C0B Compressed Size       00000000 (0)\n+12C0F Uncompressed Size     00000000 (0)\n+12C13 Filename Length       001B (27)\n+12C15 Extra Length          0009 (9)\n+12C17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x12C17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12C32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12C34   Length              0005 (5)\n+12C36   Flags               01 (1) 'Modification'\n+12C37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+12C3B LOCAL HEADER #42      04034B50 (67324752)\n+12C3F Extract Zip Spec      14 (20) '2.0'\n+12C40 Extract OS            00 (0) 'MS-DOS'\n+12C41 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+12C43 Compression Method    0000 (0) 'Stored'\n+12C45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+12C49 CRC                   00000000 (0)\n+12C4D Compressed Size       00000000 (0)\n+12C51 Uncompressed Size     00000000 (0)\n+12C55 Filename Length       002A (42)\n+12C57 Extra Length          0009 (9)\n+12C59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x12C59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12C83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12C85   Length              0005 (5)\n+12C87   Flags               01 (1) 'Modification'\n+12C88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+12C8C PAYLOAD\n+\n+13933 DATA DESCRIPTOR       08074B50 (134695760)\n+13937 CRC                   6390CFE7 (1670434791)\n+1393B Compressed Size       00000CA7 (3239)\n+1393F Uncompressed Size     00000CA7 (3239)\n+\n+13943 LOCAL HEADER #43      04034B50 (67324752)\n+13947 Extract Zip Spec      14 (20) '2.0'\n+13948 Extract OS            00 (0) 'MS-DOS'\n+13949 General Purpose Flag  0000 (0)\n+1394B Compression Method    0000 (0) 'Stored'\n+1394D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13951 CRC                   00000000 (0)\n+13955 Compressed Size       00000000 (0)\n+13959 Uncompressed Size     00000000 (0)\n+1395D Filename Length       001D (29)\n+1395F Extra Length          0009 (9)\n+13961 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13961: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1397E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13980   Length              0005 (5)\n+13982   Flags               01 (1) 'Modification'\n+13983   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+13987 LOCAL HEADER #44      04034B50 (67324752)\n+1398B Extract Zip Spec      14 (20) '2.0'\n+1398C Extract OS            00 (0) 'MS-DOS'\n+1398D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1398F Compression Method    0000 (0) 'Stored'\n+13991 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13995 CRC                   00000000 (0)\n+13999 Compressed Size       00000000 (0)\n+1399D Uncompressed Size     00000000 (0)\n+139A1 Filename Length       0030 (48)\n+139A3 Extra Length          0009 (9)\n+139A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x139A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+139D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+139D7   Length              0005 (5)\n+139D9   Flags               01 (1) 'Modification'\n+139DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+139DE PAYLOAD\n+\n+14B78 DATA DESCRIPTOR       08074B50 (134695760)\n+14B7C CRC                   01F26E78 (32665208)\n+14B80 Compressed Size       0000119A (4506)\n+14B84 Uncompressed Size     0000119A (4506)\n+\n+14B88 LOCAL HEADER #45      04034B50 (67324752)\n+14B8C Extract Zip Spec      14 (20) '2.0'\n+14B8D Extract OS            00 (0) 'MS-DOS'\n+14B8E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+14B90 Compression Method    0000 (0) 'Stored'\n+14B92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14B96 CRC                   00000000 (0)\n+14B9A Compressed Size       00000000 (0)\n+14B9E Uncompressed Size     00000000 (0)\n+14BA2 Filename Length       003C (60)\n+14BA4 Extra Length          0009 (9)\n+14BA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14BA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14BE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14BE4   Length              0005 (5)\n+14BE6   Flags               01 (1) 'Modification'\n+14BE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14BEB PAYLOAD\n+\n+165AB DATA DESCRIPTOR       08074B50 (134695760)\n+165AF CRC                   025CA19F (39625119)\n+165B3 Compressed Size       000019C0 (6592)\n+165B7 Uncompressed Size     000019C0 (6592)\n+\n+165BB LOCAL HEADER #46      04034B50 (67324752)\n+165BF Extract Zip Spec      14 (20) '2.0'\n+165C0 Extract OS            00 (0) 'MS-DOS'\n+165C1 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+165C3 Compression Method    0000 (0) 'Stored'\n+165C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+165C9 CRC                   00000000 (0)\n+165CD Compressed Size       00000000 (0)\n+165D1 Uncompressed Size     00000000 (0)\n+165D5 Filename Length       0036 (54)\n+165D7 Extra Length          0009 (9)\n+165D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x165D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1660F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16611   Length              0005 (5)\n+16613   Flags               01 (1) 'Modification'\n+16614   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+16618 PAYLOAD\n+\n+16AE7 DATA DESCRIPTOR       08074B50 (134695760)\n+16AEB CRC                   E319FE76 (3810131574)\n+16AEF Compressed Size       000004CF (1231)\n+16AF3 Uncompressed Size     000004CF (1231)\n+\n+16AF7 LOCAL HEADER #47      04034B50 (67324752)\n+16AFB Extract Zip Spec      14 (20) '2.0'\n+16AFC Extract OS            00 (0) 'MS-DOS'\n+16AFD General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+16AFF Compression Method    0000 (0) 'Stored'\n+16B01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16B05 CRC                   00000000 (0)\n+16B09 Compressed Size       00000000 (0)\n+16B0D Uncompressed Size     00000000 (0)\n+16B11 Filename Length       0033 (51)\n+16B13 Extra Length          0009 (9)\n+16B15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16B15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16B48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16B4A   Length              0005 (5)\n+16B4C   Flags               01 (1) 'Modification'\n+16B4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+16B51 PAYLOAD\n+\n+17E99 DATA DESCRIPTOR       08074B50 (134695760)\n+17E9D CRC                   E988474B (3918022475)\n+17EA1 Compressed Size       00001348 (4936)\n+17EA5 Uncompressed Size     00001348 (4936)\n+\n+17EA9 LOCAL HEADER #48      04034B50 (67324752)\n+17EAD Extract Zip Spec      14 (20) '2.0'\n+17EAE Extract OS            00 (0) 'MS-DOS'\n+17EAF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+17EB1 Compression Method    0000 (0) 'Stored'\n+17EB3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+17EB7 CRC                   00000000 (0)\n+17EBB Compressed Size       00000000 (0)\n+17EBF Uncompressed Size     00000000 (0)\n+17EC3 Filename Length       0034 (52)\n+17EC5 Extra Length          0009 (9)\n+17EC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x17EC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+17EFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+17EFD   Length              0005 (5)\n+17EFF   Flags               01 (1) 'Modification'\n+17F00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+17F04 PAYLOAD\n+\n+187C9 DATA DESCRIPTOR       08074B50 (134695760)\n+187CD CRC                   4F3510BA (1328877754)\n+187D1 Compressed Size       000008C5 (2245)\n+187D5 Uncompressed Size     000008C5 (2245)\n+\n+187D9 LOCAL HEADER #49      04034B50 (67324752)\n+187DD Extract Zip Spec      14 (20) '2.0'\n+187DE Extract OS            00 (0) 'MS-DOS'\n+187DF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+187E1 Compression Method    0000 (0) 'Stored'\n+187E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+187E7 CRC                   00000000 (0)\n+187EB Compressed Size       00000000 (0)\n+187EF Uncompressed Size     00000000 (0)\n+187F3 Filename Length       0041 (65)\n+187F5 Extra Length          0009 (9)\n+187F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x187F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+18838 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1883A   Length              0005 (5)\n+1883C   Flags               01 (1) 'Modification'\n+1883D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+18841 PAYLOAD\n+\n+19576 DATA DESCRIPTOR       08074B50 (134695760)\n+1957A CRC                   20A5CCED (547736813)\n+1957E Compressed Size       00000D35 (3381)\n+19582 Uncompressed Size     00000D35 (3381)\n+\n+19586 LOCAL HEADER #50      04034B50 (67324752)\n+1958A Extract Zip Spec      14 (20) '2.0'\n+1958B Extract OS            00 (0) 'MS-DOS'\n+1958C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1958E Compression Method    0000 (0) 'Stored'\n+19590 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+19594 CRC                   00000000 (0)\n+19598 Compressed Size       00000000 (0)\n+1959C Uncompressed Size     00000000 (0)\n+195A0 Filename Length       0032 (50)\n+195A2 Extra Length          0009 (9)\n+195A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x195A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+195D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+195D8   Length              0005 (5)\n+195DA   Flags               01 (1) 'Modification'\n+195DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+195DF PAYLOAD\n+\n+1B003 DATA DESCRIPTOR       08074B50 (134695760)\n+1B007 CRC                   CCA441E8 (3433316840)\n+1B00B Compressed Size       00001A24 (6692)\n+1B00F Uncompressed Size     00001A24 (6692)\n+\n+1B013 LOCAL HEADER #51      04034B50 (67324752)\n+1B017 Extract Zip Spec      14 (20) '2.0'\n+1B018 Extract OS            00 (0) 'MS-DOS'\n+1B019 General Purpose Flag  0000 (0)\n+1B01B Compression Method    0000 (0) 'Stored'\n+1B01D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B021 CRC                   00000000 (0)\n+1B025 Compressed Size       00000000 (0)\n+1B029 Uncompressed Size     00000000 (0)\n+1B02D Filename Length       001D (29)\n+1B02F Extra Length          0009 (9)\n+1B031 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B031: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B04E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B050   Length              0005 (5)\n+1B052   Flags               01 (1) 'Modification'\n+1B053   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1B057 LOCAL HEADER #52      04034B50 (67324752)\n+1B05B Extract Zip Spec      14 (20) '2.0'\n+1B05C Extract OS            00 (0) 'MS-DOS'\n+1B05D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1B05F Compression Method    0000 (0) 'Stored'\n+1B061 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B065 CRC                   00000000 (0)\n+1B069 Compressed Size       00000000 (0)\n+1B06D Uncompressed Size     00000000 (0)\n+1B071 Filename Length       0032 (50)\n+1B073 Extra Length          0009 (9)\n+1B075 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B075: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B0A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B0A9   Length              0005 (5)\n+1B0AB   Flags               01 (1) 'Modification'\n+1B0AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B0B0 PAYLOAD\n+\n+1C226 DATA DESCRIPTOR       08074B50 (134695760)\n+1C22A CRC                   20DB00B6 (551223478)\n+1C22E Compressed Size       00001176 (4470)\n+1C232 Uncompressed Size     00001176 (4470)\n+\n+1C236 LOCAL HEADER #53      04034B50 (67324752)\n+1C23A Extract Zip Spec      14 (20) '2.0'\n+1C23B Extract OS            00 (0) 'MS-DOS'\n+1C23C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1C23E Compression Method    0000 (0) 'Stored'\n+1C240 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C244 CRC                   00000000 (0)\n+1C248 Compressed Size       00000000 (0)\n+1C24C Uncompressed Size     00000000 (0)\n+1C250 Filename Length       0057 (87)\n+1C252 Extra Length          0009 (9)\n+1C254 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C254: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C2AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C2AD   Length              0005 (5)\n+1C2AF   Flags               01 (1) 'Modification'\n+1C2B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C2B4 PAYLOAD\n+\n+1C7CE DATA DESCRIPTOR       08074B50 (134695760)\n+1C7D2 CRC                   3CC0C248 (1019265608)\n+1C7D6 Compressed Size       0000051A (1306)\n+1C7DA Uncompressed Size     0000051A (1306)\n+\n+1C7DE LOCAL HEADER #54      04034B50 (67324752)\n+1C7E2 Extract Zip Spec      14 (20) '2.0'\n+1C7E3 Extract OS            00 (0) 'MS-DOS'\n+1C7E4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1C7E6 Compression Method    0000 (0) 'Stored'\n+1C7E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C7EC CRC                   00000000 (0)\n+1C7F0 Compressed Size       00000000 (0)\n+1C7F4 Uncompressed Size     00000000 (0)\n+1C7F8 Filename Length       003D (61)\n+1C7FA Extra Length          0009 (9)\n+1C7FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C7FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C839 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C83B   Length              0005 (5)\n+1C83D   Flags               01 (1) 'Modification'\n+1C83E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C842 PAYLOAD\n+\n+1D0F4 DATA DESCRIPTOR       08074B50 (134695760)\n+1D0F8 CRC                   344ACFDE (877318110)\n+1D0FC Compressed Size       000008B2 (2226)\n+1D100 Uncompressed Size     000008B2 (2226)\n+\n+1D104 LOCAL HEADER #55      04034B50 (67324752)\n+1D108 Extract Zip Spec      14 (20) '2.0'\n+1D109 Extract OS            00 (0) 'MS-DOS'\n+1D10A General Purpose Flag  0000 (0)\n+1D10C Compression Method    0000 (0) 'Stored'\n+1D10E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D112 CRC                   00000000 (0)\n+1D116 Compressed Size       00000000 (0)\n+1D11A Uncompressed Size     00000000 (0)\n+1D11E Filename Length       0019 (25)\n+1D120 Extra Length          0009 (9)\n+1D122 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D122: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D13B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D13D   Length              0005 (5)\n+1D13F   Flags               01 (1) 'Modification'\n+1D140   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1D144 LOCAL HEADER #56      04034B50 (67324752)\n+1D148 Extract Zip Spec      14 (20) '2.0'\n+1D149 Extract OS            00 (0) 'MS-DOS'\n+1D14A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1D14C Compression Method    0000 (0) 'Stored'\n+1D14E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D152 CRC                   00000000 (0)\n+1D156 Compressed Size       00000000 (0)\n+1D15A Uncompressed Size     00000000 (0)\n+1D15E Filename Length       002D (45)\n+1D160 Extra Length          0009 (9)\n+1D162 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D162: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D18F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D191   Length              0005 (5)\n+1D193   Flags               01 (1) 'Modification'\n+1D194   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D198 PAYLOAD\n+\n+1D6DF DATA DESCRIPTOR       08074B50 (134695760)\n+1D6E3 CRC                   4F7B3403 (1333474307)\n+1D6E7 Compressed Size       00000547 (1351)\n+1D6EB Uncompressed Size     00000547 (1351)\n+\n+1D6EF LOCAL HEADER #57      04034B50 (67324752)\n+1D6F3 Extract Zip Spec      14 (20) '2.0'\n+1D6F4 Extract OS            00 (0) 'MS-DOS'\n+1D6F5 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1D6F7 Compression Method    0000 (0) 'Stored'\n+1D6F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D6FD CRC                   00000000 (0)\n+1D701 Compressed Size       00000000 (0)\n+1D705 Uncompressed Size     00000000 (0)\n+1D709 Filename Length       0032 (50)\n+1D70B Extra Length          0009 (9)\n+1D70D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D70D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D73F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D741   Length              0005 (5)\n+1D743   Flags               01 (1) 'Modification'\n+1D744   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D748 PAYLOAD\n+\n+1DA1A DATA DESCRIPTOR       08074B50 (134695760)\n+1DA1E CRC                   7E842F24 (2122592036)\n+1DA22 Compressed Size       000002D2 (722)\n+1DA26 Uncompressed Size     000002D2 (722)\n+\n+1DA2A LOCAL HEADER #58      04034B50 (67324752)\n+1DA2E Extract Zip Spec      14 (20) '2.0'\n+1DA2F Extract OS            00 (0) 'MS-DOS'\n+1DA30 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1DA32 Compression Method    0000 (0) 'Stored'\n+1DA34 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1DA38 CRC                   00000000 (0)\n+1DA3C Compressed Size       00000000 (0)\n+1DA40 Uncompressed Size     00000000 (0)\n+1DA44 Filename Length       003C (60)\n+1DA46 Extra Length          0009 (9)\n+1DA48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1DA48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1DA84 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1DA86   Length              0005 (5)\n+1DA88   Flags               01 (1) 'Modification'\n+1DA89   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1DA8D PAYLOAD\n+\n+1DE59 DATA DESCRIPTOR       08074B50 (134695760)\n+1DE5D CRC                   4EBF134A (1321145162)\n+1DE61 Compressed Size       000003CC (972)\n+1DE65 Uncompressed Size     000003CC (972)\n+\n+1DE69 LOCAL HEADER #59      04034B50 (67324752)\n+1DE6D Extract Zip Spec      14 (20) '2.0'\n+1DE6E Extract OS            00 (0) 'MS-DOS'\n+1DE6F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1DE71 Compression Method    0000 (0) 'Stored'\n+1DE73 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1DE77 CRC                   00000000 (0)\n+1DE7B Compressed Size       00000000 (0)\n+1DE7F Uncompressed Size     00000000 (0)\n+1DE83 Filename Length       0038 (56)\n+1DE85 Extra Length          0009 (9)\n+1DE87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1DE87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1DEBF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1DEC1   Length              0005 (5)\n+1DEC3   Flags               01 (1) 'Modification'\n+1DEC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1DEC8 PAYLOAD\n+\n+1E21E DATA DESCRIPTOR       08074B50 (134695760)\n+1E222 CRC                   6C6C2451 (1819026513)\n+1E226 Compressed Size       00000356 (854)\n+1E22A Uncompressed Size     00000356 (854)\n+\n+1E22E LOCAL HEADER #60      04034B50 (67324752)\n+1E232 Extract Zip Spec      14 (20) '2.0'\n+1E233 Extract OS            00 (0) 'MS-DOS'\n+1E234 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1E236 Compression Method    0000 (0) 'Stored'\n+1E238 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1E23C CRC                   00000000 (0)\n+1E240 Compressed Size       00000000 (0)\n+1E244 Uncompressed Size     00000000 (0)\n+1E248 Filename Length       0030 (48)\n+1E24A Extra Length          0009 (9)\n+1E24C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1E24C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1E27C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1E27E   Length              0005 (5)\n+1E280   Flags               01 (1) 'Modification'\n+1E281   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1E285 PAYLOAD\n+\n+1F9B1 DATA DESCRIPTOR       08074B50 (134695760)\n+1F9B5 CRC                   4CF35C69 (1291017321)\n+1F9B9 Compressed Size       0000172C (5932)\n+1F9BD Uncompressed Size     0000172C (5932)\n+\n+1F9C1 LOCAL HEADER #61      04034B50 (67324752)\n+1F9C5 Extract Zip Spec      14 (20) '2.0'\n+1F9C6 Extract OS            00 (0) 'MS-DOS'\n+1F9C7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1F9C9 Compression Method    0000 (0) 'Stored'\n+1F9CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1F9CF CRC                   00000000 (0)\n+1F9D3 Compressed Size       00000000 (0)\n+1F9D7 Uncompressed Size     00000000 (0)\n+1F9DB Filename Length       0029 (41)\n+1F9DD Extra Length          0009 (9)\n+1F9DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1F9DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1FA08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1FA0A   Length              0005 (5)\n+1FA0C   Flags               01 (1) 'Modification'\n+1FA0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1FA11 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-1FB5D DATA DESCRIPTOR       08074B50 (134695760)\n-1FB61 CRC                   A742848E (2806154382)\n-1FB65 Compressed Size       000000DE (222)\n-1FB69 Uncompressed Size     000000DE (222)\n-\n-1FB6D LOCAL HEADER #62      04034B50 (67324752)\n-1FB71 Extract Zip Spec      14 (20) '2.0'\n-1FB72 Extract OS            00 (0) 'MS-DOS'\n-1FB73 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1FB75 Compression Method    0000 (0) 'Stored'\n-1FB77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1FB7B CRC                   00000000 (0)\n-1FB7F Compressed Size       00000000 (0)\n-1FB83 Uncompressed Size     00000000 (0)\n-1FB87 Filename Length       0030 (48)\n-1FB89 Extra Length          0009 (9)\n-1FB8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1FB8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1FBBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1FBBD   Length              0005 (5)\n-1FBBF   Flags               01 (1) 'Modification'\n-1FBC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1FBC4 PAYLOAD\n-\n-201E3 DATA DESCRIPTOR       08074B50 (134695760)\n-201E7 CRC                   B3EE9627 (3018757671)\n-201EB Compressed Size       0000061F (1567)\n-201EF Uncompressed Size     0000061F (1567)\n-\n-201F3 LOCAL HEADER #63      04034B50 (67324752)\n-201F7 Extract Zip Spec      14 (20) '2.0'\n-201F8 Extract OS            00 (0) 'MS-DOS'\n-201F9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-201FB Compression Method    0000 (0) 'Stored'\n-201FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-20201 CRC                   00000000 (0)\n-20205 Compressed Size       00000000 (0)\n-20209 Uncompressed Size     00000000 (0)\n-2020D Filename Length       0032 (50)\n-2020F Extra Length          0009 (9)\n-20211 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x20211: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-20243 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-20245   Length              0005 (5)\n-20247   Flags               01 (1) 'Modification'\n-20248   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2024C PAYLOAD\n-\n-204FB DATA DESCRIPTOR       08074B50 (134695760)\n-204FF CRC                   AEEAA635 (2934613557)\n-20503 Compressed Size       000002AF (687)\n-20507 Uncompressed Size     000002AF (687)\n-\n-2050B LOCAL HEADER #64      04034B50 (67324752)\n-2050F Extract Zip Spec      14 (20) '2.0'\n-20510 Extract OS            00 (0) 'MS-DOS'\n-20511 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-20513 Compression Method    0000 (0) 'Stored'\n-20515 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-20519 CRC                   00000000 (0)\n-2051D Compressed Size       00000000 (0)\n-20521 Uncompressed Size     00000000 (0)\n-20525 Filename Length       0027 (39)\n-20527 Extra Length          0009 (9)\n-20529 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x20529: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-20550 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-20552   Length              0005 (5)\n-20554   Flags               01 (1) 'Modification'\n-20555   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-20559 PAYLOAD\n-\n-215DD DATA DESCRIPTOR       08074B50 (134695760)\n-215E1 CRC                   0FF8665E (267937374)\n-215E5 Compressed Size       00001084 (4228)\n-215E9 Uncompressed Size     00001084 (4228)\n-\n-215ED LOCAL HEADER #65      04034B50 (67324752)\n-215F1 Extract Zip Spec      14 (20) '2.0'\n-215F2 Extract OS            00 (0) 'MS-DOS'\n-215F3 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-215F5 Compression Method    0000 (0) 'Stored'\n-215F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-215FB CRC                   00000000 (0)\n-215FF Compressed Size       00000000 (0)\n-21603 Uncompressed Size     00000000 (0)\n-21607 Filename Length       002D (45)\n-21609 Extra Length          0009 (9)\n-2160B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2160B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21638 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2163A   Length              0005 (5)\n-2163C   Flags               01 (1) 'Modification'\n-2163D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-21641 PAYLOAD\n-\n-22CE1 DATA DESCRIPTOR       08074B50 (134695760)\n-22CE5 CRC                   F0E6137B (4041610107)\n-22CE9 Compressed Size       000016A0 (5792)\n-22CED Uncompressed Size     000016A0 (5792)\n-\n-22CF1 LOCAL HEADER #66      04034B50 (67324752)\n-22CF5 Extract Zip Spec      14 (20) '2.0'\n-22CF6 Extract OS            00 (0) 'MS-DOS'\n-22CF7 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-22CF9 Compression Method    0000 (0) 'Stored'\n-22CFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22CFF CRC                   00000000 (0)\n-22D03 Compressed Size       00000000 (0)\n-22D07 Uncompressed Size     00000000 (0)\n-22D0B Filename Length       0028 (40)\n-22D0D Extra Length          0009 (9)\n-22D0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22D0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22D37 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22D39   Length              0005 (5)\n-22D3B   Flags               01 (1) 'Modification'\n-22D3C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22D40 PAYLOAD\n-\n-25314 DATA DESCRIPTOR       08074B50 (134695760)\n-25318 CRC                   2442917B (608342395)\n-2531C Compressed Size       000025D4 (9684)\n-25320 Uncompressed Size     000025D4 (9684)\n-\n-25324 LOCAL HEADER #67      04034B50 (67324752)\n-25328 Extract Zip Spec      14 (20) '2.0'\n-25329 Extract OS            00 (0) 'MS-DOS'\n-2532A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2532C Compression Method    0000 (0) 'Stored'\n-2532E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-25332 CRC                   00000000 (0)\n-25336 Compressed Size       00000000 (0)\n-2533A Uncompressed Size     00000000 (0)\n-2533E Filename Length       0032 (50)\n-25340 Extra Length          0009 (9)\n-25342 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x25342: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-25374 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-25376   Length              0005 (5)\n-25378   Flags               01 (1) 'Modification'\n-25379   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2537D PAYLOAD\n-\n-27B0F DATA DESCRIPTOR       08074B50 (134695760)\n-27B13 CRC                   C3FAA4DD (3287983325)\n-27B17 Compressed Size       00002792 (10130)\n-27B1B Uncompressed Size     00002792 (10130)\n-\n-27B1F LOCAL HEADER #68      04034B50 (67324752)\n-27B23 Extract Zip Spec      14 (20) '2.0'\n-27B24 Extract OS            00 (0) 'MS-DOS'\n-27B25 General Purpose Flag  0000 (0)\n-27B27 Compression Method    0000 (0) 'Stored'\n-27B29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27B2D CRC                   00000000 (0)\n-27B31 Compressed Size       00000000 (0)\n-27B35 Uncompressed Size     00000000 (0)\n-27B39 Filename Length       0016 (22)\n-27B3B Extra Length          0009 (9)\n-27B3D Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27B3D: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27B53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27B55   Length              0005 (5)\n-27B57   Flags               01 (1) 'Modification'\n-27B58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27B5C LOCAL HEADER #69      04034B50 (67324752)\n-27B60 Extract Zip Spec      14 (20) '2.0'\n-27B61 Extract OS            00 (0) 'MS-DOS'\n-27B62 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27B64 Compression Method    0000 (0) 'Stored'\n-27B66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27B6A CRC                   00000000 (0)\n-27B6E Compressed Size       00000000 (0)\n-27B72 Uncompressed Size     00000000 (0)\n-27B76 Filename Length       0030 (48)\n-27B78 Extra Length          0009 (9)\n-27B7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27B7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27BAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27BAC   Length              0005 (5)\n-27BAE   Flags               01 (1) 'Modification'\n-27BAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27BB3 PAYLOAD\n-\n-28612 DATA DESCRIPTOR       08074B50 (134695760)\n-28616 CRC                   9F500704 (2672822020)\n-2861A Compressed Size       00000A5F (2655)\n-2861E Uncompressed Size     00000A5F (2655)\n-\n-28622 LOCAL HEADER #70      04034B50 (67324752)\n-28626 Extract Zip Spec      14 (20) '2.0'\n-28627 Extract OS            00 (0) 'MS-DOS'\n-28628 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2862A Compression Method    0000 (0) 'Stored'\n-2862C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-28630 CRC                   00000000 (0)\n-28634 Compressed Size       00000000 (0)\n-28638 Uncompressed Size     00000000 (0)\n-2863C Filename Length       0058 (88)\n-2863E Extra Length          0009 (9)\n-28640 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x28640: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-28698 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2869A   Length              0005 (5)\n-2869C   Flags               01 (1) 'Modification'\n-2869D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-286A1 PAYLOAD\n-\n-28B19 DATA DESCRIPTOR       08074B50 (134695760)\n-28B1D CRC                   F12CA953 (4046235987)\n-28B21 Compressed Size       00000478 (1144)\n-28B25 Uncompressed Size     00000478 (1144)\n-\n-28B29 LOCAL HEADER #71      04034B50 (67324752)\n-28B2D Extract Zip Spec      14 (20) '2.0'\n-28B2E Extract OS            00 (0) 'MS-DOS'\n-28B2F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-28B31 Compression Method    0000 (0) 'Stored'\n-28B33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-28B37 CRC                   00000000 (0)\n-28B3B Compressed Size       00000000 (0)\n-28B3F Uncompressed Size     00000000 (0)\n-28B43 Filename Length       0038 (56)\n-28B45 Extra Length          0009 (9)\n-28B47 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x28B47: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-28B7F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-28B81   Length              0005 (5)\n-28B83   Flags               01 (1) 'Modification'\n-28B84   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-28B88 PAYLOAD\n-\n-28FFF DATA DESCRIPTOR       08074B50 (134695760)\n-29003 CRC                   BEAABD2F (3198860591)\n-29007 Compressed Size       00000477 (1143)\n-2900B Uncompressed Size     00000477 (1143)\n-\n-2900F LOCAL HEADER #72      04034B50 (67324752)\n-29013 Extract Zip Spec      14 (20) '2.0'\n-29014 Extract OS            00 (0) 'MS-DOS'\n-29015 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-29017 Compression Method    0000 (0) 'Stored'\n-29019 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2901D CRC                   00000000 (0)\n-29021 Compressed Size       00000000 (0)\n-29025 Uncompressed Size     00000000 (0)\n-29029 Filename Length       0036 (54)\n-2902B Extra Length          0009 (9)\n-2902D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2902D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-29063 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-29065   Length              0005 (5)\n-29067   Flags               01 (1) 'Modification'\n-29068   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2906C PAYLOAD\n-\n-2935D DATA DESCRIPTOR       08074B50 (134695760)\n-29361 CRC                   0E52C45C (240305244)\n-29365 Compressed Size       000002F1 (753)\n-29369 Uncompressed Size     000002F1 (753)\n-\n-2936D LOCAL HEADER #73      04034B50 (67324752)\n-29371 Extract Zip Spec      14 (20) '2.0'\n-29372 Extract OS            00 (0) 'MS-DOS'\n-29373 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-29375 Compression Method    0000 (0) 'Stored'\n-29377 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2937B CRC                   00000000 (0)\n-2937F Compressed Size       00000000 (0)\n-29383 Uncompressed Size     00000000 (0)\n-29387 Filename Length       0029 (41)\n-29389 Extra Length          0009 (9)\n-2938B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2938B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-293B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-293B6   Length              0005 (5)\n-293B8   Flags               01 (1) 'Modification'\n-293B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-293BD PAYLOAD\n-\n-29CE1 DATA DESCRIPTOR       08074B50 (134695760)\n-29CE5 CRC                   8AC14B9F (2327923615)\n-29CE9 Compressed Size       00000924 (2340)\n-29CED Uncompressed Size     00000924 (2340)\n-\n-29CF1 LOCAL HEADER #74      04034B50 (67324752)\n-29CF5 Extract Zip Spec      14 (20) '2.0'\n-29CF6 Extract OS            00 (0) 'MS-DOS'\n-29CF7 General Purpose Flag  0000 (0)\n-29CF9 Compression Method    0000 (0) 'Stored'\n-29CFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-29CFF CRC                   00000000 (0)\n-29D03 Compressed Size       00000000 (0)\n-29D07 Uncompressed Size     00000000 (0)\n-29D0B Filename Length       001B (27)\n-29D0D Extra Length          0009 (9)\n-29D0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x29D0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-29D2A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-29D2C   Length              0005 (5)\n-29D2E   Flags               01 (1) 'Modification'\n-29D2F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-29D33 LOCAL HEADER #75      04034B50 (67324752)\n-29D37 Extract Zip Spec      14 (20) '2.0'\n-29D38 Extract OS            00 (0) 'MS-DOS'\n-29D39 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-29D3B Compression Method    0000 (0) 'Stored'\n-29D3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-29D41 CRC                   00000000 (0)\n-29D45 Compressed Size       00000000 (0)\n-29D49 Uncompressed Size     00000000 (0)\n-29D4D Filename Length       0049 (73)\n-29D4F Extra Length          0009 (9)\n-29D51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x29D51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-29D9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-29D9C   Length              0005 (5)\n-29D9E   Flags               01 (1) 'Modification'\n-29D9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-29DA3 PAYLOAD\n-\n-2A3C1 DATA DESCRIPTOR       08074B50 (134695760)\n-2A3C5 CRC                   C3825DA4 (3280100772)\n-2A3C9 Compressed Size       0000061E (1566)\n-2A3CD Uncompressed Size     0000061E (1566)\n-\n-2A3D1 LOCAL HEADER #76      04034B50 (67324752)\n-2A3D5 Extract Zip Spec      14 (20) '2.0'\n-2A3D6 Extract OS            00 (0) 'MS-DOS'\n-2A3D7 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2A3D9 Compression Method    0000 (0) 'Stored'\n-2A3DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2A3DF CRC                   00000000 (0)\n-2A3E3 Compressed Size       00000000 (0)\n-2A3E7 Uncompressed Size     00000000 (0)\n-2A3EB Filename Length       0036 (54)\n-2A3ED Extra Length          0009 (9)\n-2A3EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2A3EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2A425 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2A427   Length              0005 (5)\n-2A429   Flags               01 (1) 'Modification'\n-2A42A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2A42E PAYLOAD\n-\n-2B7E3 DATA DESCRIPTOR       08074B50 (134695760)\n-2B7E7 CRC                   5F4C893F (1598851391)\n-2B7EB Compressed Size       000013B5 (5045)\n-2B7EF Uncompressed Size     000013B5 (5045)\n-\n-2B7F3 LOCAL HEADER #77      04034B50 (67324752)\n-2B7F7 Extract Zip Spec      14 (20) '2.0'\n-2B7F8 Extract OS            00 (0) 'MS-DOS'\n-2B7F9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B7FB Compression Method    0000 (0) 'Stored'\n-2B7FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B801 CRC                   00000000 (0)\n-2B805 Compressed Size       00000000 (0)\n-2B809 Uncompressed Size     00000000 (0)\n-2B80D Filename Length       0058 (88)\n-2B80F Extra Length          0009 (9)\n-2B811 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B811: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B869 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B86B   Length              0005 (5)\n-2B86D   Flags               01 (1) 'Modification'\n-2B86E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2B872 PAYLOAD\n-\n-2BFC4 DATA DESCRIPTOR       08074B50 (134695760)\n-2BFC8 CRC                   746795EC (1952945644)\n-2BFCC Compressed Size       00000752 (1874)\n-2BFD0 Uncompressed Size     00000752 (1874)\n-\n-2BFD4 LOCAL HEADER #78      04034B50 (67324752)\n-2BFD8 Extract Zip Spec      14 (20) '2.0'\n-2BFD9 Extract OS            00 (0) 'MS-DOS'\n-2BFDA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BFDC Compression Method    0000 (0) 'Stored'\n-2BFDE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BFE2 CRC                   00000000 (0)\n-2BFE6 Compressed Size       00000000 (0)\n-2BFEA Uncompressed Size     00000000 (0)\n-2BFEE Filename Length       005B (91)\n-2BFF0 Extra Length          0009 (9)\n-2BFF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BFF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C04D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C04F   Length              0005 (5)\n-2C051   Flags               01 (1) 'Modification'\n-2C052   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2C056 PAYLOAD\n-\n-2C8A5 DATA DESCRIPTOR       08074B50 (134695760)\n-2C8A9 CRC                   D8D02F36 (3637522230)\n-2C8AD Compressed Size       0000084F (2127)\n-2C8B1 Uncompressed Size     0000084F (2127)\n-\n-2C8B5 LOCAL HEADER #79      04034B50 (67324752)\n-2C8B9 Extract Zip Spec      14 (20) '2.0'\n-2C8BA Extract OS            00 (0) 'MS-DOS'\n-2C8BB General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C8BD Compression Method    0000 (0) 'Stored'\n-2C8BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C8C3 CRC                   00000000 (0)\n-2C8C7 Compressed Size       00000000 (0)\n-2C8CB Uncompressed Size     00000000 (0)\n-2C8CF Filename Length       003F (63)\n-2C8D1 Extra Length          0009 (9)\n-2C8D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C8D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C912 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C914   Length              0005 (5)\n-2C916   Flags               01 (1) 'Modification'\n-2C917   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2C91B PAYLOAD\n-\n-2E017 DATA DESCRIPTOR       08074B50 (134695760)\n-2E01B CRC                   650EE0FC (1695473916)\n-2E01F Compressed Size       000016FC (5884)\n-2E023 Uncompressed Size     000016FC (5884)\n-\n-2E027 LOCAL HEADER #80      04034B50 (67324752)\n-2E02B Extract Zip Spec      14 (20) '2.0'\n-2E02C Extract OS            00 (0) 'MS-DOS'\n-2E02D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2E02F Compression Method    0000 (0) 'Stored'\n-2E031 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2E035 CRC                   00000000 (0)\n-2E039 Compressed Size       00000000 (0)\n-2E03D Uncompressed Size     00000000 (0)\n-2E041 Filename Length       003D (61)\n-2E043 Extra Length          0009 (9)\n-2E045 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2E045: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2E082 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2E084   Length              0005 (5)\n-2E086   Flags               01 (1) 'Modification'\n-2E087   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2E08B PAYLOAD\n-\n-2EABC DATA DESCRIPTOR       08074B50 (134695760)\n-2EAC0 CRC                   95A69441 (2510722113)\n-2EAC4 Compressed Size       00000A31 (2609)\n-2EAC8 Uncompressed Size     00000A31 (2609)\n-\n-2EACC LOCAL HEADER #81      04034B50 (67324752)\n-2EAD0 Extract Zip Spec      14 (20) '2.0'\n-2EAD1 Extract OS            00 (0) 'MS-DOS'\n-2EAD2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2EAD4 Compression Method    0000 (0) 'Stored'\n-2EAD6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2EADA CRC                   00000000 (0)\n-2EADE Compressed Size       00000000 (0)\n-2EAE2 Uncompressed Size     00000000 (0)\n-2EAE6 Filename Length       005B (91)\n-2EAE8 Extra Length          0009 (9)\n-2EAEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2EAEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2EB45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2EB47   Length              0005 (5)\n-2EB49   Flags               01 (1) 'Modification'\n-2EB4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2EB4E PAYLOAD\n-\n-2F370 DATA DESCRIPTOR       08074B50 (134695760)\n-2F374 CRC                   FA045593 (4194588051)\n-2F378 Compressed Size       00000822 (2082)\n-2F37C Uncompressed Size     00000822 (2082)\n-\n-2F380 LOCAL HEADER #82      04034B50 (67324752)\n-2F384 Extract Zip Spec      14 (20) '2.0'\n-2F385 Extract OS            00 (0) 'MS-DOS'\n-2F386 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2F388 Compression Method    0000 (0) 'Stored'\n-2F38A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2F38E CRC                   00000000 (0)\n-2F392 Compressed Size       00000000 (0)\n-2F396 Uncompressed Size     00000000 (0)\n-2F39A Filename Length       0038 (56)\n-2F39C Extra Length          0009 (9)\n-2F39E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2F39E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2F3D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2F3D8   Length              0005 (5)\n-2F3DA   Flags               01 (1) 'Modification'\n-2F3DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2F3DF PAYLOAD\n-\n-2FBA6 DATA DESCRIPTOR       08074B50 (134695760)\n-2FBAA CRC                   F379F16D (4084855149)\n-2FBAE Compressed Size       000007C7 (1991)\n-2FBB2 Uncompressed Size     000007C7 (1991)\n-\n-2FBB6 LOCAL HEADER #83      04034B50 (67324752)\n-2FBBA Extract Zip Spec      14 (20) '2.0'\n-2FBBB Extract OS            00 (0) 'MS-DOS'\n-2FBBC General Purpose Flag  0000 (0)\n-2FBBE Compression Method    0000 (0) 'Stored'\n-2FBC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FBC4 CRC                   00000000 (0)\n-2FBC8 Compressed Size       00000000 (0)\n-2FBCC Uncompressed Size     00000000 (0)\n-2FBD0 Filename Length       0020 (32)\n-2FBD2 Extra Length          0009 (9)\n-2FBD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FBD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FBF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FBF6   Length              0005 (5)\n-2FBF8   Flags               01 (1) 'Modification'\n-2FBF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2FBFD LOCAL HEADER #84      04034B50 (67324752)\n-2FC01 Extract Zip Spec      14 (20) '2.0'\n-2FC02 Extract OS            00 (0) 'MS-DOS'\n-2FC03 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2FC05 Compression Method    0000 (0) 'Stored'\n-2FC07 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FC0B CRC                   00000000 (0)\n-2FC0F Compressed Size       00000000 (0)\n-2FC13 Uncompressed Size     00000000 (0)\n-2FC17 Filename Length       0033 (51)\n-2FC19 Extra Length          0009 (9)\n-2FC1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FC1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FC4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FC50   Length              0005 (5)\n-2FC52   Flags               01 (1) 'Modification'\n-2FC53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2FC57 PAYLOAD\n-\n-3073F DATA DESCRIPTOR       08074B50 (134695760)\n-30743 CRC                   88ADB6B0 (2293085872)\n-30747 Compressed Size       00000AE8 (2792)\n-3074B Uncompressed Size     00000AE8 (2792)\n-\n-3074F LOCAL HEADER #85      04034B50 (67324752)\n-30753 Extract Zip Spec      14 (20) '2.0'\n-30754 Extract OS            00 (0) 'MS-DOS'\n-30755 General Purpose Flag  0000 (0)\n-30757 Compression Method    0000 (0) 'Stored'\n-30759 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3075D CRC                   00000000 (0)\n-30761 Compressed Size       00000000 (0)\n-30765 Uncompressed Size     00000000 (0)\n-30769 Filename Length       0020 (32)\n-3076B Extra Length          0009 (9)\n-3076D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3076D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3078D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3078F   Length              0005 (5)\n-30791   Flags               01 (1) 'Modification'\n-30792   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-30796 LOCAL HEADER #86      04034B50 (67324752)\n-3079A Extract Zip Spec      14 (20) '2.0'\n-3079B Extract OS            00 (0) 'MS-DOS'\n-3079C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3079E Compression Method    0000 (0) 'Stored'\n-307A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-307A4 CRC                   00000000 (0)\n-307A8 Compressed Size       00000000 (0)\n-307AC Uncompressed Size     00000000 (0)\n-307B0 Filename Length       0051 (81)\n-307B2 Extra Length          0009 (9)\n-307B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x307B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30805 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-30807   Length              0005 (5)\n-30809   Flags               01 (1) 'Modification'\n-3080A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3080E PAYLOAD\n-\n-30D4E DATA DESCRIPTOR       08074B50 (134695760)\n-30D52 CRC                   0EAC3ED9 (246169305)\n-30D56 Compressed Size       00000540 (1344)\n-30D5A Uncompressed Size     00000540 (1344)\n-\n-30D5E LOCAL HEADER #87      04034B50 (67324752)\n-30D62 Extract Zip Spec      14 (20) '2.0'\n-30D63 Extract OS            00 (0) 'MS-DOS'\n-30D64 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-30D66 Compression Method    0000 (0) 'Stored'\n-30D68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30D6C CRC                   00000000 (0)\n-30D70 Compressed Size       00000000 (0)\n-30D74 Uncompressed Size     00000000 (0)\n-30D78 Filename Length       004B (75)\n-30D7A Extra Length          0009 (9)\n-30D7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30D7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30DC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-30DC9   Length              0005 (5)\n-30DCB   Flags               01 (1) 'Modification'\n-30DCC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-30DD0 PAYLOAD\n-\n-31B02 DATA DESCRIPTOR       08074B50 (134695760)\n-31B06 CRC                   F917B64C (4179080780)\n-31B0A Compressed Size       00000D32 (3378)\n-31B0E Uncompressed Size     00000D32 (3378)\n-\n-31B12 LOCAL HEADER #88      04034B50 (67324752)\n-31B16 Extract Zip Spec      14 (20) '2.0'\n-31B17 Extract OS            00 (0) 'MS-DOS'\n-31B18 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-31B1A Compression Method    0000 (0) 'Stored'\n-31B1C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-31B20 CRC                   00000000 (0)\n-31B24 Compressed Size       00000000 (0)\n-31B28 Uncompressed Size     00000000 (0)\n-31B2C Filename Length       0038 (56)\n-31B2E Extra Length          0009 (9)\n-31B30 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x31B30: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-31B68 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-31B6A   Length              0005 (5)\n-31B6C   Flags               01 (1) 'Modification'\n-31B6D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-31B71 PAYLOAD\n-\n-32AFF DATA DESCRIPTOR       08074B50 (134695760)\n-32B03 CRC                   EA4A8A35 (3930753589)\n-32B07 Compressed Size       00000F8E (3982)\n-32B0B Uncompressed Size     00000F8E (3982)\n-\n-32B0F LOCAL HEADER #89      04034B50 (67324752)\n-32B13 Extract Zip Spec      14 (20) '2.0'\n-32B14 Extract OS            00 (0) 'MS-DOS'\n-32B15 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-32B17 Compression Method    0000 (0) 'Stored'\n-32B19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-32B1D CRC                   00000000 (0)\n-32B21 Compressed Size       00000000 (0)\n-32B25 Uncompressed Size     00000000 (0)\n-32B29 Filename Length       0060 (96)\n-32B2B Extra Length          0009 (9)\n-32B2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x32B2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-32B8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-32B8F   Length              0005 (5)\n-32B91   Flags               01 (1) 'Modification'\n-32B92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-32B96 PAYLOAD\n-\n-32EEC DATA DESCRIPTOR       08074B50 (134695760)\n-32EF0 CRC                   EBB29269 (3954348649)\n-32EF4 Compressed Size       00000356 (854)\n-32EF8 Uncompressed Size     00000356 (854)\n-\n-32EFC LOCAL HEADER #90      04034B50 (67324752)\n-32F00 Extract Zip Spec      14 (20) '2.0'\n-32F01 Extract OS            00 (0) 'MS-DOS'\n-32F02 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-32F04 Compression Method    0000 (0) 'Stored'\n-32F06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-32F0A CRC                   00000000 (0)\n-32F0E Compressed Size       00000000 (0)\n-32F12 Uncompressed Size     00000000 (0)\n-32F16 Filename Length       003D (61)\n-32F18 Extra Length          0009 (9)\n-32F1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x32F1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-32F57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-32F59   Length              0005 (5)\n-32F5B   Flags               01 (1) 'Modification'\n-32F5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-32F60 PAYLOAD\n-\n-335EB DATA DESCRIPTOR       08074B50 (134695760)\n-335EF CRC                   350155F3 (889279987)\n-335F3 Compressed Size       0000068B (1675)\n-335F7 Uncompressed Size     0000068B (1675)\n-\n-335FB LOCAL HEADER #91      04034B50 (67324752)\n-335FF Extract Zip Spec      14 (20) '2.0'\n-33600 Extract OS            00 (0) 'MS-DOS'\n-33601 General Purpose Flag  0000 (0)\n-33603 Compression Method    0000 (0) 'Stored'\n-33605 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-33609 CRC                   00000000 (0)\n-3360D Compressed Size       00000000 (0)\n-33611 Uncompressed Size     00000000 (0)\n-33615 Filename Length       001C (28)\n-33617 Extra Length          0009 (9)\n-33619 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x33619: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-33635 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-33637   Length              0005 (5)\n-33639   Flags               01 (1) 'Modification'\n-3363A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3363E LOCAL HEADER #92      04034B50 (67324752)\n-33642 Extract Zip Spec      14 (20) '2.0'\n-33643 Extract OS            00 (0) 'MS-DOS'\n-33644 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-33646 Compression Method    0000 (0) 'Stored'\n-33648 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3364C CRC                   00000000 (0)\n-33650 Compressed Size       00000000 (0)\n-33654 Uncompressed Size     00000000 (0)\n-33658 Filename Length       0040 (64)\n-3365A Extra Length          0009 (9)\n-3365C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3365C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3369C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3369E   Length              0005 (5)\n-336A0   Flags               01 (1) 'Modification'\n-336A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-336A5 PAYLOAD\n-\n-33AB6 DATA DESCRIPTOR       08074B50 (134695760)\n-33ABA CRC                   9418DDB4 (2484657588)\n-33ABE Compressed Size       00000411 (1041)\n-33AC2 Uncompressed Size     00000411 (1041)\n-\n-33AC6 LOCAL HEADER #93      04034B50 (67324752)\n-33ACA Extract Zip Spec      14 (20) '2.0'\n-33ACB Extract OS            00 (0) 'MS-DOS'\n-33ACC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-33ACE Compression Method    0000 (0) 'Stored'\n-33AD0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-33AD4 CRC                   00000000 (0)\n-33AD8 Compressed Size       00000000 (0)\n-33ADC Uncompressed Size     00000000 (0)\n-33AE0 Filename Length       0030 (48)\n-33AE2 Extra Length          0009 (9)\n-33AE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x33AE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-33B14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-33B16   Length              0005 (5)\n-33B18   Flags               01 (1) 'Modification'\n-33B19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-33B1D PAYLOAD\n-\n-34BFA DATA DESCRIPTOR       08074B50 (134695760)\n-34BFE CRC                   CA7E6088 (3397279880)\n-34C02 Compressed Size       000010DD (4317)\n-34C06 Uncompressed Size     000010DD (4317)\n-\n-34C0A LOCAL HEADER #94      04034B50 (67324752)\n-34C0E Extract Zip Spec      14 (20) '2.0'\n-34C0F Extract OS            00 (0) 'MS-DOS'\n-34C10 General Purpose Flag  0000 (0)\n-34C12 Compression Method    0000 (0) 'Stored'\n-34C14 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-34C18 CRC                   00000000 (0)\n-34C1C Compressed Size       00000000 (0)\n-34C20 Uncompressed Size     00000000 (0)\n-34C24 Filename Length       001C (28)\n-34C26 Extra Length          0009 (9)\n-34C28 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x34C28: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-34C44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-34C46   Length              0005 (5)\n-34C48   Flags               01 (1) 'Modification'\n-34C49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-34C4D LOCAL HEADER #95      04034B50 (67324752)\n-34C51 Extract Zip Spec      14 (20) '2.0'\n-34C52 Extract OS            00 (0) 'MS-DOS'\n-34C53 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-34C55 Compression Method    0000 (0) 'Stored'\n-34C57 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-34C5B CRC                   00000000 (0)\n-34C5F Compressed Size       00000000 (0)\n-34C63 Uncompressed Size     00000000 (0)\n-34C67 Filename Length       0034 (52)\n-34C69 Extra Length          0009 (9)\n-34C6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x34C6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-34C9F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-34CA1   Length              0005 (5)\n-34CA3   Flags               01 (1) 'Modification'\n-34CA4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-34CA8 PAYLOAD\n-\n-368C7 DATA DESCRIPTOR       08074B50 (134695760)\n-368CB CRC                   452F6D91 (1160736145)\n-368CF Compressed Size       00001C1F (7199)\n-368D3 Uncompressed Size     00001C1F (7199)\n-\n-368D7 LOCAL HEADER #96      04034B50 (67324752)\n-368DB Extract Zip Spec      14 (20) '2.0'\n-368DC Extract OS            00 (0) 'MS-DOS'\n-368DD General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-368DF Compression Method    0000 (0) 'Stored'\n-368E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-368E5 CRC                   00000000 (0)\n-368E9 Compressed Size       00000000 (0)\n-368ED Uncompressed Size     00000000 (0)\n-368F1 Filename Length       002C (44)\n-368F3 Extra Length          0009 (9)\n-368F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x368F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-36921 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-36923   Length              0005 (5)\n-36925   Flags               01 (1) 'Modification'\n-36926   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3692A PAYLOAD\n-\n-377A9 DATA DESCRIPTOR       08074B50 (134695760)\n-377AD CRC                   596C85E3 (1500284387)\n-377B1 Compressed Size       00000E7F (3711)\n-377B5 Uncompressed Size     00000E7F (3711)\n-\n-377B9 LOCAL HEADER #97      04034B50 (67324752)\n-377BD Extract Zip Spec      14 (20) '2.0'\n-377BE Extract OS            00 (0) 'MS-DOS'\n-377BF General Purpose Flag  0000 (0)\n-377C1 Compression Method    0000 (0) 'Stored'\n-377C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-377C7 CRC                   00000000 (0)\n-377CB Compressed Size       00000000 (0)\n-377CF Uncompressed Size     00000000 (0)\n-377D3 Filename Length       0027 (39)\n-377D5 Extra Length          0009 (9)\n-377D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x377D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-377FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37800   Length              0005 (5)\n-37802   Flags               01 (1) 'Modification'\n-37803   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-37807 LOCAL HEADER #98      04034B50 (67324752)\n-3780B Extract Zip Spec      14 (20) '2.0'\n-3780C Extract OS            00 (0) 'MS-DOS'\n-3780D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3780F Compression Method    0000 (0) 'Stored'\n-37811 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37815 CRC                   00000000 (0)\n-37819 Compressed Size       00000000 (0)\n-3781D Uncompressed Size     00000000 (0)\n-37821 Filename Length       005C (92)\n-37823 Extra Length          0009 (9)\n-37825 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37825: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-37881 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37883   Length              0005 (5)\n-37885   Flags               01 (1) 'Modification'\n-37886   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3788A PAYLOAD\n-\n-37BA6 DATA DESCRIPTOR       08074B50 (134695760)\n-37BAA CRC                   A057B335 (2690102069)\n-37BAE Compressed Size       0000031C (796)\n-37BB2 Uncompressed Size     0000031C (796)\n-\n-37BB6 LOCAL HEADER #99      04034B50 (67324752)\n-37BBA Extract Zip Spec      14 (20) '2.0'\n-37BBB Extract OS            00 (0) 'MS-DOS'\n-37BBC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-37BBE Compression Method    0000 (0) 'Stored'\n-37BC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37BC4 CRC                   00000000 (0)\n-37BC8 Compressed Size       00000000 (0)\n-37BCC Uncompressed Size     00000000 (0)\n-37BD0 Filename Length       0058 (88)\n-37BD2 Extra Length          0009 (9)\n-37BD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37BD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-37C2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37C2E   Length              0005 (5)\n-37C30   Flags               01 (1) 'Modification'\n-37C31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-37C35 PAYLOAD\n-\n-37F43 DATA DESCRIPTOR       08074B50 (134695760)\n-37F47 CRC                   6321A4B6 (1663149238)\n-37F4B Compressed Size       0000030E (782)\n-37F4F Uncompressed Size     0000030E (782)\n-\n-37F53 LOCAL HEADER #100     04034B50 (67324752)\n-37F57 Extract Zip Spec      14 (20) '2.0'\n-37F58 Extract OS            00 (0) 'MS-DOS'\n-37F59 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-37F5B Compression Method    0000 (0) 'Stored'\n-37F5D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37F61 CRC                   00000000 (0)\n-37F65 Compressed Size       00000000 (0)\n-37F69 Uncompressed Size     00000000 (0)\n-37F6D Filename Length       004F (79)\n-37F6F Extra Length          0009 (9)\n-37F71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37F71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-37FC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37FC2   Length              0005 (5)\n-37FC4   Flags               01 (1) 'Modification'\n-37FC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-37FC9 PAYLOAD\n-\n-38E14 DATA DESCRIPTOR       08074B50 (134695760)\n-38E18 CRC                   61507D51 (1632664913)\n-38E1C Compressed Size       00000E4B (3659)\n-38E20 Uncompressed Size     00000E4B (3659)\n-\n-38E24 LOCAL HEADER #101     04034B50 (67324752)\n-38E28 Extract Zip Spec      14 (20) '2.0'\n-38E29 Extract OS            00 (0) 'MS-DOS'\n-38E2A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-38E2C Compression Method    0000 (0) 'Stored'\n-38E2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38E32 CRC                   00000000 (0)\n-38E36 Compressed Size       00000000 (0)\n-38E3A Uncompressed Size     00000000 (0)\n-38E3E Filename Length       0053 (83)\n-38E40 Extra Length          0009 (9)\n-38E42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38E42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38E95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38E97   Length              0005 (5)\n-38E99   Flags               01 (1) 'Modification'\n-38E9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-38E9E PAYLOAD\n-\n-39241 DATA DESCRIPTOR       08074B50 (134695760)\n-39245 CRC                   5344292B (1396975915)\n-39249 Compressed Size       000003A3 (931)\n-3924D Uncompressed Size     000003A3 (931)\n-\n-39251 LOCAL HEADER #102     04034B50 (67324752)\n-39255 Extract Zip Spec      14 (20) '2.0'\n-39256 Extract OS            00 (0) 'MS-DOS'\n-39257 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-39259 Compression Method    0000 (0) 'Stored'\n-3925B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3925F CRC                   00000000 (0)\n-39263 Compressed Size       00000000 (0)\n-39267 Uncompressed Size     00000000 (0)\n-3926B Filename Length       0059 (89)\n-3926D Extra Length          0009 (9)\n-3926F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3926F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-392C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-392CA   Length              0005 (5)\n-392CC   Flags               01 (1) 'Modification'\n-392CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-392D1 PAYLOAD\n-\n-39912 DATA DESCRIPTOR       08074B50 (134695760)\n-39916 CRC                   D63BC3A1 (3594240929)\n-3991A Compressed Size       00000641 (1601)\n-3991E Uncompressed Size     00000641 (1601)\n-\n-39922 LOCAL HEADER #103     04034B50 (67324752)\n-39926 Extract Zip Spec      14 (20) '2.0'\n-39927 Extract OS            00 (0) 'MS-DOS'\n-39928 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3992A Compression Method    0000 (0) 'Stored'\n-3992C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-39930 CRC                   00000000 (0)\n-39934 Compressed Size       00000000 (0)\n-39938 Uncompressed Size     00000000 (0)\n-3993C Filename Length       0059 (89)\n-3993E Extra Length          0009 (9)\n-39940 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x39940: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-39999 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3999B   Length              0005 (5)\n-3999D   Flags               01 (1) 'Modification'\n-3999E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-399A2 PAYLOAD\n-\n-3A0C6 DATA DESCRIPTOR       08074B50 (134695760)\n-3A0CA CRC                   8B797A98 (2339994264)\n-3A0CE Compressed Size       00000724 (1828)\n-3A0D2 Uncompressed Size     00000724 (1828)\n-\n-3A0D6 LOCAL HEADER #104     04034B50 (67324752)\n-3A0DA Extract Zip Spec      14 (20) '2.0'\n-3A0DB Extract OS            00 (0) 'MS-DOS'\n-3A0DC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3A0DE Compression Method    0000 (0) 'Stored'\n-3A0E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3A0E4 CRC                   00000000 (0)\n-3A0E8 Compressed Size       00000000 (0)\n-3A0EC Uncompressed Size     00000000 (0)\n-3A0F0 Filename Length       004A (74)\n-3A0F2 Extra Length          0009 (9)\n-3A0F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3A0F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3A13E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3A140   Length              0005 (5)\n-3A142   Flags               01 (1) 'Modification'\n-3A143   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3A147 PAYLOAD\n-\n-3AFE1 DATA DESCRIPTOR       08074B50 (134695760)\n-3AFE5 CRC                   CD48F380 (3444110208)\n-3AFE9 Compressed Size       00000E9A (3738)\n-3AFED Uncompressed Size     00000E9A (3738)\n-\n-3AFF1 LOCAL HEADER #105     04034B50 (67324752)\n-3AFF5 Extract Zip Spec      14 (20) '2.0'\n-3AFF6 Extract OS            00 (0) 'MS-DOS'\n-3AFF7 General Purpose Flag  0000 (0)\n-3AFF9 Compression Method    0000 (0) 'Stored'\n-3AFFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3AFFF CRC                   00000000 (0)\n-3B003 Compressed Size       00000000 (0)\n-3B007 Uncompressed Size     00000000 (0)\n-3B00B Filename Length       001F (31)\n-3B00D Extra Length          0009 (9)\n-3B00F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B00F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B02E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B030   Length              0005 (5)\n-3B032   Flags               01 (1) 'Modification'\n-3B033   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3B037 LOCAL HEADER #106     04034B50 (67324752)\n-3B03B Extract Zip Spec      14 (20) '2.0'\n-3B03C Extract OS            00 (0) 'MS-DOS'\n-3B03D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3B03F Compression Method    0000 (0) 'Stored'\n-3B041 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B045 CRC                   00000000 (0)\n-3B049 Compressed Size       00000000 (0)\n-3B04D Uncompressed Size     00000000 (0)\n-3B051 Filename Length       0048 (72)\n-3B053 Extra Length          0009 (9)\n-3B055 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B055: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B09D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B09F   Length              0005 (5)\n-3B0A1   Flags               01 (1) 'Modification'\n-3B0A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B0A6 PAYLOAD\n-\n-3B41E DATA DESCRIPTOR       08074B50 (134695760)\n-3B422 CRC                   D7917B4D (3616635725)\n-3B426 Compressed Size       00000378 (888)\n-3B42A Uncompressed Size     00000378 (888)\n-\n-3B42E LOCAL HEADER #107     04034B50 (67324752)\n-3B432 Extract Zip Spec      14 (20) '2.0'\n-3B433 Extract OS            00 (0) 'MS-DOS'\n-3B434 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3B436 Compression Method    0000 (0) 'Stored'\n-3B438 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B43C CRC                   00000000 (0)\n-3B440 Compressed Size       00000000 (0)\n-3B444 Uncompressed Size     00000000 (0)\n-3B448 Filename Length       0036 (54)\n-3B44A Extra Length          0009 (9)\n-3B44C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B44C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B482 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B484   Length              0005 (5)\n-3B486   Flags               01 (1) 'Modification'\n-3B487   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B48B PAYLOAD\n-\n-3B9B7 DATA DESCRIPTOR       08074B50 (134695760)\n-3B9BB CRC                   600A507A (1611288698)\n-3B9BF Compressed Size       0000052C (1324)\n-3B9C3 Uncompressed Size     0000052C (1324)\n-\n-3B9C7 LOCAL HEADER #108     04034B50 (67324752)\n-3B9CB Extract Zip Spec      14 (20) '2.0'\n-3B9CC Extract OS            00 (0) 'MS-DOS'\n-3B9CD General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3B9CF Compression Method    0000 (0) 'Stored'\n-3B9D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B9D5 CRC                   00000000 (0)\n-3B9D9 Compressed Size       00000000 (0)\n-3B9DD Uncompressed Size     00000000 (0)\n-3B9E1 Filename Length       004E (78)\n-3B9E3 Extra Length          0009 (9)\n-3B9E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B9E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3BA33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3BA35   Length              0005 (5)\n-3BA37   Flags               01 (1) 'Modification'\n-3BA38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3BA3C PAYLOAD\n-\n-3C035 DATA DESCRIPTOR       08074B50 (134695760)\n-3C039 CRC                   C5569DA0 (3310788000)\n-3C03D Compressed Size       000005F9 (1529)\n-3C041 Uncompressed Size     000005F9 (1529)\n-\n-3C045 LOCAL HEADER #109     04034B50 (67324752)\n-3C049 Extract Zip Spec      14 (20) '2.0'\n-3C04A Extract OS            00 (0) 'MS-DOS'\n-3C04B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3C04D Compression Method    0000 (0) 'Stored'\n-3C04F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C053 CRC                   00000000 (0)\n-3C057 Compressed Size       00000000 (0)\n-3C05B Uncompressed Size     00000000 (0)\n-3C05F Filename Length       005A (90)\n-3C061 Extra Length          0009 (9)\n-3C063 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C063: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C0BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C0BF   Length              0005 (5)\n-3C0C1   Flags               01 (1) 'Modification'\n-3C0C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C0C6 PAYLOAD\n-\n-3C5D5 DATA DESCRIPTOR       08074B50 (134695760)\n-3C5D9 CRC                   E1939228 (3784544808)\n-3C5DD Compressed Size       0000050F (1295)\n-3C5E1 Uncompressed Size     0000050F (1295)\n-\n-3C5E5 LOCAL HEADER #110     04034B50 (67324752)\n-3C5E9 Extract Zip Spec      14 (20) '2.0'\n-3C5EA Extract OS            00 (0) 'MS-DOS'\n-3C5EB General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3C5ED Compression Method    0000 (0) 'Stored'\n-3C5EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C5F3 CRC                   00000000 (0)\n-3C5F7 Compressed Size       00000000 (0)\n-3C5FB Uncompressed Size     00000000 (0)\n-3C5FF Filename Length       003F (63)\n-3C601 Extra Length          0009 (9)\n-3C603 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C603: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C642 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C644   Length              0005 (5)\n-3C646   Flags               01 (1) 'Modification'\n-3C647   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C64B PAYLOAD\n-\n-3CD50 DATA DESCRIPTOR       08074B50 (134695760)\n-3CD54 CRC                   77632724 (2002986788)\n-3CD58 Compressed Size       00000705 (1797)\n-3CD5C Uncompressed Size     00000705 (1797)\n-\n-3CD60 LOCAL HEADER #111     04034B50 (67324752)\n-3CD64 Extract Zip Spec      14 (20) '2.0'\n-3CD65 Extract OS            00 (0) 'MS-DOS'\n-3CD66 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3CD68 Compression Method    0000 (0) 'Stored'\n-3CD6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3CD6E CRC                   00000000 (0)\n-3CD72 Compressed Size       00000000 (0)\n-3CD76 Uncompressed Size     00000000 (0)\n-3CD7A Filename Length       005F (95)\n-3CD7C Extra Length          0009 (9)\n-3CD7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3CD7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3CDDD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3CDDF   Length              0005 (5)\n-3CDE1   Flags               01 (1) 'Modification'\n-3CDE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3CDE6 PAYLOAD\n-\n-3D138 DATA DESCRIPTOR       08074B50 (134695760)\n-3D13C CRC                   AC6ACD6D (2892680557)\n-3D140 Compressed Size       00000352 (850)\n-3D144 Uncompressed Size     00000352 (850)\n-\n-3D148 LOCAL HEADER #112     04034B50 (67324752)\n-3D14C Extract Zip Spec      14 (20) '2.0'\n-3D14D Extract OS            00 (0) 'MS-DOS'\n-3D14E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3D150 Compression Method    0000 (0) 'Stored'\n-3D152 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D156 CRC                   00000000 (0)\n-3D15A Compressed Size       00000000 (0)\n-3D15E Uncompressed Size     00000000 (0)\n-3D162 Filename Length       003C (60)\n-3D164 Extra Length          0009 (9)\n-3D166 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D166: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D1A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D1A4   Length              0005 (5)\n-3D1A6   Flags               01 (1) 'Modification'\n-3D1A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D1AB PAYLOAD\n-\n-3D753 DATA DESCRIPTOR       08074B50 (134695760)\n-3D757 CRC                   D0202B76 (3491769206)\n-3D75B Compressed Size       000005A8 (1448)\n-3D75F Uncompressed Size     000005A8 (1448)\n-\n-3D763 LOCAL HEADER #113     04034B50 (67324752)\n-3D767 Extract Zip Spec      14 (20) '2.0'\n-3D768 Extract OS            00 (0) 'MS-DOS'\n-3D769 General Purpose Flag  0000 (0)\n-3D76B Compression Method    0000 (0) 'Stored'\n-3D76D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D771 CRC                   00000000 (0)\n-3D775 Compressed Size       00000000 (0)\n-3D779 Uncompressed Size     00000000 (0)\n-3D77D Filename Length       0021 (33)\n-3D77F Extra Length          0009 (9)\n-3D781 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D781: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D7A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D7A4   Length              0005 (5)\n-3D7A6   Flags               01 (1) 'Modification'\n-3D7A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3D7AB LOCAL HEADER #114     04034B50 (67324752)\n-3D7AF Extract Zip Spec      14 (20) '2.0'\n-3D7B0 Extract OS            00 (0) 'MS-DOS'\n-3D7B1 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3D7B3 Compression Method    0000 (0) 'Stored'\n-3D7B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D7B9 CRC                   00000000 (0)\n-3D7BD Compressed Size       00000000 (0)\n-3D7C1 Uncompressed Size     00000000 (0)\n-3D7C5 Filename Length       004E (78)\n-3D7C7 Extra Length          0009 (9)\n-3D7C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D7C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D817 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D819   Length              0005 (5)\n-3D81B   Flags               01 (1) 'Modification'\n-3D81C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D820 PAYLOAD\n-\n-3DEC4 DATA DESCRIPTOR       08074B50 (134695760)\n-3DEC8 CRC                   A279CE5F (2725891679)\n-3DECC Compressed Size       000006A4 (1700)\n-3DED0 Uncompressed Size     000006A4 (1700)\n-\n-3DED4 LOCAL HEADER #115     04034B50 (67324752)\n-3DED8 Extract Zip Spec      14 (20) '2.0'\n-3DED9 Extract OS            00 (0) 'MS-DOS'\n-3DEDA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3DEDC Compression Method    0000 (0) 'Stored'\n-3DEDE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3DEE2 CRC                   00000000 (0)\n-3DEE6 Compressed Size       00000000 (0)\n-3DEEA Uncompressed Size     00000000 (0)\n-3DEEE Filename Length       003A (58)\n-3DEF0 Extra Length          0009 (9)\n-3DEF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3DEF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3DF2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3DF2E   Length              0005 (5)\n-3DF30   Flags               01 (1) 'Modification'\n-3DF31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3DF35 PAYLOAD\n-\n-3E931 DATA DESCRIPTOR       08074B50 (134695760)\n-3E935 CRC                   613E6E33 (1631481395)\n-3E939 Compressed Size       000009FC (2556)\n-3E93D Uncompressed Size     000009FC (2556)\n-\n-3E941 LOCAL HEADER #116     04034B50 (67324752)\n-3E945 Extract Zip Spec      14 (20) '2.0'\n-3E946 Extract OS            00 (0) 'MS-DOS'\n-3E947 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3E949 Compression Method    0000 (0) 'Stored'\n-3E94B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3E94F CRC                   00000000 (0)\n-3E953 Compressed Size       00000000 (0)\n-3E957 Uncompressed Size     00000000 (0)\n-3E95B Filename Length       0035 (53)\n-3E95D Extra Length          0009 (9)\n-3E95F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E95F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3E994 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3E996   Length              0005 (5)\n-3E998   Flags               01 (1) 'Modification'\n-3E999   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3E99D PAYLOAD\n-\n-3F3F6 DATA DESCRIPTOR       08074B50 (134695760)\n-3F3FA CRC                   D6376E48 (3593956936)\n-3F3FE Compressed Size       00000A59 (2649)\n-3F402 Uncompressed Size     00000A59 (2649)\n-\n-3F406 LOCAL HEADER #117     04034B50 (67324752)\n-3F40A Extract Zip Spec      14 (20) '2.0'\n-3F40B Extract OS            00 (0) 'MS-DOS'\n-3F40C General Purpose Flag  0000 (0)\n-3F40E Compression Method    0000 (0) 'Stored'\n-3F410 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F414 CRC                   00000000 (0)\n-3F418 Compressed Size       00000000 (0)\n-3F41C Uncompressed Size     00000000 (0)\n-3F420 Filename Length       001D (29)\n-3F422 Extra Length          0009 (9)\n-3F424 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F424: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F441 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F443   Length              0005 (5)\n-3F445   Flags               01 (1) 'Modification'\n-3F446   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3F44A LOCAL HEADER #118     04034B50 (67324752)\n-3F44E Extract Zip Spec      14 (20) '2.0'\n-3F44F Extract OS            00 (0) 'MS-DOS'\n-3F450 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3F452 Compression Method    0000 (0) 'Stored'\n-3F454 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F458 CRC                   00000000 (0)\n-3F45C Compressed Size       00000000 (0)\n-3F460 Uncompressed Size     00000000 (0)\n-3F464 Filename Length       002F (47)\n-3F466 Extra Length          0009 (9)\n-3F468 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F468: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F497 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F499   Length              0005 (5)\n-3F49B   Flags               01 (1) 'Modification'\n-3F49C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F4A0 PAYLOAD\n-\n-404A9 DATA DESCRIPTOR       08074B50 (134695760)\n-404AD CRC                   0F4D3699 (256718489)\n-404B1 Compressed Size       00001009 (4105)\n-404B5 Uncompressed Size     00001009 (4105)\n-\n-404B9 LOCAL HEADER #119     04034B50 (67324752)\n-404BD Extract Zip Spec      14 (20) '2.0'\n-404BE Extract OS            00 (0) 'MS-DOS'\n-404BF General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-404C1 Compression Method    0000 (0) 'Stored'\n-404C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-404C7 CRC                   00000000 (0)\n-404CB Compressed Size       00000000 (0)\n-404CF Uncompressed Size     00000000 (0)\n-404D3 Filename Length       0031 (49)\n-404D5 Extra Length          0009 (9)\n-404D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x404D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40508 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4050A   Length              0005 (5)\n-4050C   Flags               01 (1) 'Modification'\n-4050D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-40511 PAYLOAD\n-\n-41154 DATA DESCRIPTOR       08074B50 (134695760)\n-41158 CRC                   3F113771 (1058092913)\n-4115C Compressed Size       00000C43 (3139)\n-41160 Uncompressed Size     00000C43 (3139)\n-\n-41164 LOCAL HEADER #120     04034B50 (67324752)\n-41168 Extract Zip Spec      14 (20) '2.0'\n-41169 Extract OS            00 (0) 'MS-DOS'\n-4116A General Purpose Flag  0000 (0)\n-4116C Compression Method    0000 (0) 'Stored'\n-4116E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41172 CRC                   00000000 (0)\n-41176 Compressed Size       00000000 (0)\n-4117A Uncompressed Size     00000000 (0)\n-4117E Filename Length       001E (30)\n-41180 Extra Length          0009 (9)\n-41182 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41182: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-411A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-411A2   Length              0005 (5)\n-411A4   Flags               01 (1) 'Modification'\n-411A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-411A9 LOCAL HEADER #121     04034B50 (67324752)\n-411AD Extract Zip Spec      14 (20) '2.0'\n-411AE Extract OS            00 (0) 'MS-DOS'\n-411AF General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-411B1 Compression Method    0000 (0) 'Stored'\n-411B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-411B7 CRC                   00000000 (0)\n-411BB Compressed Size       00000000 (0)\n-411BF Uncompressed Size     00000000 (0)\n-411C3 Filename Length       0045 (69)\n-411C5 Extra Length          0009 (9)\n-411C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x411C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4120C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4120E   Length              0005 (5)\n-41210   Flags               01 (1) 'Modification'\n-41211   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-41215 PAYLOAD\n-\n-41748 DATA DESCRIPTOR       08074B50 (134695760)\n-4174C CRC                   2E68E6C9 (778626761)\n-41750 Compressed Size       00000533 (1331)\n-41754 Uncompressed Size     00000533 (1331)\n-\n-41758 LOCAL HEADER #122     04034B50 (67324752)\n-4175C Extract Zip Spec      14 (20) '2.0'\n-4175D Extract OS            00 (0) 'MS-DOS'\n-4175E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-41760 Compression Method    0000 (0) 'Stored'\n-41762 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41766 CRC                   00000000 (0)\n-4176A Compressed Size       00000000 (0)\n-4176E Uncompressed Size     00000000 (0)\n-41772 Filename Length       0034 (52)\n-41774 Extra Length          0009 (9)\n-41776 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41776: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-417AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-417AC   Length              0005 (5)\n-417AE   Flags               01 (1) 'Modification'\n-417AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-417B3 PAYLOAD\n-\n-41F7D DATA DESCRIPTOR       08074B50 (134695760)\n-41F81 CRC                   9F0AD1AC (2668286380)\n-41F85 Compressed Size       000007CA (1994)\n-41F89 Uncompressed Size     000007CA (1994)\n-\n-41F8D LOCAL HEADER #123     04034B50 (67324752)\n-41F91 Extract Zip Spec      14 (20) '2.0'\n-41F92 Extract OS            00 (0) 'MS-DOS'\n-41F93 General Purpose Flag  0000 (0)\n-41F95 Compression Method    0000 (0) 'Stored'\n-41F97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41F9B CRC                   00000000 (0)\n-41F9F Compressed Size       00000000 (0)\n-41FA3 Uncompressed Size     00000000 (0)\n-41FA7 Filename Length       0014 (20)\n-41FA9 Extra Length          0009 (9)\n-41FAB Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41FAB: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41FBF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41FC1   Length              0005 (5)\n-41FC3   Flags               01 (1) 'Modification'\n-41FC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-41FC8 LOCAL HEADER #124     04034B50 (67324752)\n-41FCC Extract Zip Spec      14 (20) '2.0'\n-41FCD Extract OS            00 (0) 'MS-DOS'\n-41FCE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-41FD0 Compression Method    0000 (0) 'Stored'\n-41FD2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41FD6 CRC                   00000000 (0)\n-41FDA Compressed Size       00000000 (0)\n-41FDE Uncompressed Size     00000000 (0)\n-41FE2 Filename Length       004D (77)\n-41FE4 Extra Length          0009 (9)\n-41FE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41FE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-42033 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-42035   Length              0005 (5)\n-42037   Flags               01 (1) 'Modification'\n-42038   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4203C PAYLOAD\n-\n-428E6 DATA DESCRIPTOR       08074B50 (134695760)\n-428EA CRC                   48D2ABAE (1221766062)\n-428EE Compressed Size       000008AA (2218)\n-428F2 Uncompressed Size     000008AA (2218)\n-\n-428F6 LOCAL HEADER #125     04034B50 (67324752)\n-428FA Extract Zip Spec      14 (20) '2.0'\n-428FB Extract OS            00 (0) 'MS-DOS'\n-428FC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-428FE Compression Method    0000 (0) 'Stored'\n-42900 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-42904 CRC                   00000000 (0)\n-42908 Compressed Size       00000000 (0)\n-4290C Uncompressed Size     00000000 (0)\n-42910 Filename Length       004B (75)\n-42912 Extra Length          0009 (9)\n-42914 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42914: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4295F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-42961   Length              0005 (5)\n-42963   Flags               01 (1) 'Modification'\n-42964   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-42968 PAYLOAD\n-\n-43438 DATA DESCRIPTOR       08074B50 (134695760)\n-4343C CRC                   9191EC6F (2442259567)\n-43440 Compressed Size       00000AD0 (2768)\n-43444 Uncompressed Size     00000AD0 (2768)\n-\n-43448 LOCAL HEADER #126     04034B50 (67324752)\n-4344C Extract Zip Spec      14 (20) '2.0'\n-4344D Extract OS            00 (0) 'MS-DOS'\n-4344E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-43450 Compression Method    0000 (0) 'Stored'\n-43452 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-43456 CRC                   00000000 (0)\n-4345A Compressed Size       00000000 (0)\n-4345E Uncompressed Size     00000000 (0)\n-43462 Filename Length       004C (76)\n-43464 Extra Length          0009 (9)\n-43466 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43466: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-434B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-434B4   Length              0005 (5)\n-434B6   Flags               01 (1) 'Modification'\n-434B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-434BB PAYLOAD\n-\n-43947 DATA DESCRIPTOR       08074B50 (134695760)\n-4394B CRC                   8B599C06 (2337905670)\n-4394F Compressed Size       0000048C (1164)\n-43953 Uncompressed Size     0000048C (1164)\n-\n-43957 LOCAL HEADER #127     04034B50 (67324752)\n-4395B Extract Zip Spec      14 (20) '2.0'\n-4395C Extract OS            00 (0) 'MS-DOS'\n-4395D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-4395F Compression Method    0000 (0) 'Stored'\n-43961 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-43965 CRC                   00000000 (0)\n-43969 Compressed Size       00000000 (0)\n-4396D Uncompressed Size     00000000 (0)\n-43971 Filename Length       004C (76)\n-43973 Extra Length          0009 (9)\n-43975 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43975: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-439C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-439C3   Length              0005 (5)\n-439C5   Flags               01 (1) 'Modification'\n-439C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-439CA PAYLOAD\n-\n-43E52 DATA DESCRIPTOR       08074B50 (134695760)\n-43E56 CRC                   85BB0A54 (2243627604)\n-43E5A Compressed Size       00000488 (1160)\n-43E5E Uncompressed Size     00000488 (1160)\n-\n-43E62 LOCAL HEADER #128     04034B50 (67324752)\n-43E66 Extract Zip Spec      14 (20) '2.0'\n-43E67 Extract OS            00 (0) 'MS-DOS'\n-43E68 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-43E6A Compression Method    0000 (0) 'Stored'\n-43E6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-43E70 CRC                   00000000 (0)\n-43E74 Compressed Size       00000000 (0)\n-43E78 Uncompressed Size     00000000 (0)\n-43E7C Filename Length       0037 (55)\n-43E7E Extra Length          0009 (9)\n-43E80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43E80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-43EB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-43EB9   Length              0005 (5)\n-43EBB   Flags               01 (1) 'Modification'\n-43EBC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-43EC0 PAYLOAD\n-\n-45BE3 DATA DESCRIPTOR       08074B50 (134695760)\n-45BE7 CRC                   50D2C43E (1355990078)\n-45BEB Compressed Size       00001D23 (7459)\n-45BEF Uncompressed Size     00001D23 (7459)\n-\n-45BF3 LOCAL HEADER #129     04034B50 (67324752)\n-45BF7 Extract Zip Spec      14 (20) '2.0'\n-45BF8 Extract OS            00 (0) 'MS-DOS'\n-45BF9 General Purpose Flag  0000 (0)\n-45BFB Compression Method    0000 (0) 'Stored'\n-45BFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45C01 CRC                   00000000 (0)\n-45C05 Compressed Size       00000000 (0)\n-45C09 Uncompressed Size     00000000 (0)\n-45C0D Filename Length       001C (28)\n-45C0F Extra Length          0009 (9)\n-45C11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45C11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45C2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45C2F   Length              0005 (5)\n-45C31   Flags               01 (1) 'Modification'\n-45C32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-45C36 LOCAL HEADER #130     04034B50 (67324752)\n-45C3A Extract Zip Spec      14 (20) '2.0'\n-45C3B Extract OS            00 (0) 'MS-DOS'\n-45C3C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-45C3E Compression Method    0000 (0) 'Stored'\n-45C40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45C44 CRC                   00000000 (0)\n-45C48 Compressed Size       00000000 (0)\n-45C4C Uncompressed Size     00000000 (0)\n-45C50 Filename Length       002D (45)\n-45C52 Extra Length          0009 (9)\n-45C54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45C54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45C81 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45C83   Length              0005 (5)\n-45C85   Flags               01 (1) 'Modification'\n-45C86   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45C8A PAYLOAD\n-\n-46556 DATA DESCRIPTOR       08074B50 (134695760)\n-4655A CRC                   B2182B1E (2987928350)\n-4655E Compressed Size       000008CC (2252)\n-46562 Uncompressed Size     000008CC (2252)\n-\n-46566 LOCAL HEADER #131     04034B50 (67324752)\n-4656A Extract Zip Spec      14 (20) '2.0'\n-4656B Extract OS            00 (0) 'MS-DOS'\n-4656C General Purpose Flag  0000 (0)\n-4656E Compression Method    0000 (0) 'Stored'\n-46570 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-46574 CRC                   00000000 (0)\n-46578 Compressed Size       00000000 (0)\n-4657C Uncompressed Size     00000000 (0)\n-46580 Filename Length       0027 (39)\n-46582 Extra Length          0009 (9)\n-46584 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46584: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-465AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-465AD   Length              0005 (5)\n-465AF   Flags               01 (1) 'Modification'\n-465B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-465B4 LOCAL HEADER #132     04034B50 (67324752)\n-465B8 Extract Zip Spec      14 (20) '2.0'\n-465B9 Extract OS            00 (0) 'MS-DOS'\n-465BA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-465BC Compression Method    0000 (0) 'Stored'\n-465BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-465C2 CRC                   00000000 (0)\n-465C6 Compressed Size       00000000 (0)\n-465CA Uncompressed Size     00000000 (0)\n-465CE Filename Length       0049 (73)\n-465D0 Extra Length          0009 (9)\n-465D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x465D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4661B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4661D   Length              0005 (5)\n-4661F   Flags               01 (1) 'Modification'\n-46620   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-46624 PAYLOAD\n-\n-47889 DATA DESCRIPTOR       08074B50 (134695760)\n-4788D CRC                   991D6690 (2568840848)\n-47891 Compressed Size       00001265 (4709)\n-47895 Uncompressed Size     00001265 (4709)\n-\n-47899 LOCAL HEADER #133     04034B50 (67324752)\n-4789D Extract Zip Spec      14 (20) '2.0'\n-4789E Extract OS            00 (0) 'MS-DOS'\n-4789F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-478A1 Compression Method    0000 (0) 'Stored'\n-478A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-478A7 CRC                   00000000 (0)\n-478AB Compressed Size       00000000 (0)\n-478AF Uncompressed Size     00000000 (0)\n-478B3 Filename Length       004B (75)\n-478B5 Extra Length          0009 (9)\n-478B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x478B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47902 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47904   Length              0005 (5)\n-47906   Flags               01 (1) 'Modification'\n-47907   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4790B PAYLOAD\n-\n-49F56 DATA DESCRIPTOR       08074B50 (134695760)\n-49F5A CRC                   D6CD889E (3603794078)\n-49F5E Compressed Size       0000264B (9803)\n-49F62 Uncompressed Size     0000264B (9803)\n-\n-49F66 LOCAL HEADER #134     04034B50 (67324752)\n-49F6A Extract Zip Spec      14 (20) '2.0'\n-49F6B Extract OS            00 (0) 'MS-DOS'\n-49F6C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-49F6E Compression Method    0000 (0) 'Stored'\n-49F70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-49F74 CRC                   00000000 (0)\n-49F78 Compressed Size       00000000 (0)\n-49F7C Uncompressed Size     00000000 (0)\n-49F80 Filename Length       0044 (68)\n-49F82 Extra Length          0009 (9)\n-49F84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x49F84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-49FC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-49FCA   Length              0005 (5)\n-49FCC   Flags               01 (1) 'Modification'\n-49FCD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-49FD1 PAYLOAD\n-\n-4AF83 DATA DESCRIPTOR       08074B50 (134695760)\n-4AF87 CRC                   12B2F773 (313718643)\n-4AF8B Compressed Size       00000FB2 (4018)\n-4AF8F Uncompressed Size     00000FB2 (4018)\n-\n-4AF93 LOCAL HEADER #135     04034B50 (67324752)\n-4AF97 Extract Zip Spec      14 (20) '2.0'\n-4AF98 Extract OS            00 (0) 'MS-DOS'\n-4AF99 General Purpose Flag  0000 (0)\n-4AF9B Compression Method    0000 (0) 'Stored'\n-4AF9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4AFA1 CRC                   00000000 (0)\n-4AFA5 Compressed Size       00000000 (0)\n-4AFA9 Uncompressed Size     00000000 (0)\n-4AFAD Filename Length       0025 (37)\n-4AFAF Extra Length          0009 (9)\n-4AFB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4AFB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4AFD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4AFD8   Length              0005 (5)\n-4AFDA   Flags               01 (1) 'Modification'\n-4AFDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4AFDF LOCAL HEADER #136     04034B50 (67324752)\n-4AFE3 Extract Zip Spec      14 (20) '2.0'\n-4AFE4 Extract OS            00 (0) 'MS-DOS'\n-4AFE5 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-4AFE7 Compression Method    0000 (0) 'Stored'\n-4AFE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4AFED CRC                   00000000 (0)\n-4AFF1 Compressed Size       00000000 (0)\n-4AFF5 Uncompressed Size     00000000 (0)\n-4AFF9 Filename Length       0045 (69)\n-4AFFB Extra Length          0009 (9)\n-4AFFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4AFFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B042 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B044   Length              0005 (5)\n-4B046   Flags               01 (1) 'Modification'\n-4B047   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4B04B PAYLOAD\n-\n-4D116 DATA DESCRIPTOR       08074B50 (134695760)\n-4D11A CRC                   83A30048 (2208497736)\n-4D11E Compressed Size       000020CB (8395)\n-4D122 Uncompressed Size     000020CB (8395)\n-\n-4D126 LOCAL HEADER #137     04034B50 (67324752)\n-4D12A Extract Zip Spec      14 (20) '2.0'\n-4D12B Extract OS            00 (0) 'MS-DOS'\n-4D12C General Purpose Flag  0000 (0)\n-4D12E Compression Method    0000 (0) 'Stored'\n-4D130 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D134 CRC                   00000000 (0)\n-4D138 Compressed Size       00000000 (0)\n-4D13C Uncompressed Size     00000000 (0)\n-4D140 Filename Length       0026 (38)\n-4D142 Extra Length          0009 (9)\n-4D144 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D144: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D16A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D16C   Length              0005 (5)\n-4D16E   Flags               01 (1) 'Modification'\n-4D16F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4D173 LOCAL HEADER #138     04034B50 (67324752)\n-4D177 Extract Zip Spec      14 (20) '2.0'\n-4D178 Extract OS            00 (0) 'MS-DOS'\n-4D179 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-4D17B Compression Method    0000 (0) 'Stored'\n-4D17D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D181 CRC                   00000000 (0)\n-4D185 Compressed Size       00000000 (0)\n-4D189 Uncompressed Size     00000000 (0)\n-4D18D Filename Length       004E (78)\n-4D18F Extra Length          0009 (9)\n-4D191 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D191: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D1DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D1E1   Length              0005 (5)\n-4D1E3   Flags               01 (1) 'Modification'\n-4D1E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4D1E8 PAYLOAD\n-\n-4F1B0 DATA DESCRIPTOR       08074B50 (134695760)\n-4F1B4 CRC                   D5FDA0C9 (3590168777)\n-4F1B8 Compressed Size       00001FC8 (8136)\n-4F1BC Uncompressed Size     00001FC8 (8136)\n-\n-4F1C0 LOCAL HEADER #139     04034B50 (67324752)\n-4F1C4 Extract Zip Spec      14 (20) '2.0'\n-4F1C5 Extract OS            00 (0) 'MS-DOS'\n-4F1C6 General Purpose Flag  0000 (0)\n-4F1C8 Compression Method    0000 (0) 'Stored'\n-4F1CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4F1CE CRC                   00000000 (0)\n-4F1D2 Compressed Size       00000000 (0)\n-4F1D6 Uncompressed Size     00000000 (0)\n-4F1DA Filename Length       001A (26)\n-4F1DC Extra Length          0009 (9)\n-4F1DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F1DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4F1F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4F1FA   Length              0005 (5)\n-4F1FC   Flags               01 (1) 'Modification'\n-4F1FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4F201 LOCAL HEADER #140     04034B50 (67324752)\n-4F205 Extract Zip Spec      14 (20) '2.0'\n-4F206 Extract OS            00 (0) 'MS-DOS'\n-4F207 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-4F209 Compression Method    0000 (0) 'Stored'\n-4F20B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4F20F CRC                   00000000 (0)\n-4F213 Compressed Size       00000000 (0)\n-4F217 Uncompressed Size     00000000 (0)\n-4F21B Filename Length       002C (44)\n-4F21D Extra Length          0009 (9)\n-4F21F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F21F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4F24B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4F24D   Length              0005 (5)\n-4F24F   Flags               01 (1) 'Modification'\n-4F250   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4F254 PAYLOAD\n-\n-4FF8D DATA DESCRIPTOR       08074B50 (134695760)\n-4FF91 CRC                   3672AC9B (913484955)\n-4FF95 Compressed Size       00000D39 (3385)\n-4FF99 Uncompressed Size     00000D39 (3385)\n-\n-4FF9D LOCAL HEADER #141     04034B50 (67324752)\n-4FFA1 Extract Zip Spec      14 (20) '2.0'\n-4FFA2 Extract OS            00 (0) 'MS-DOS'\n-4FFA3 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-4FFA5 Compression Method    0000 (0) 'Stored'\n-4FFA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4FFAB CRC                   00000000 (0)\n-4FFAF Compressed Size       00000000 (0)\n-4FFB3 Uncompressed Size     00000000 (0)\n-4FFB7 Filename Length       0029 (41)\n-4FFB9 Extra Length          0009 (9)\n-4FFBB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4FFBB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4FFE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4FFE6   Length              0005 (5)\n-4FFE8   Flags               01 (1) 'Modification'\n-4FFE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4FFED PAYLOAD\n-\n-50D96 DATA DESCRIPTOR       08074B50 (134695760)\n-50D9A CRC                   8B430614 (2336425492)\n-50D9E Compressed Size       00000DA9 (3497)\n-50DA2 Uncompressed Size     00000DA9 (3497)\n-\n-50DA6 LOCAL HEADER #142     04034B50 (67324752)\n-50DAA Extract Zip Spec      14 (20) '2.0'\n-50DAB Extract OS            00 (0) 'MS-DOS'\n-50DAC General Purpose Flag  0000 (0)\n-50DAE Compression Method    0000 (0) 'Stored'\n-50DB0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-50DB4 CRC                   00000000 (0)\n-50DB8 Compressed Size       00000000 (0)\n-50DBC Uncompressed Size     00000000 (0)\n-50DC0 Filename Length       0021 (33)\n-50DC2 Extra Length          0009 (9)\n-50DC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x50DC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-50DE5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-50DE7   Length              0005 (5)\n-50DE9   Flags               01 (1) 'Modification'\n-50DEA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-50DEE LOCAL HEADER #143     04034B50 (67324752)\n-50DF2 Extract Zip Spec      14 (20) '2.0'\n-50DF3 Extract OS            00 (0) 'MS-DOS'\n-50DF4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-50DF6 Compression Method    0000 (0) 'Stored'\n-50DF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-50DFC CRC                   00000000 (0)\n-50E00 Compressed Size       00000000 (0)\n-50E04 Uncompressed Size     00000000 (0)\n-50E08 Filename Length       003D (61)\n-50E0A Extra Length          0009 (9)\n-50E0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x50E0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-50E49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-50E4B   Length              0005 (5)\n-50E4D   Flags               01 (1) 'Modification'\n-50E4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-50E52 PAYLOAD\n-\n-51797 DATA DESCRIPTOR       08074B50 (134695760)\n-5179B CRC                   7A958CBE (2056621246)\n-5179F Compressed Size       00000945 (2373)\n-517A3 Uncompressed Size     00000945 (2373)\n-\n-517A7 LOCAL HEADER #144     04034B50 (67324752)\n-517AB Extract Zip Spec      14 (20) '2.0'\n-517AC Extract OS            00 (0) 'MS-DOS'\n-517AD General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-517AF Compression Method    0000 (0) 'Stored'\n-517B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-517B5 CRC                   00000000 (0)\n-517B9 Compressed Size       00000000 (0)\n-517BD Uncompressed Size     00000000 (0)\n-517C1 Filename Length       0043 (67)\n-517C3 Extra Length          0009 (9)\n-517C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x517C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51808 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5180A   Length              0005 (5)\n-5180C   Flags               01 (1) 'Modification'\n-5180D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-51811 PAYLOAD\n-\n-52D5D DATA DESCRIPTOR       08074B50 (134695760)\n-52D61 CRC                   65684A62 (1701333602)\n-52D65 Compressed Size       0000154C (5452)\n-52D69 Uncompressed Size     0000154C (5452)\n-\n-52D6D LOCAL HEADER #145     04034B50 (67324752)\n-52D71 Extract Zip Spec      14 (20) '2.0'\n-52D72 Extract OS            00 (0) 'MS-DOS'\n-52D73 General Purpose Flag  0000 (0)\n-52D75 Compression Method    0000 (0) 'Stored'\n-52D77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-52D7B CRC                   00000000 (0)\n-52D7F Compressed Size       00000000 (0)\n-52D83 Uncompressed Size     00000000 (0)\n-52D87 Filename Length       0026 (38)\n-52D89 Extra Length          0009 (9)\n-52D8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x52D8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-52DB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-52DB3   Length              0005 (5)\n-52DB5   Flags               01 (1) 'Modification'\n-52DB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-52DBA LOCAL HEADER #146     04034B50 (67324752)\n-52DBE Extract Zip Spec      14 (20) '2.0'\n-52DBF Extract OS            00 (0) 'MS-DOS'\n-52DC0 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-52DC2 Compression Method    0000 (0) 'Stored'\n-52DC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-52DC8 CRC                   00000000 (0)\n-52DCC Compressed Size       00000000 (0)\n-52DD0 Uncompressed Size     00000000 (0)\n-52DD4 Filename Length       004B (75)\n-52DD6 Extra Length          0009 (9)\n-52DD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x52DD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-52E23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-52E25   Length              0005 (5)\n-52E27   Flags               01 (1) 'Modification'\n-52E28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-52E2C PAYLOAD\n-\n-54A9C DATA DESCRIPTOR       08074B50 (134695760)\n-54AA0 CRC                   D16E8B20 (3513682720)\n-54AA4 Compressed Size       00001C70 (7280)\n-54AA8 Uncompressed Size     00001C70 (7280)\n-\n-54AAC LOCAL HEADER #147     04034B50 (67324752)\n-54AB0 Extract Zip Spec      14 (20) '2.0'\n-54AB1 Extract OS            00 (0) 'MS-DOS'\n-54AB2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-54AB4 Compression Method    0000 (0) 'Stored'\n-54AB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54ABA CRC                   00000000 (0)\n-54ABE Compressed Size       00000000 (0)\n-54AC2 Uncompressed Size     00000000 (0)\n-54AC6 Filename Length       0047 (71)\n-54AC8 Extra Length          0009 (9)\n-54ACA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54ACA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54B11 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54B13   Length              0005 (5)\n-54B15   Flags               01 (1) 'Modification'\n-54B16   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-54B1A PAYLOAD\n-\n-550EB DATA DESCRIPTOR       08074B50 (134695760)\n-550EF CRC                   A619DAE4 (2786712292)\n-550F3 Compressed Size       000005D1 (1489)\n-550F7 Uncompressed Size     000005D1 (1489)\n-\n-550FB LOCAL HEADER #148     04034B50 (67324752)\n-550FF Extract Zip Spec      14 (20) '2.0'\n-55100 Extract OS            00 (0) 'MS-DOS'\n-55101 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-55103 Compression Method    0000 (0) 'Stored'\n-55105 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-55109 CRC                   00000000 (0)\n-5510D Compressed Size       00000000 (0)\n-55111 Uncompressed Size     00000000 (0)\n-55115 Filename Length       0049 (73)\n-55117 Extra Length          0009 (9)\n-55119 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x55119: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-55162 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-55164   Length              0005 (5)\n-55166   Flags               01 (1) 'Modification'\n-55167   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5516B PAYLOAD\n-\n-56522 DATA DESCRIPTOR       08074B50 (134695760)\n-56526 CRC                   83613D56 (2204187990)\n-5652A Compressed Size       000013B7 (5047)\n-5652E Uncompressed Size     000013B7 (5047)\n-\n-56532 LOCAL HEADER #149     04034B50 (67324752)\n-56536 Extract Zip Spec      14 (20) '2.0'\n-56537 Extract OS            00 (0) 'MS-DOS'\n-56538 General Purpose Flag  0000 (0)\n-5653A Compression Method    0000 (0) 'Stored'\n-5653C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56540 CRC                   00000000 (0)\n-56544 Compressed Size       00000000 (0)\n-56548 Uncompressed Size     00000000 (0)\n-5654C Filename Length       001A (26)\n-5654E Extra Length          0009 (9)\n-56550 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56550: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5656A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5656C   Length              0005 (5)\n-5656E   Flags               01 (1) 'Modification'\n-5656F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-56573 LOCAL HEADER #150     04034B50 (67324752)\n-56577 Extract Zip Spec      14 (20) '2.0'\n-56578 Extract OS            00 (0) 'MS-DOS'\n-56579 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-5657B Compression Method    0000 (0) 'Stored'\n-5657D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56581 CRC                   00000000 (0)\n-56585 Compressed Size       00000000 (0)\n-56589 Uncompressed Size     00000000 (0)\n-5658D Filename Length       003B (59)\n-5658F Extra Length          0009 (9)\n-56591 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56591: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-565CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-565CE   Length              0005 (5)\n-565D0   Flags               01 (1) 'Modification'\n-565D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-565D5 PAYLOAD\n-\n-56958 DATA DESCRIPTOR       08074B50 (134695760)\n-5695C CRC                   435BC395 (1130087317)\n-56960 Compressed Size       00000383 (899)\n-56964 Uncompressed Size     00000383 (899)\n-\n-56968 LOCAL HEADER #151     04034B50 (67324752)\n-5696C Extract Zip Spec      14 (20) '2.0'\n-5696D Extract OS            00 (0) 'MS-DOS'\n-5696E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-56970 Compression Method    0000 (0) 'Stored'\n-56972 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56976 CRC                   00000000 (0)\n-5697A Compressed Size       00000000 (0)\n-5697E Uncompressed Size     00000000 (0)\n-56982 Filename Length       002D (45)\n-56984 Extra Length          0009 (9)\n-56986 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56986: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-569B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-569B5   Length              0005 (5)\n-569B7   Flags               01 (1) 'Modification'\n-569B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-569BC PAYLOAD\n-\n-57917 DATA DESCRIPTOR       08074B50 (134695760)\n-5791B CRC                   A722B775 (2804070261)\n-5791F Compressed Size       00000F5B (3931)\n-57923 Uncompressed Size     00000F5B (3931)\n-\n-57927 LOCAL HEADER #152     04034B50 (67324752)\n-5792B Extract Zip Spec      14 (20) '2.0'\n-5792C Extract OS            00 (0) 'MS-DOS'\n-5792D General Purpose Flag  0000 (0)\n-5792F Compression Method    0000 (0) 'Stored'\n-57931 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-57935 CRC                   00000000 (0)\n-57939 Compressed Size       00000000 (0)\n-5793D Uncompressed Size     00000000 (0)\n-57941 Filename Length       0014 (20)\n-57943 Extra Length          0009 (9)\n-57945 Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57945: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-57959 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5795B   Length              0005 (5)\n-5795D   Flags               01 (1) 'Modification'\n-5795E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-57962 LOCAL HEADER #153     04034B50 (67324752)\n-57966 Extract Zip Spec      14 (20) '2.0'\n-57967 Extract OS            00 (0) 'MS-DOS'\n-57968 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-5796A Compression Method    0000 (0) 'Stored'\n-5796C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-57970 CRC                   00000000 (0)\n-57974 Compressed Size       00000000 (0)\n-57978 Uncompressed Size     00000000 (0)\n-5797C Filename Length       0028 (40)\n-5797E Extra Length          0009 (9)\n-57980 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57980: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-579A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-579AA   Length              0005 (5)\n-579AC   Flags               01 (1) 'Modification'\n-579AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-579B1 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+1FAEF DATA DESCRIPTOR       08074B50 (134695760)\n+1FAF3 CRC                   0E9435B8 (244594104)\n+1FAF7 Compressed Size       000000DE (222)\n+1FAFB Uncompressed Size     000000DE (222)\n+\n+1FAFF LOCAL HEADER #62      04034B50 (67324752)\n+1FB03 Extract Zip Spec      14 (20) '2.0'\n+1FB04 Extract OS            00 (0) 'MS-DOS'\n+1FB05 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1FB07 Compression Method    0000 (0) 'Stored'\n+1FB09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1FB0D CRC                   00000000 (0)\n+1FB11 Compressed Size       00000000 (0)\n+1FB15 Uncompressed Size     00000000 (0)\n+1FB19 Filename Length       0030 (48)\n+1FB1B Extra Length          0009 (9)\n+1FB1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1FB1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1FB4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1FB4F   Length              0005 (5)\n+1FB51   Flags               01 (1) 'Modification'\n+1FB52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1FB56 PAYLOAD\n+\n+20175 DATA DESCRIPTOR       08074B50 (134695760)\n+20179 CRC                   7E2D3D43 (2116894019)\n+2017D Compressed Size       0000061F (1567)\n+20181 Uncompressed Size     0000061F (1567)\n+\n+20185 LOCAL HEADER #63      04034B50 (67324752)\n+20189 Extract Zip Spec      14 (20) '2.0'\n+2018A Extract OS            00 (0) 'MS-DOS'\n+2018B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2018D Compression Method    0000 (0) 'Stored'\n+2018F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+20193 CRC                   00000000 (0)\n+20197 Compressed Size       00000000 (0)\n+2019B Uncompressed Size     00000000 (0)\n+2019F Filename Length       0032 (50)\n+201A1 Extra Length          0009 (9)\n+201A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x201A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+201D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+201D7   Length              0005 (5)\n+201D9   Flags               01 (1) 'Modification'\n+201DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+201DE PAYLOAD\n+\n+2048D DATA DESCRIPTOR       08074B50 (134695760)\n+20491 CRC                   1657AE16 (374844950)\n+20495 Compressed Size       000002AF (687)\n+20499 Uncompressed Size     000002AF (687)\n+\n+2049D LOCAL HEADER #64      04034B50 (67324752)\n+204A1 Extract Zip Spec      14 (20) '2.0'\n+204A2 Extract OS            00 (0) 'MS-DOS'\n+204A3 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+204A5 Compression Method    0000 (0) 'Stored'\n+204A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+204AB CRC                   00000000 (0)\n+204AF Compressed Size       00000000 (0)\n+204B3 Uncompressed Size     00000000 (0)\n+204B7 Filename Length       0027 (39)\n+204B9 Extra Length          0009 (9)\n+204BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x204BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+204E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+204E4   Length              0005 (5)\n+204E6   Flags               01 (1) 'Modification'\n+204E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+204EB PAYLOAD\n+\n+214E7 DATA DESCRIPTOR       08074B50 (134695760)\n+214EB CRC                   E50DBBE1 (3842882529)\n+214EF Compressed Size       00000FFC (4092)\n+214F3 Uncompressed Size     00000FFC (4092)\n+\n+214F7 LOCAL HEADER #65      04034B50 (67324752)\n+214FB Extract Zip Spec      14 (20) '2.0'\n+214FC Extract OS            00 (0) 'MS-DOS'\n+214FD General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+214FF Compression Method    0000 (0) 'Stored'\n+21501 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21505 CRC                   00000000 (0)\n+21509 Compressed Size       00000000 (0)\n+2150D Uncompressed Size     00000000 (0)\n+21511 Filename Length       002D (45)\n+21513 Extra Length          0009 (9)\n+21515 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21515: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21542 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21544   Length              0005 (5)\n+21546   Flags               01 (1) 'Modification'\n+21547   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2154B PAYLOAD\n+\n+22BF7 DATA DESCRIPTOR       08074B50 (134695760)\n+22BFB CRC                   BC142CBC (3155438780)\n+22BFF Compressed Size       000016AC (5804)\n+22C03 Uncompressed Size     000016AC (5804)\n+\n+22C07 LOCAL HEADER #66      04034B50 (67324752)\n+22C0B Extract Zip Spec      14 (20) '2.0'\n+22C0C Extract OS            00 (0) 'MS-DOS'\n+22C0D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+22C0F Compression Method    0000 (0) 'Stored'\n+22C11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22C15 CRC                   00000000 (0)\n+22C19 Compressed Size       00000000 (0)\n+22C1D Uncompressed Size     00000000 (0)\n+22C21 Filename Length       0028 (40)\n+22C23 Extra Length          0009 (9)\n+22C25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22C25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22C4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22C4F   Length              0005 (5)\n+22C51   Flags               01 (1) 'Modification'\n+22C52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22C56 PAYLOAD\n+\n+25228 DATA DESCRIPTOR       08074B50 (134695760)\n+2522C CRC                   23BE2A56 (599665238)\n+25230 Compressed Size       000025D2 (9682)\n+25234 Uncompressed Size     000025D2 (9682)\n+\n+25238 LOCAL HEADER #67      04034B50 (67324752)\n+2523C Extract Zip Spec      14 (20) '2.0'\n+2523D Extract OS            00 (0) 'MS-DOS'\n+2523E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+25240 Compression Method    0000 (0) 'Stored'\n+25242 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+25246 CRC                   00000000 (0)\n+2524A Compressed Size       00000000 (0)\n+2524E Uncompressed Size     00000000 (0)\n+25252 Filename Length       0032 (50)\n+25254 Extra Length          0009 (9)\n+25256 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x25256: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+25288 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2528A   Length              0005 (5)\n+2528C   Flags               01 (1) 'Modification'\n+2528D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+25291 PAYLOAD\n+\n+27A20 DATA DESCRIPTOR       08074B50 (134695760)\n+27A24 CRC                   E3F04F5A (3824176986)\n+27A28 Compressed Size       0000278F (10127)\n+27A2C Uncompressed Size     0000278F (10127)\n+\n+27A30 LOCAL HEADER #68      04034B50 (67324752)\n+27A34 Extract Zip Spec      14 (20) '2.0'\n+27A35 Extract OS            00 (0) 'MS-DOS'\n+27A36 General Purpose Flag  0000 (0)\n+27A38 Compression Method    0000 (0) 'Stored'\n+27A3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27A3E CRC                   00000000 (0)\n+27A42 Compressed Size       00000000 (0)\n+27A46 Uncompressed Size     00000000 (0)\n+27A4A Filename Length       0016 (22)\n+27A4C Extra Length          0009 (9)\n+27A4E Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27A4E: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27A64 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27A66   Length              0005 (5)\n+27A68   Flags               01 (1) 'Modification'\n+27A69   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27A6D LOCAL HEADER #69      04034B50 (67324752)\n+27A71 Extract Zip Spec      14 (20) '2.0'\n+27A72 Extract OS            00 (0) 'MS-DOS'\n+27A73 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27A75 Compression Method    0000 (0) 'Stored'\n+27A77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27A7B CRC                   00000000 (0)\n+27A7F Compressed Size       00000000 (0)\n+27A83 Uncompressed Size     00000000 (0)\n+27A87 Filename Length       0030 (48)\n+27A89 Extra Length          0009 (9)\n+27A8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27A8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27ABB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27ABD   Length              0005 (5)\n+27ABF   Flags               01 (1) 'Modification'\n+27AC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+27AC4 PAYLOAD\n+\n+28520 DATA DESCRIPTOR       08074B50 (134695760)\n+28524 CRC                   6D97C843 (1838663747)\n+28528 Compressed Size       00000A5C (2652)\n+2852C Uncompressed Size     00000A5C (2652)\n+\n+28530 LOCAL HEADER #70      04034B50 (67324752)\n+28534 Extract Zip Spec      14 (20) '2.0'\n+28535 Extract OS            00 (0) 'MS-DOS'\n+28536 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+28538 Compression Method    0000 (0) 'Stored'\n+2853A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2853E CRC                   00000000 (0)\n+28542 Compressed Size       00000000 (0)\n+28546 Uncompressed Size     00000000 (0)\n+2854A Filename Length       0058 (88)\n+2854C Extra Length          0009 (9)\n+2854E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2854E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+285A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+285A8   Length              0005 (5)\n+285AA   Flags               01 (1) 'Modification'\n+285AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+285AF PAYLOAD\n+\n+28A27 DATA DESCRIPTOR       08074B50 (134695760)\n+28A2B CRC                   35479578 (893883768)\n+28A2F Compressed Size       00000478 (1144)\n+28A33 Uncompressed Size     00000478 (1144)\n+\n+28A37 LOCAL HEADER #71      04034B50 (67324752)\n+28A3B Extract Zip Spec      14 (20) '2.0'\n+28A3C Extract OS            00 (0) 'MS-DOS'\n+28A3D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+28A3F Compression Method    0000 (0) 'Stored'\n+28A41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+28A45 CRC                   00000000 (0)\n+28A49 Compressed Size       00000000 (0)\n+28A4D Uncompressed Size     00000000 (0)\n+28A51 Filename Length       0038 (56)\n+28A53 Extra Length          0009 (9)\n+28A55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x28A55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28A8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28A8F   Length              0005 (5)\n+28A91   Flags               01 (1) 'Modification'\n+28A92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+28A96 PAYLOAD\n+\n+28F0D DATA DESCRIPTOR       08074B50 (134695760)\n+28F11 CRC                   3F93A3EA (1066640362)\n+28F15 Compressed Size       00000477 (1143)\n+28F19 Uncompressed Size     00000477 (1143)\n+\n+28F1D LOCAL HEADER #72      04034B50 (67324752)\n+28F21 Extract Zip Spec      14 (20) '2.0'\n+28F22 Extract OS            00 (0) 'MS-DOS'\n+28F23 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+28F25 Compression Method    0000 (0) 'Stored'\n+28F27 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+28F2B CRC                   00000000 (0)\n+28F2F Compressed Size       00000000 (0)\n+28F33 Uncompressed Size     00000000 (0)\n+28F37 Filename Length       0036 (54)\n+28F39 Extra Length          0009 (9)\n+28F3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x28F3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28F71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28F73   Length              0005 (5)\n+28F75   Flags               01 (1) 'Modification'\n+28F76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+28F7A PAYLOAD\n+\n+2926B DATA DESCRIPTOR       08074B50 (134695760)\n+2926F CRC                   398CD30C (965530380)\n+29273 Compressed Size       000002F1 (753)\n+29277 Uncompressed Size     000002F1 (753)\n+\n+2927B LOCAL HEADER #73      04034B50 (67324752)\n+2927F Extract Zip Spec      14 (20) '2.0'\n+29280 Extract OS            00 (0) 'MS-DOS'\n+29281 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+29283 Compression Method    0000 (0) 'Stored'\n+29285 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+29289 CRC                   00000000 (0)\n+2928D Compressed Size       00000000 (0)\n+29291 Uncompressed Size     00000000 (0)\n+29295 Filename Length       0029 (41)\n+29297 Extra Length          0009 (9)\n+29299 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x29299: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+292C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+292C4   Length              0005 (5)\n+292C6   Flags               01 (1) 'Modification'\n+292C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+292CB PAYLOAD\n+\n+29BEF DATA DESCRIPTOR       08074B50 (134695760)\n+29BF3 CRC                   73F4B1AD (1945416109)\n+29BF7 Compressed Size       00000924 (2340)\n+29BFB Uncompressed Size     00000924 (2340)\n+\n+29BFF LOCAL HEADER #74      04034B50 (67324752)\n+29C03 Extract Zip Spec      14 (20) '2.0'\n+29C04 Extract OS            00 (0) 'MS-DOS'\n+29C05 General Purpose Flag  0000 (0)\n+29C07 Compression Method    0000 (0) 'Stored'\n+29C09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+29C0D CRC                   00000000 (0)\n+29C11 Compressed Size       00000000 (0)\n+29C15 Uncompressed Size     00000000 (0)\n+29C19 Filename Length       001B (27)\n+29C1B Extra Length          0009 (9)\n+29C1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x29C1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+29C38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+29C3A   Length              0005 (5)\n+29C3C   Flags               01 (1) 'Modification'\n+29C3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+29C41 LOCAL HEADER #75      04034B50 (67324752)\n+29C45 Extract Zip Spec      14 (20) '2.0'\n+29C46 Extract OS            00 (0) 'MS-DOS'\n+29C47 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+29C49 Compression Method    0000 (0) 'Stored'\n+29C4B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+29C4F CRC                   00000000 (0)\n+29C53 Compressed Size       00000000 (0)\n+29C57 Uncompressed Size     00000000 (0)\n+29C5B Filename Length       0049 (73)\n+29C5D Extra Length          0009 (9)\n+29C5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x29C5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+29CA8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+29CAA   Length              0005 (5)\n+29CAC   Flags               01 (1) 'Modification'\n+29CAD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+29CB1 PAYLOAD\n+\n+2A2CF DATA DESCRIPTOR       08074B50 (134695760)\n+2A2D3 CRC                   305262CA (810705610)\n+2A2D7 Compressed Size       0000061E (1566)\n+2A2DB Uncompressed Size     0000061E (1566)\n+\n+2A2DF LOCAL HEADER #76      04034B50 (67324752)\n+2A2E3 Extract Zip Spec      14 (20) '2.0'\n+2A2E4 Extract OS            00 (0) 'MS-DOS'\n+2A2E5 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2A2E7 Compression Method    0000 (0) 'Stored'\n+2A2E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2A2ED CRC                   00000000 (0)\n+2A2F1 Compressed Size       00000000 (0)\n+2A2F5 Uncompressed Size     00000000 (0)\n+2A2F9 Filename Length       0036 (54)\n+2A2FB Extra Length          0009 (9)\n+2A2FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2A2FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2A333 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2A335   Length              0005 (5)\n+2A337   Flags               01 (1) 'Modification'\n+2A338   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2A33C PAYLOAD\n+\n+2B6F1 DATA DESCRIPTOR       08074B50 (134695760)\n+2B6F5 CRC                   E8016802 (3892406274)\n+2B6F9 Compressed Size       000013B5 (5045)\n+2B6FD Uncompressed Size     000013B5 (5045)\n+\n+2B701 LOCAL HEADER #77      04034B50 (67324752)\n+2B705 Extract Zip Spec      14 (20) '2.0'\n+2B706 Extract OS            00 (0) 'MS-DOS'\n+2B707 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2B709 Compression Method    0000 (0) 'Stored'\n+2B70B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2B70F CRC                   00000000 (0)\n+2B713 Compressed Size       00000000 (0)\n+2B717 Uncompressed Size     00000000 (0)\n+2B71B Filename Length       0058 (88)\n+2B71D Extra Length          0009 (9)\n+2B71F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2B71F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2B777 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2B779   Length              0005 (5)\n+2B77B   Flags               01 (1) 'Modification'\n+2B77C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2B780 PAYLOAD\n+\n+2BED2 DATA DESCRIPTOR       08074B50 (134695760)\n+2BED6 CRC                   6885B64A (1753593418)\n+2BEDA Compressed Size       00000752 (1874)\n+2BEDE Uncompressed Size     00000752 (1874)\n+\n+2BEE2 LOCAL HEADER #78      04034B50 (67324752)\n+2BEE6 Extract Zip Spec      14 (20) '2.0'\n+2BEE7 Extract OS            00 (0) 'MS-DOS'\n+2BEE8 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2BEEA Compression Method    0000 (0) 'Stored'\n+2BEEC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BEF0 CRC                   00000000 (0)\n+2BEF4 Compressed Size       00000000 (0)\n+2BEF8 Uncompressed Size     00000000 (0)\n+2BEFC Filename Length       005B (91)\n+2BEFE Extra Length          0009 (9)\n+2BF00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BF00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BF5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BF5D   Length              0005 (5)\n+2BF5F   Flags               01 (1) 'Modification'\n+2BF60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2BF64 PAYLOAD\n+\n+2C7B3 DATA DESCRIPTOR       08074B50 (134695760)\n+2C7B7 CRC                   3C5A566B (1012553323)\n+2C7BB Compressed Size       0000084F (2127)\n+2C7BF Uncompressed Size     0000084F (2127)\n+\n+2C7C3 LOCAL HEADER #79      04034B50 (67324752)\n+2C7C7 Extract Zip Spec      14 (20) '2.0'\n+2C7C8 Extract OS            00 (0) 'MS-DOS'\n+2C7C9 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C7CB Compression Method    0000 (0) 'Stored'\n+2C7CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C7D1 CRC                   00000000 (0)\n+2C7D5 Compressed Size       00000000 (0)\n+2C7D9 Uncompressed Size     00000000 (0)\n+2C7DD Filename Length       003F (63)\n+2C7DF Extra Length          0009 (9)\n+2C7E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C7E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C820 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C822   Length              0005 (5)\n+2C824   Flags               01 (1) 'Modification'\n+2C825   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2C829 PAYLOAD\n+\n+2DF25 DATA DESCRIPTOR       08074B50 (134695760)\n+2DF29 CRC                   3A65F954 (979761492)\n+2DF2D Compressed Size       000016FC (5884)\n+2DF31 Uncompressed Size     000016FC (5884)\n+\n+2DF35 LOCAL HEADER #80      04034B50 (67324752)\n+2DF39 Extract Zip Spec      14 (20) '2.0'\n+2DF3A Extract OS            00 (0) 'MS-DOS'\n+2DF3B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2DF3D Compression Method    0000 (0) 'Stored'\n+2DF3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2DF43 CRC                   00000000 (0)\n+2DF47 Compressed Size       00000000 (0)\n+2DF4B Uncompressed Size     00000000 (0)\n+2DF4F Filename Length       003D (61)\n+2DF51 Extra Length          0009 (9)\n+2DF53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2DF53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2DF90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2DF92   Length              0005 (5)\n+2DF94   Flags               01 (1) 'Modification'\n+2DF95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2DF99 PAYLOAD\n+\n+2E9C7 DATA DESCRIPTOR       08074B50 (134695760)\n+2E9CB CRC                   66FAA47E (1727702142)\n+2E9CF Compressed Size       00000A2E (2606)\n+2E9D3 Uncompressed Size     00000A2E (2606)\n+\n+2E9D7 LOCAL HEADER #81      04034B50 (67324752)\n+2E9DB Extract Zip Spec      14 (20) '2.0'\n+2E9DC Extract OS            00 (0) 'MS-DOS'\n+2E9DD General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2E9DF Compression Method    0000 (0) 'Stored'\n+2E9E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2E9E5 CRC                   00000000 (0)\n+2E9E9 Compressed Size       00000000 (0)\n+2E9ED Uncompressed Size     00000000 (0)\n+2E9F1 Filename Length       005B (91)\n+2E9F3 Extra Length          0009 (9)\n+2E9F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2E9F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2EA50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2EA52   Length              0005 (5)\n+2EA54   Flags               01 (1) 'Modification'\n+2EA55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2EA59 PAYLOAD\n+\n+2F27B DATA DESCRIPTOR       08074B50 (134695760)\n+2F27F CRC                   1836791F (406223135)\n+2F283 Compressed Size       00000822 (2082)\n+2F287 Uncompressed Size     00000822 (2082)\n+\n+2F28B LOCAL HEADER #82      04034B50 (67324752)\n+2F28F Extract Zip Spec      14 (20) '2.0'\n+2F290 Extract OS            00 (0) 'MS-DOS'\n+2F291 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2F293 Compression Method    0000 (0) 'Stored'\n+2F295 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2F299 CRC                   00000000 (0)\n+2F29D Compressed Size       00000000 (0)\n+2F2A1 Uncompressed Size     00000000 (0)\n+2F2A5 Filename Length       0038 (56)\n+2F2A7 Extra Length          0009 (9)\n+2F2A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2F2A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2F2E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2F2E3   Length              0005 (5)\n+2F2E5   Flags               01 (1) 'Modification'\n+2F2E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2F2EA PAYLOAD\n+\n+2FAB1 DATA DESCRIPTOR       08074B50 (134695760)\n+2FAB5 CRC                   24E9C6CA (619300554)\n+2FAB9 Compressed Size       000007C7 (1991)\n+2FABD Uncompressed Size     000007C7 (1991)\n+\n+2FAC1 LOCAL HEADER #83      04034B50 (67324752)\n+2FAC5 Extract Zip Spec      14 (20) '2.0'\n+2FAC6 Extract OS            00 (0) 'MS-DOS'\n+2FAC7 General Purpose Flag  0000 (0)\n+2FAC9 Compression Method    0000 (0) 'Stored'\n+2FACB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2FACF CRC                   00000000 (0)\n+2FAD3 Compressed Size       00000000 (0)\n+2FAD7 Uncompressed Size     00000000 (0)\n+2FADB Filename Length       0020 (32)\n+2FADD Extra Length          0009 (9)\n+2FADF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2FADF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2FAFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2FB01   Length              0005 (5)\n+2FB03   Flags               01 (1) 'Modification'\n+2FB04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2FB08 LOCAL HEADER #84      04034B50 (67324752)\n+2FB0C Extract Zip Spec      14 (20) '2.0'\n+2FB0D Extract OS            00 (0) 'MS-DOS'\n+2FB0E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2FB10 Compression Method    0000 (0) 'Stored'\n+2FB12 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2FB16 CRC                   00000000 (0)\n+2FB1A Compressed Size       00000000 (0)\n+2FB1E Uncompressed Size     00000000 (0)\n+2FB22 Filename Length       0033 (51)\n+2FB24 Extra Length          0009 (9)\n+2FB26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2FB26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2FB59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2FB5B   Length              0005 (5)\n+2FB5D   Flags               01 (1) 'Modification'\n+2FB5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2FB62 PAYLOAD\n+\n+30644 DATA DESCRIPTOR       08074B50 (134695760)\n+30648 CRC                   528FA981 (1385146753)\n+3064C Compressed Size       00000AE2 (2786)\n+30650 Uncompressed Size     00000AE2 (2786)\n+\n+30654 LOCAL HEADER #85      04034B50 (67324752)\n+30658 Extract Zip Spec      14 (20) '2.0'\n+30659 Extract OS            00 (0) 'MS-DOS'\n+3065A General Purpose Flag  0000 (0)\n+3065C Compression Method    0000 (0) 'Stored'\n+3065E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30662 CRC                   00000000 (0)\n+30666 Compressed Size       00000000 (0)\n+3066A Uncompressed Size     00000000 (0)\n+3066E Filename Length       0020 (32)\n+30670 Extra Length          0009 (9)\n+30672 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30672: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30692 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30694   Length              0005 (5)\n+30696   Flags               01 (1) 'Modification'\n+30697   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3069B LOCAL HEADER #86      04034B50 (67324752)\n+3069F Extract Zip Spec      14 (20) '2.0'\n+306A0 Extract OS            00 (0) 'MS-DOS'\n+306A1 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+306A3 Compression Method    0000 (0) 'Stored'\n+306A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+306A9 CRC                   00000000 (0)\n+306AD Compressed Size       00000000 (0)\n+306B1 Uncompressed Size     00000000 (0)\n+306B5 Filename Length       0051 (81)\n+306B7 Extra Length          0009 (9)\n+306B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x306B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3070A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3070C   Length              0005 (5)\n+3070E   Flags               01 (1) 'Modification'\n+3070F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+30713 PAYLOAD\n+\n+30C53 DATA DESCRIPTOR       08074B50 (134695760)\n+30C57 CRC                   15D75F6D (366436205)\n+30C5B Compressed Size       00000540 (1344)\n+30C5F Uncompressed Size     00000540 (1344)\n+\n+30C63 LOCAL HEADER #87      04034B50 (67324752)\n+30C67 Extract Zip Spec      14 (20) '2.0'\n+30C68 Extract OS            00 (0) 'MS-DOS'\n+30C69 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30C6B Compression Method    0000 (0) 'Stored'\n+30C6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30C71 CRC                   00000000 (0)\n+30C75 Compressed Size       00000000 (0)\n+30C79 Uncompressed Size     00000000 (0)\n+30C7D Filename Length       004B (75)\n+30C7F Extra Length          0009 (9)\n+30C81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30C81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30CCC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30CCE   Length              0005 (5)\n+30CD0   Flags               01 (1) 'Modification'\n+30CD1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+30CD5 PAYLOAD\n+\n+31A07 DATA DESCRIPTOR       08074B50 (134695760)\n+31A0B CRC                   4661EC65 (1180822629)\n+31A0F Compressed Size       00000D32 (3378)\n+31A13 Uncompressed Size     00000D32 (3378)\n+\n+31A17 LOCAL HEADER #88      04034B50 (67324752)\n+31A1B Extract Zip Spec      14 (20) '2.0'\n+31A1C Extract OS            00 (0) 'MS-DOS'\n+31A1D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+31A1F Compression Method    0000 (0) 'Stored'\n+31A21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+31A25 CRC                   00000000 (0)\n+31A29 Compressed Size       00000000 (0)\n+31A2D Uncompressed Size     00000000 (0)\n+31A31 Filename Length       0038 (56)\n+31A33 Extra Length          0009 (9)\n+31A35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x31A35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+31A6D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+31A6F   Length              0005 (5)\n+31A71   Flags               01 (1) 'Modification'\n+31A72   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+31A76 PAYLOAD\n+\n+32A04 DATA DESCRIPTOR       08074B50 (134695760)\n+32A08 CRC                   A3928BCE (2744290254)\n+32A0C Compressed Size       00000F8E (3982)\n+32A10 Uncompressed Size     00000F8E (3982)\n+\n+32A14 LOCAL HEADER #89      04034B50 (67324752)\n+32A18 Extract Zip Spec      14 (20) '2.0'\n+32A19 Extract OS            00 (0) 'MS-DOS'\n+32A1A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+32A1C Compression Method    0000 (0) 'Stored'\n+32A1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+32A22 CRC                   00000000 (0)\n+32A26 Compressed Size       00000000 (0)\n+32A2A Uncompressed Size     00000000 (0)\n+32A2E Filename Length       0060 (96)\n+32A30 Extra Length          0009 (9)\n+32A32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x32A32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+32A92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+32A94   Length              0005 (5)\n+32A96   Flags               01 (1) 'Modification'\n+32A97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+32A9B PAYLOAD\n+\n+32DF1 DATA DESCRIPTOR       08074B50 (134695760)\n+32DF5 CRC                   6943170E (1766004494)\n+32DF9 Compressed Size       00000356 (854)\n+32DFD Uncompressed Size     00000356 (854)\n+\n+32E01 LOCAL HEADER #90      04034B50 (67324752)\n+32E05 Extract Zip Spec      14 (20) '2.0'\n+32E06 Extract OS            00 (0) 'MS-DOS'\n+32E07 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+32E09 Compression Method    0000 (0) 'Stored'\n+32E0B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+32E0F CRC                   00000000 (0)\n+32E13 Compressed Size       00000000 (0)\n+32E17 Uncompressed Size     00000000 (0)\n+32E1B Filename Length       003D (61)\n+32E1D Extra Length          0009 (9)\n+32E1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x32E1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+32E5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+32E5E   Length              0005 (5)\n+32E60   Flags               01 (1) 'Modification'\n+32E61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+32E65 PAYLOAD\n+\n+334F0 DATA DESCRIPTOR       08074B50 (134695760)\n+334F4 CRC                   B9E3821A (3118694938)\n+334F8 Compressed Size       0000068B (1675)\n+334FC Uncompressed Size     0000068B (1675)\n+\n+33500 LOCAL HEADER #91      04034B50 (67324752)\n+33504 Extract Zip Spec      14 (20) '2.0'\n+33505 Extract OS            00 (0) 'MS-DOS'\n+33506 General Purpose Flag  0000 (0)\n+33508 Compression Method    0000 (0) 'Stored'\n+3350A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3350E CRC                   00000000 (0)\n+33512 Compressed Size       00000000 (0)\n+33516 Uncompressed Size     00000000 (0)\n+3351A Filename Length       001C (28)\n+3351C Extra Length          0009 (9)\n+3351E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3351E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3353A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3353C   Length              0005 (5)\n+3353E   Flags               01 (1) 'Modification'\n+3353F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+33543 LOCAL HEADER #92      04034B50 (67324752)\n+33547 Extract Zip Spec      14 (20) '2.0'\n+33548 Extract OS            00 (0) 'MS-DOS'\n+33549 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3354B Compression Method    0000 (0) 'Stored'\n+3354D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+33551 CRC                   00000000 (0)\n+33555 Compressed Size       00000000 (0)\n+33559 Uncompressed Size     00000000 (0)\n+3355D Filename Length       0040 (64)\n+3355F Extra Length          0009 (9)\n+33561 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x33561: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+335A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+335A3   Length              0005 (5)\n+335A5   Flags               01 (1) 'Modification'\n+335A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+335AA PAYLOAD\n+\n+339BB DATA DESCRIPTOR       08074B50 (134695760)\n+339BF CRC                   1D0FCAE9 (487574249)\n+339C3 Compressed Size       00000411 (1041)\n+339C7 Uncompressed Size     00000411 (1041)\n+\n+339CB LOCAL HEADER #93      04034B50 (67324752)\n+339CF Extract Zip Spec      14 (20) '2.0'\n+339D0 Extract OS            00 (0) 'MS-DOS'\n+339D1 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+339D3 Compression Method    0000 (0) 'Stored'\n+339D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+339D9 CRC                   00000000 (0)\n+339DD Compressed Size       00000000 (0)\n+339E1 Uncompressed Size     00000000 (0)\n+339E5 Filename Length       0030 (48)\n+339E7 Extra Length          0009 (9)\n+339E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x339E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+33A19 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+33A1B   Length              0005 (5)\n+33A1D   Flags               01 (1) 'Modification'\n+33A1E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+33A22 PAYLOAD\n+\n+34AFF DATA DESCRIPTOR       08074B50 (134695760)\n+34B03 CRC                   B9B8CEE2 (3115896546)\n+34B07 Compressed Size       000010DD (4317)\n+34B0B Uncompressed Size     000010DD (4317)\n+\n+34B0F LOCAL HEADER #94      04034B50 (67324752)\n+34B13 Extract Zip Spec      14 (20) '2.0'\n+34B14 Extract OS            00 (0) 'MS-DOS'\n+34B15 General Purpose Flag  0000 (0)\n+34B17 Compression Method    0000 (0) 'Stored'\n+34B19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+34B1D CRC                   00000000 (0)\n+34B21 Compressed Size       00000000 (0)\n+34B25 Uncompressed Size     00000000 (0)\n+34B29 Filename Length       001C (28)\n+34B2B Extra Length          0009 (9)\n+34B2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x34B2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+34B49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+34B4B   Length              0005 (5)\n+34B4D   Flags               01 (1) 'Modification'\n+34B4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+34B52 LOCAL HEADER #95      04034B50 (67324752)\n+34B56 Extract Zip Spec      14 (20) '2.0'\n+34B57 Extract OS            00 (0) 'MS-DOS'\n+34B58 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+34B5A Compression Method    0000 (0) 'Stored'\n+34B5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+34B60 CRC                   00000000 (0)\n+34B64 Compressed Size       00000000 (0)\n+34B68 Uncompressed Size     00000000 (0)\n+34B6C Filename Length       0034 (52)\n+34B6E Extra Length          0009 (9)\n+34B70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x34B70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+34BA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+34BA6   Length              0005 (5)\n+34BA8   Flags               01 (1) 'Modification'\n+34BA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+34BAD PAYLOAD\n+\n+367CC DATA DESCRIPTOR       08074B50 (134695760)\n+367D0 CRC                   629F1B01 (1654594305)\n+367D4 Compressed Size       00001C1F (7199)\n+367D8 Uncompressed Size     00001C1F (7199)\n+\n+367DC LOCAL HEADER #96      04034B50 (67324752)\n+367E0 Extract Zip Spec      14 (20) '2.0'\n+367E1 Extract OS            00 (0) 'MS-DOS'\n+367E2 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+367E4 Compression Method    0000 (0) 'Stored'\n+367E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+367EA CRC                   00000000 (0)\n+367EE Compressed Size       00000000 (0)\n+367F2 Uncompressed Size     00000000 (0)\n+367F6 Filename Length       002C (44)\n+367F8 Extra Length          0009 (9)\n+367FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x367FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36826 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36828   Length              0005 (5)\n+3682A   Flags               01 (1) 'Modification'\n+3682B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3682F PAYLOAD\n+\n+376AE DATA DESCRIPTOR       08074B50 (134695760)\n+376B2 CRC                   CE6B5057 (3463139415)\n+376B6 Compressed Size       00000E7F (3711)\n+376BA Uncompressed Size     00000E7F (3711)\n+\n+376BE LOCAL HEADER #97      04034B50 (67324752)\n+376C2 Extract Zip Spec      14 (20) '2.0'\n+376C3 Extract OS            00 (0) 'MS-DOS'\n+376C4 General Purpose Flag  0000 (0)\n+376C6 Compression Method    0000 (0) 'Stored'\n+376C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+376CC CRC                   00000000 (0)\n+376D0 Compressed Size       00000000 (0)\n+376D4 Uncompressed Size     00000000 (0)\n+376D8 Filename Length       0027 (39)\n+376DA Extra Length          0009 (9)\n+376DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x376DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+37703 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+37705   Length              0005 (5)\n+37707   Flags               01 (1) 'Modification'\n+37708   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3770C LOCAL HEADER #98      04034B50 (67324752)\n+37710 Extract Zip Spec      14 (20) '2.0'\n+37711 Extract OS            00 (0) 'MS-DOS'\n+37712 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+37714 Compression Method    0000 (0) 'Stored'\n+37716 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3771A CRC                   00000000 (0)\n+3771E Compressed Size       00000000 (0)\n+37722 Uncompressed Size     00000000 (0)\n+37726 Filename Length       005C (92)\n+37728 Extra Length          0009 (9)\n+3772A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3772A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+37786 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+37788   Length              0005 (5)\n+3778A   Flags               01 (1) 'Modification'\n+3778B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3778F PAYLOAD\n+\n+37AAB DATA DESCRIPTOR       08074B50 (134695760)\n+37AAF CRC                   C2DA5AAE (3269089966)\n+37AB3 Compressed Size       0000031C (796)\n+37AB7 Uncompressed Size     0000031C (796)\n+\n+37ABB LOCAL HEADER #99      04034B50 (67324752)\n+37ABF Extract Zip Spec      14 (20) '2.0'\n+37AC0 Extract OS            00 (0) 'MS-DOS'\n+37AC1 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+37AC3 Compression Method    0000 (0) 'Stored'\n+37AC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+37AC9 CRC                   00000000 (0)\n+37ACD Compressed Size       00000000 (0)\n+37AD1 Uncompressed Size     00000000 (0)\n+37AD5 Filename Length       0058 (88)\n+37AD7 Extra Length          0009 (9)\n+37AD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x37AD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+37B31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+37B33   Length              0005 (5)\n+37B35   Flags               01 (1) 'Modification'\n+37B36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+37B3A PAYLOAD\n+\n+37E48 DATA DESCRIPTOR       08074B50 (134695760)\n+37E4C CRC                   F511A1A1 (4111573409)\n+37E50 Compressed Size       0000030E (782)\n+37E54 Uncompressed Size     0000030E (782)\n+\n+37E58 LOCAL HEADER #100     04034B50 (67324752)\n+37E5C Extract Zip Spec      14 (20) '2.0'\n+37E5D Extract OS            00 (0) 'MS-DOS'\n+37E5E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+37E60 Compression Method    0000 (0) 'Stored'\n+37E62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+37E66 CRC                   00000000 (0)\n+37E6A Compressed Size       00000000 (0)\n+37E6E Uncompressed Size     00000000 (0)\n+37E72 Filename Length       004F (79)\n+37E74 Extra Length          0009 (9)\n+37E76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x37E76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+37EC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+37EC7   Length              0005 (5)\n+37EC9   Flags               01 (1) 'Modification'\n+37ECA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+37ECE PAYLOAD\n+\n+38D19 DATA DESCRIPTOR       08074B50 (134695760)\n+38D1D CRC                   5CF570C5 (1559589061)\n+38D21 Compressed Size       00000E4B (3659)\n+38D25 Uncompressed Size     00000E4B (3659)\n+\n+38D29 LOCAL HEADER #101     04034B50 (67324752)\n+38D2D Extract Zip Spec      14 (20) '2.0'\n+38D2E Extract OS            00 (0) 'MS-DOS'\n+38D2F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+38D31 Compression Method    0000 (0) 'Stored'\n+38D33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+38D37 CRC                   00000000 (0)\n+38D3B Compressed Size       00000000 (0)\n+38D3F Uncompressed Size     00000000 (0)\n+38D43 Filename Length       0053 (83)\n+38D45 Extra Length          0009 (9)\n+38D47 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x38D47: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+38D9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+38D9C   Length              0005 (5)\n+38D9E   Flags               01 (1) 'Modification'\n+38D9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+38DA3 PAYLOAD\n+\n+39146 DATA DESCRIPTOR       08074B50 (134695760)\n+3914A CRC                   4D0E0F19 (1292767001)\n+3914E Compressed Size       000003A3 (931)\n+39152 Uncompressed Size     000003A3 (931)\n+\n+39156 LOCAL HEADER #102     04034B50 (67324752)\n+3915A Extract Zip Spec      14 (20) '2.0'\n+3915B Extract OS            00 (0) 'MS-DOS'\n+3915C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3915E Compression Method    0000 (0) 'Stored'\n+39160 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+39164 CRC                   00000000 (0)\n+39168 Compressed Size       00000000 (0)\n+3916C Uncompressed Size     00000000 (0)\n+39170 Filename Length       0059 (89)\n+39172 Extra Length          0009 (9)\n+39174 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x39174: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+391CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+391CF   Length              0005 (5)\n+391D1   Flags               01 (1) 'Modification'\n+391D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+391D6 PAYLOAD\n+\n+39817 DATA DESCRIPTOR       08074B50 (134695760)\n+3981B CRC                   C8A5CF53 (3366309715)\n+3981F Compressed Size       00000641 (1601)\n+39823 Uncompressed Size     00000641 (1601)\n+\n+39827 LOCAL HEADER #103     04034B50 (67324752)\n+3982B Extract Zip Spec      14 (20) '2.0'\n+3982C Extract OS            00 (0) 'MS-DOS'\n+3982D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3982F Compression Method    0000 (0) 'Stored'\n+39831 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+39835 CRC                   00000000 (0)\n+39839 Compressed Size       00000000 (0)\n+3983D Uncompressed Size     00000000 (0)\n+39841 Filename Length       0059 (89)\n+39843 Extra Length          0009 (9)\n+39845 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x39845: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3989E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+398A0   Length              0005 (5)\n+398A2   Flags               01 (1) 'Modification'\n+398A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+398A7 PAYLOAD\n+\n+39FCB DATA DESCRIPTOR       08074B50 (134695760)\n+39FCF CRC                   AFFC006A (2952527978)\n+39FD3 Compressed Size       00000724 (1828)\n+39FD7 Uncompressed Size     00000724 (1828)\n+\n+39FDB LOCAL HEADER #104     04034B50 (67324752)\n+39FDF Extract Zip Spec      14 (20) '2.0'\n+39FE0 Extract OS            00 (0) 'MS-DOS'\n+39FE1 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+39FE3 Compression Method    0000 (0) 'Stored'\n+39FE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+39FE9 CRC                   00000000 (0)\n+39FED Compressed Size       00000000 (0)\n+39FF1 Uncompressed Size     00000000 (0)\n+39FF5 Filename Length       004A (74)\n+39FF7 Extra Length          0009 (9)\n+39FF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x39FF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3A043 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3A045   Length              0005 (5)\n+3A047   Flags               01 (1) 'Modification'\n+3A048   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3A04C PAYLOAD\n+\n+3AEE6 DATA DESCRIPTOR       08074B50 (134695760)\n+3AEEA CRC                   D2854DE7 (3531951591)\n+3AEEE Compressed Size       00000E9A (3738)\n+3AEF2 Uncompressed Size     00000E9A (3738)\n+\n+3AEF6 LOCAL HEADER #105     04034B50 (67324752)\n+3AEFA Extract Zip Spec      14 (20) '2.0'\n+3AEFB Extract OS            00 (0) 'MS-DOS'\n+3AEFC General Purpose Flag  0000 (0)\n+3AEFE Compression Method    0000 (0) 'Stored'\n+3AF00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3AF04 CRC                   00000000 (0)\n+3AF08 Compressed Size       00000000 (0)\n+3AF0C Uncompressed Size     00000000 (0)\n+3AF10 Filename Length       001F (31)\n+3AF12 Extra Length          0009 (9)\n+3AF14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3AF14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3AF33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3AF35   Length              0005 (5)\n+3AF37   Flags               01 (1) 'Modification'\n+3AF38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3AF3C LOCAL HEADER #106     04034B50 (67324752)\n+3AF40 Extract Zip Spec      14 (20) '2.0'\n+3AF41 Extract OS            00 (0) 'MS-DOS'\n+3AF42 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3AF44 Compression Method    0000 (0) 'Stored'\n+3AF46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3AF4A CRC                   00000000 (0)\n+3AF4E Compressed Size       00000000 (0)\n+3AF52 Uncompressed Size     00000000 (0)\n+3AF56 Filename Length       0048 (72)\n+3AF58 Extra Length          0009 (9)\n+3AF5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3AF5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3AFA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3AFA4   Length              0005 (5)\n+3AFA6   Flags               01 (1) 'Modification'\n+3AFA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3AFAB PAYLOAD\n+\n+3B323 DATA DESCRIPTOR       08074B50 (134695760)\n+3B327 CRC                   E773172B (3883079467)\n+3B32B Compressed Size       00000378 (888)\n+3B32F Uncompressed Size     00000378 (888)\n+\n+3B333 LOCAL HEADER #107     04034B50 (67324752)\n+3B337 Extract Zip Spec      14 (20) '2.0'\n+3B338 Extract OS            00 (0) 'MS-DOS'\n+3B339 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3B33B Compression Method    0000 (0) 'Stored'\n+3B33D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B341 CRC                   00000000 (0)\n+3B345 Compressed Size       00000000 (0)\n+3B349 Uncompressed Size     00000000 (0)\n+3B34D Filename Length       0036 (54)\n+3B34F Extra Length          0009 (9)\n+3B351 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B351: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B387 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B389   Length              0005 (5)\n+3B38B   Flags               01 (1) 'Modification'\n+3B38C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3B390 PAYLOAD\n+\n+3B8BC DATA DESCRIPTOR       08074B50 (134695760)\n+3B8C0 CRC                   C301E408 (3271681032)\n+3B8C4 Compressed Size       0000052C (1324)\n+3B8C8 Uncompressed Size     0000052C (1324)\n+\n+3B8CC LOCAL HEADER #108     04034B50 (67324752)\n+3B8D0 Extract Zip Spec      14 (20) '2.0'\n+3B8D1 Extract OS            00 (0) 'MS-DOS'\n+3B8D2 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3B8D4 Compression Method    0000 (0) 'Stored'\n+3B8D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B8DA CRC                   00000000 (0)\n+3B8DE Compressed Size       00000000 (0)\n+3B8E2 Uncompressed Size     00000000 (0)\n+3B8E6 Filename Length       004E (78)\n+3B8E8 Extra Length          0009 (9)\n+3B8EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B8EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B938 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B93A   Length              0005 (5)\n+3B93C   Flags               01 (1) 'Modification'\n+3B93D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3B941 PAYLOAD\n+\n+3BF3A DATA DESCRIPTOR       08074B50 (134695760)\n+3BF3E CRC                   9791011C (2542862620)\n+3BF42 Compressed Size       000005F9 (1529)\n+3BF46 Uncompressed Size     000005F9 (1529)\n+\n+3BF4A LOCAL HEADER #109     04034B50 (67324752)\n+3BF4E Extract Zip Spec      14 (20) '2.0'\n+3BF4F Extract OS            00 (0) 'MS-DOS'\n+3BF50 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3BF52 Compression Method    0000 (0) 'Stored'\n+3BF54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3BF58 CRC                   00000000 (0)\n+3BF5C Compressed Size       00000000 (0)\n+3BF60 Uncompressed Size     00000000 (0)\n+3BF64 Filename Length       005A (90)\n+3BF66 Extra Length          0009 (9)\n+3BF68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3BF68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3BFC2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3BFC4   Length              0005 (5)\n+3BFC6   Flags               01 (1) 'Modification'\n+3BFC7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3BFCB PAYLOAD\n+\n+3C4DA DATA DESCRIPTOR       08074B50 (134695760)\n+3C4DE CRC                   9CD13806 (2630957062)\n+3C4E2 Compressed Size       0000050F (1295)\n+3C4E6 Uncompressed Size     0000050F (1295)\n+\n+3C4EA LOCAL HEADER #110     04034B50 (67324752)\n+3C4EE Extract Zip Spec      14 (20) '2.0'\n+3C4EF Extract OS            00 (0) 'MS-DOS'\n+3C4F0 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3C4F2 Compression Method    0000 (0) 'Stored'\n+3C4F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C4F8 CRC                   00000000 (0)\n+3C4FC Compressed Size       00000000 (0)\n+3C500 Uncompressed Size     00000000 (0)\n+3C504 Filename Length       003F (63)\n+3C506 Extra Length          0009 (9)\n+3C508 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C508: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C547 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C549   Length              0005 (5)\n+3C54B   Flags               01 (1) 'Modification'\n+3C54C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C550 PAYLOAD\n+\n+3CC55 DATA DESCRIPTOR       08074B50 (134695760)\n+3CC59 CRC                   D5104923 (3574614307)\n+3CC5D Compressed Size       00000705 (1797)\n+3CC61 Uncompressed Size     00000705 (1797)\n+\n+3CC65 LOCAL HEADER #111     04034B50 (67324752)\n+3CC69 Extract Zip Spec      14 (20) '2.0'\n+3CC6A Extract OS            00 (0) 'MS-DOS'\n+3CC6B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3CC6D Compression Method    0000 (0) 'Stored'\n+3CC6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3CC73 CRC                   00000000 (0)\n+3CC77 Compressed Size       00000000 (0)\n+3CC7B Uncompressed Size     00000000 (0)\n+3CC7F Filename Length       005F (95)\n+3CC81 Extra Length          0009 (9)\n+3CC83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3CC83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3CCE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3CCE4   Length              0005 (5)\n+3CCE6   Flags               01 (1) 'Modification'\n+3CCE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3CCEB PAYLOAD\n+\n+3D03D DATA DESCRIPTOR       08074B50 (134695760)\n+3D041 CRC                   D020F6E1 (3491821281)\n+3D045 Compressed Size       00000352 (850)\n+3D049 Uncompressed Size     00000352 (850)\n+\n+3D04D LOCAL HEADER #112     04034B50 (67324752)\n+3D051 Extract Zip Spec      14 (20) '2.0'\n+3D052 Extract OS            00 (0) 'MS-DOS'\n+3D053 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3D055 Compression Method    0000 (0) 'Stored'\n+3D057 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D05B CRC                   00000000 (0)\n+3D05F Compressed Size       00000000 (0)\n+3D063 Uncompressed Size     00000000 (0)\n+3D067 Filename Length       003C (60)\n+3D069 Extra Length          0009 (9)\n+3D06B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D06B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D0A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D0A9   Length              0005 (5)\n+3D0AB   Flags               01 (1) 'Modification'\n+3D0AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D0B0 PAYLOAD\n+\n+3D658 DATA DESCRIPTOR       08074B50 (134695760)\n+3D65C CRC                   622C2643 (1647060547)\n+3D660 Compressed Size       000005A8 (1448)\n+3D664 Uncompressed Size     000005A8 (1448)\n+\n+3D668 LOCAL HEADER #113     04034B50 (67324752)\n+3D66C Extract Zip Spec      14 (20) '2.0'\n+3D66D Extract OS            00 (0) 'MS-DOS'\n+3D66E General Purpose Flag  0000 (0)\n+3D670 Compression Method    0000 (0) 'Stored'\n+3D672 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D676 CRC                   00000000 (0)\n+3D67A Compressed Size       00000000 (0)\n+3D67E Uncompressed Size     00000000 (0)\n+3D682 Filename Length       0021 (33)\n+3D684 Extra Length          0009 (9)\n+3D686 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D686: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D6A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D6A9   Length              0005 (5)\n+3D6AB   Flags               01 (1) 'Modification'\n+3D6AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3D6B0 LOCAL HEADER #114     04034B50 (67324752)\n+3D6B4 Extract Zip Spec      14 (20) '2.0'\n+3D6B5 Extract OS            00 (0) 'MS-DOS'\n+3D6B6 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3D6B8 Compression Method    0000 (0) 'Stored'\n+3D6BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D6BE CRC                   00000000 (0)\n+3D6C2 Compressed Size       00000000 (0)\n+3D6C6 Uncompressed Size     00000000 (0)\n+3D6CA Filename Length       004E (78)\n+3D6CC Extra Length          0009 (9)\n+3D6CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D6CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D71C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D71E   Length              0005 (5)\n+3D720   Flags               01 (1) 'Modification'\n+3D721   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D725 PAYLOAD\n+\n+3DDC9 DATA DESCRIPTOR       08074B50 (134695760)\n+3DDCD CRC                   050EDC10 (84859920)\n+3DDD1 Compressed Size       000006A4 (1700)\n+3DDD5 Uncompressed Size     000006A4 (1700)\n+\n+3DDD9 LOCAL HEADER #115     04034B50 (67324752)\n+3DDDD Extract Zip Spec      14 (20) '2.0'\n+3DDDE Extract OS            00 (0) 'MS-DOS'\n+3DDDF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3DDE1 Compression Method    0000 (0) 'Stored'\n+3DDE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3DDE7 CRC                   00000000 (0)\n+3DDEB Compressed Size       00000000 (0)\n+3DDEF Uncompressed Size     00000000 (0)\n+3DDF3 Filename Length       003A (58)\n+3DDF5 Extra Length          0009 (9)\n+3DDF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3DDF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3DE31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3DE33   Length              0005 (5)\n+3DE35   Flags               01 (1) 'Modification'\n+3DE36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3DE3A PAYLOAD\n+\n+3E836 DATA DESCRIPTOR       08074B50 (134695760)\n+3E83A CRC                   ED6F5732 (3983497010)\n+3E83E Compressed Size       000009FC (2556)\n+3E842 Uncompressed Size     000009FC (2556)\n+\n+3E846 LOCAL HEADER #116     04034B50 (67324752)\n+3E84A Extract Zip Spec      14 (20) '2.0'\n+3E84B Extract OS            00 (0) 'MS-DOS'\n+3E84C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3E84E Compression Method    0000 (0) 'Stored'\n+3E850 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E854 CRC                   00000000 (0)\n+3E858 Compressed Size       00000000 (0)\n+3E85C Uncompressed Size     00000000 (0)\n+3E860 Filename Length       0035 (53)\n+3E862 Extra Length          0009 (9)\n+3E864 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E864: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E899 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E89B   Length              0005 (5)\n+3E89D   Flags               01 (1) 'Modification'\n+3E89E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E8A2 PAYLOAD\n+\n+3F2FB DATA DESCRIPTOR       08074B50 (134695760)\n+3F2FF CRC                   88B5410C (2293580044)\n+3F303 Compressed Size       00000A59 (2649)\n+3F307 Uncompressed Size     00000A59 (2649)\n+\n+3F30B LOCAL HEADER #117     04034B50 (67324752)\n+3F30F Extract Zip Spec      14 (20) '2.0'\n+3F310 Extract OS            00 (0) 'MS-DOS'\n+3F311 General Purpose Flag  0000 (0)\n+3F313 Compression Method    0000 (0) 'Stored'\n+3F315 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3F319 CRC                   00000000 (0)\n+3F31D Compressed Size       00000000 (0)\n+3F321 Uncompressed Size     00000000 (0)\n+3F325 Filename Length       001D (29)\n+3F327 Extra Length          0009 (9)\n+3F329 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F329: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3F346 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3F348   Length              0005 (5)\n+3F34A   Flags               01 (1) 'Modification'\n+3F34B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3F34F LOCAL HEADER #118     04034B50 (67324752)\n+3F353 Extract Zip Spec      14 (20) '2.0'\n+3F354 Extract OS            00 (0) 'MS-DOS'\n+3F355 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3F357 Compression Method    0000 (0) 'Stored'\n+3F359 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3F35D CRC                   00000000 (0)\n+3F361 Compressed Size       00000000 (0)\n+3F365 Uncompressed Size     00000000 (0)\n+3F369 Filename Length       002F (47)\n+3F36B Extra Length          0009 (9)\n+3F36D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F36D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3F39C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3F39E   Length              0005 (5)\n+3F3A0   Flags               01 (1) 'Modification'\n+3F3A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3F3A5 PAYLOAD\n+\n+403AE DATA DESCRIPTOR       08074B50 (134695760)\n+403B2 CRC                   174CA276 (390898294)\n+403B6 Compressed Size       00001009 (4105)\n+403BA Uncompressed Size     00001009 (4105)\n+\n+403BE LOCAL HEADER #119     04034B50 (67324752)\n+403C2 Extract Zip Spec      14 (20) '2.0'\n+403C3 Extract OS            00 (0) 'MS-DOS'\n+403C4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+403C6 Compression Method    0000 (0) 'Stored'\n+403C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+403CC CRC                   00000000 (0)\n+403D0 Compressed Size       00000000 (0)\n+403D4 Uncompressed Size     00000000 (0)\n+403D8 Filename Length       0031 (49)\n+403DA Extra Length          0009 (9)\n+403DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x403DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4040D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4040F   Length              0005 (5)\n+40411   Flags               01 (1) 'Modification'\n+40412   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+40416 PAYLOAD\n+\n+41059 DATA DESCRIPTOR       08074B50 (134695760)\n+4105D CRC                   94B09EEF (2494602991)\n+41061 Compressed Size       00000C43 (3139)\n+41065 Uncompressed Size     00000C43 (3139)\n+\n+41069 LOCAL HEADER #120     04034B50 (67324752)\n+4106D Extract Zip Spec      14 (20) '2.0'\n+4106E Extract OS            00 (0) 'MS-DOS'\n+4106F General Purpose Flag  0000 (0)\n+41071 Compression Method    0000 (0) 'Stored'\n+41073 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+41077 CRC                   00000000 (0)\n+4107B Compressed Size       00000000 (0)\n+4107F Uncompressed Size     00000000 (0)\n+41083 Filename Length       001E (30)\n+41085 Extra Length          0009 (9)\n+41087 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41087: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+410A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+410A7   Length              0005 (5)\n+410A9   Flags               01 (1) 'Modification'\n+410AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+410AE LOCAL HEADER #121     04034B50 (67324752)\n+410B2 Extract Zip Spec      14 (20) '2.0'\n+410B3 Extract OS            00 (0) 'MS-DOS'\n+410B4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+410B6 Compression Method    0000 (0) 'Stored'\n+410B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+410BC CRC                   00000000 (0)\n+410C0 Compressed Size       00000000 (0)\n+410C4 Uncompressed Size     00000000 (0)\n+410C8 Filename Length       0045 (69)\n+410CA Extra Length          0009 (9)\n+410CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x410CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+41111 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+41113   Length              0005 (5)\n+41115   Flags               01 (1) 'Modification'\n+41116   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4111A PAYLOAD\n+\n+4164D DATA DESCRIPTOR       08074B50 (134695760)\n+41651 CRC                   6122871F (1629652767)\n+41655 Compressed Size       00000533 (1331)\n+41659 Uncompressed Size     00000533 (1331)\n+\n+4165D LOCAL HEADER #122     04034B50 (67324752)\n+41661 Extract Zip Spec      14 (20) '2.0'\n+41662 Extract OS            00 (0) 'MS-DOS'\n+41663 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+41665 Compression Method    0000 (0) 'Stored'\n+41667 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4166B CRC                   00000000 (0)\n+4166F Compressed Size       00000000 (0)\n+41673 Uncompressed Size     00000000 (0)\n+41677 Filename Length       0034 (52)\n+41679 Extra Length          0009 (9)\n+4167B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4167B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+416AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+416B1   Length              0005 (5)\n+416B3   Flags               01 (1) 'Modification'\n+416B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+416B8 PAYLOAD\n+\n+41E82 DATA DESCRIPTOR       08074B50 (134695760)\n+41E86 CRC                   282A38DD (673855709)\n+41E8A Compressed Size       000007CA (1994)\n+41E8E Uncompressed Size     000007CA (1994)\n+\n+41E92 LOCAL HEADER #123     04034B50 (67324752)\n+41E96 Extract Zip Spec      14 (20) '2.0'\n+41E97 Extract OS            00 (0) 'MS-DOS'\n+41E98 General Purpose Flag  0000 (0)\n+41E9A Compression Method    0000 (0) 'Stored'\n+41E9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+41EA0 CRC                   00000000 (0)\n+41EA4 Compressed Size       00000000 (0)\n+41EA8 Uncompressed Size     00000000 (0)\n+41EAC Filename Length       0014 (20)\n+41EAE Extra Length          0009 (9)\n+41EB0 Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41EB0: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+41EC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+41EC6   Length              0005 (5)\n+41EC8   Flags               01 (1) 'Modification'\n+41EC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+41ECD LOCAL HEADER #124     04034B50 (67324752)\n+41ED1 Extract Zip Spec      14 (20) '2.0'\n+41ED2 Extract OS            00 (0) 'MS-DOS'\n+41ED3 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+41ED5 Compression Method    0000 (0) 'Stored'\n+41ED7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+41EDB CRC                   00000000 (0)\n+41EDF Compressed Size       00000000 (0)\n+41EE3 Uncompressed Size     00000000 (0)\n+41EE7 Filename Length       004D (77)\n+41EE9 Extra Length          0009 (9)\n+41EEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41EEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+41F38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+41F3A   Length              0005 (5)\n+41F3C   Flags               01 (1) 'Modification'\n+41F3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+41F41 PAYLOAD\n+\n+427EB DATA DESCRIPTOR       08074B50 (134695760)\n+427EF CRC                   FF2E8B5A (4281240410)\n+427F3 Compressed Size       000008AA (2218)\n+427F7 Uncompressed Size     000008AA (2218)\n+\n+427FB LOCAL HEADER #125     04034B50 (67324752)\n+427FF Extract Zip Spec      14 (20) '2.0'\n+42800 Extract OS            00 (0) 'MS-DOS'\n+42801 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+42803 Compression Method    0000 (0) 'Stored'\n+42805 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+42809 CRC                   00000000 (0)\n+4280D Compressed Size       00000000 (0)\n+42811 Uncompressed Size     00000000 (0)\n+42815 Filename Length       004B (75)\n+42817 Extra Length          0009 (9)\n+42819 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42819: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42864 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42866   Length              0005 (5)\n+42868   Flags               01 (1) 'Modification'\n+42869   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4286D PAYLOAD\n+\n+4333D DATA DESCRIPTOR       08074B50 (134695760)\n+43341 CRC                   F19E88D6 (4053698774)\n+43345 Compressed Size       00000AD0 (2768)\n+43349 Uncompressed Size     00000AD0 (2768)\n+\n+4334D LOCAL HEADER #126     04034B50 (67324752)\n+43351 Extract Zip Spec      14 (20) '2.0'\n+43352 Extract OS            00 (0) 'MS-DOS'\n+43353 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+43355 Compression Method    0000 (0) 'Stored'\n+43357 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4335B CRC                   00000000 (0)\n+4335F Compressed Size       00000000 (0)\n+43363 Uncompressed Size     00000000 (0)\n+43367 Filename Length       004C (76)\n+43369 Extra Length          0009 (9)\n+4336B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4336B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+433B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+433B9   Length              0005 (5)\n+433BB   Flags               01 (1) 'Modification'\n+433BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+433C0 PAYLOAD\n+\n+4384C DATA DESCRIPTOR       08074B50 (134695760)\n+43850 CRC                   194A0EFC (424283900)\n+43854 Compressed Size       0000048C (1164)\n+43858 Uncompressed Size     0000048C (1164)\n+\n+4385C LOCAL HEADER #127     04034B50 (67324752)\n+43860 Extract Zip Spec      14 (20) '2.0'\n+43861 Extract OS            00 (0) 'MS-DOS'\n+43862 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+43864 Compression Method    0000 (0) 'Stored'\n+43866 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4386A CRC                   00000000 (0)\n+4386E Compressed Size       00000000 (0)\n+43872 Uncompressed Size     00000000 (0)\n+43876 Filename Length       004C (76)\n+43878 Extra Length          0009 (9)\n+4387A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4387A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+438C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+438C8   Length              0005 (5)\n+438CA   Flags               01 (1) 'Modification'\n+438CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+438CF PAYLOAD\n+\n+43D57 DATA DESCRIPTOR       08074B50 (134695760)\n+43D5B CRC                   38071647 (939988551)\n+43D5F Compressed Size       00000488 (1160)\n+43D63 Uncompressed Size     00000488 (1160)\n+\n+43D67 LOCAL HEADER #128     04034B50 (67324752)\n+43D6B Extract Zip Spec      14 (20) '2.0'\n+43D6C Extract OS            00 (0) 'MS-DOS'\n+43D6D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+43D6F Compression Method    0000 (0) 'Stored'\n+43D71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+43D75 CRC                   00000000 (0)\n+43D79 Compressed Size       00000000 (0)\n+43D7D Uncompressed Size     00000000 (0)\n+43D81 Filename Length       0037 (55)\n+43D83 Extra Length          0009 (9)\n+43D85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43D85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+43DBC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+43DBE   Length              0005 (5)\n+43DC0   Flags               01 (1) 'Modification'\n+43DC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+43DC5 PAYLOAD\n+\n+45AE8 DATA DESCRIPTOR       08074B50 (134695760)\n+45AEC CRC                   B6D3D669 (3067336297)\n+45AF0 Compressed Size       00001D23 (7459)\n+45AF4 Uncompressed Size     00001D23 (7459)\n+\n+45AF8 LOCAL HEADER #129     04034B50 (67324752)\n+45AFC Extract Zip Spec      14 (20) '2.0'\n+45AFD Extract OS            00 (0) 'MS-DOS'\n+45AFE General Purpose Flag  0000 (0)\n+45B00 Compression Method    0000 (0) 'Stored'\n+45B02 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+45B06 CRC                   00000000 (0)\n+45B0A Compressed Size       00000000 (0)\n+45B0E Uncompressed Size     00000000 (0)\n+45B12 Filename Length       001C (28)\n+45B14 Extra Length          0009 (9)\n+45B16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45B16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+45B32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+45B34   Length              0005 (5)\n+45B36   Flags               01 (1) 'Modification'\n+45B37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+45B3B LOCAL HEADER #130     04034B50 (67324752)\n+45B3F Extract Zip Spec      14 (20) '2.0'\n+45B40 Extract OS            00 (0) 'MS-DOS'\n+45B41 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+45B43 Compression Method    0000 (0) 'Stored'\n+45B45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+45B49 CRC                   00000000 (0)\n+45B4D Compressed Size       00000000 (0)\n+45B51 Uncompressed Size     00000000 (0)\n+45B55 Filename Length       002D (45)\n+45B57 Extra Length          0009 (9)\n+45B59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45B59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+45B86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+45B88   Length              0005 (5)\n+45B8A   Flags               01 (1) 'Modification'\n+45B8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+45B8F PAYLOAD\n+\n+4645B DATA DESCRIPTOR       08074B50 (134695760)\n+4645F CRC                   85F37191 (2247324049)\n+46463 Compressed Size       000008CC (2252)\n+46467 Uncompressed Size     000008CC (2252)\n+\n+4646B LOCAL HEADER #131     04034B50 (67324752)\n+4646F Extract Zip Spec      14 (20) '2.0'\n+46470 Extract OS            00 (0) 'MS-DOS'\n+46471 General Purpose Flag  0000 (0)\n+46473 Compression Method    0000 (0) 'Stored'\n+46475 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46479 CRC                   00000000 (0)\n+4647D Compressed Size       00000000 (0)\n+46481 Uncompressed Size     00000000 (0)\n+46485 Filename Length       0027 (39)\n+46487 Extra Length          0009 (9)\n+46489 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46489: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+464B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+464B2   Length              0005 (5)\n+464B4   Flags               01 (1) 'Modification'\n+464B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+464B9 LOCAL HEADER #132     04034B50 (67324752)\n+464BD Extract Zip Spec      14 (20) '2.0'\n+464BE Extract OS            00 (0) 'MS-DOS'\n+464BF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+464C1 Compression Method    0000 (0) 'Stored'\n+464C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+464C7 CRC                   00000000 (0)\n+464CB Compressed Size       00000000 (0)\n+464CF Uncompressed Size     00000000 (0)\n+464D3 Filename Length       0049 (73)\n+464D5 Extra Length          0009 (9)\n+464D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x464D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46520 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46522   Length              0005 (5)\n+46524   Flags               01 (1) 'Modification'\n+46525   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46529 PAYLOAD\n+\n+4778E DATA DESCRIPTOR       08074B50 (134695760)\n+47792 CRC                   420B2988 (1108027784)\n+47796 Compressed Size       00001265 (4709)\n+4779A Uncompressed Size     00001265 (4709)\n+\n+4779E LOCAL HEADER #133     04034B50 (67324752)\n+477A2 Extract Zip Spec      14 (20) '2.0'\n+477A3 Extract OS            00 (0) 'MS-DOS'\n+477A4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+477A6 Compression Method    0000 (0) 'Stored'\n+477A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+477AC CRC                   00000000 (0)\n+477B0 Compressed Size       00000000 (0)\n+477B4 Uncompressed Size     00000000 (0)\n+477B8 Filename Length       004B (75)\n+477BA Extra Length          0009 (9)\n+477BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x477BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+47807 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+47809   Length              0005 (5)\n+4780B   Flags               01 (1) 'Modification'\n+4780C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+47810 PAYLOAD\n+\n+49E5B DATA DESCRIPTOR       08074B50 (134695760)\n+49E5F CRC                   09B0AEF3 (162574067)\n+49E63 Compressed Size       0000264B (9803)\n+49E67 Uncompressed Size     0000264B (9803)\n+\n+49E6B LOCAL HEADER #134     04034B50 (67324752)\n+49E6F Extract Zip Spec      14 (20) '2.0'\n+49E70 Extract OS            00 (0) 'MS-DOS'\n+49E71 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+49E73 Compression Method    0000 (0) 'Stored'\n+49E75 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+49E79 CRC                   00000000 (0)\n+49E7D Compressed Size       00000000 (0)\n+49E81 Uncompressed Size     00000000 (0)\n+49E85 Filename Length       0044 (68)\n+49E87 Extra Length          0009 (9)\n+49E89 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x49E89: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+49ECD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+49ECF   Length              0005 (5)\n+49ED1   Flags               01 (1) 'Modification'\n+49ED2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+49ED6 PAYLOAD\n+\n+4AE88 DATA DESCRIPTOR       08074B50 (134695760)\n+4AE8C CRC                   42ED27DC (1122838492)\n+4AE90 Compressed Size       00000FB2 (4018)\n+4AE94 Uncompressed Size     00000FB2 (4018)\n+\n+4AE98 LOCAL HEADER #135     04034B50 (67324752)\n+4AE9C Extract Zip Spec      14 (20) '2.0'\n+4AE9D Extract OS            00 (0) 'MS-DOS'\n+4AE9E General Purpose Flag  0000 (0)\n+4AEA0 Compression Method    0000 (0) 'Stored'\n+4AEA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4AEA6 CRC                   00000000 (0)\n+4AEAA Compressed Size       00000000 (0)\n+4AEAE Uncompressed Size     00000000 (0)\n+4AEB2 Filename Length       0025 (37)\n+4AEB4 Extra Length          0009 (9)\n+4AEB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4AEB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4AEDB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4AEDD   Length              0005 (5)\n+4AEDF   Flags               01 (1) 'Modification'\n+4AEE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4AEE4 LOCAL HEADER #136     04034B50 (67324752)\n+4AEE8 Extract Zip Spec      14 (20) '2.0'\n+4AEE9 Extract OS            00 (0) 'MS-DOS'\n+4AEEA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+4AEEC Compression Method    0000 (0) 'Stored'\n+4AEEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4AEF2 CRC                   00000000 (0)\n+4AEF6 Compressed Size       00000000 (0)\n+4AEFA Uncompressed Size     00000000 (0)\n+4AEFE Filename Length       0045 (69)\n+4AF00 Extra Length          0009 (9)\n+4AF02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4AF02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4AF47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4AF49   Length              0005 (5)\n+4AF4B   Flags               01 (1) 'Modification'\n+4AF4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4AF50 PAYLOAD\n+\n+4D01B DATA DESCRIPTOR       08074B50 (134695760)\n+4D01F CRC                   0EC4C090 (247775376)\n+4D023 Compressed Size       000020CB (8395)\n+4D027 Uncompressed Size     000020CB (8395)\n+\n+4D02B LOCAL HEADER #137     04034B50 (67324752)\n+4D02F Extract Zip Spec      14 (20) '2.0'\n+4D030 Extract OS            00 (0) 'MS-DOS'\n+4D031 General Purpose Flag  0000 (0)\n+4D033 Compression Method    0000 (0) 'Stored'\n+4D035 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4D039 CRC                   00000000 (0)\n+4D03D Compressed Size       00000000 (0)\n+4D041 Uncompressed Size     00000000 (0)\n+4D045 Filename Length       0026 (38)\n+4D047 Extra Length          0009 (9)\n+4D049 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4D049: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4D06F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4D071   Length              0005 (5)\n+4D073   Flags               01 (1) 'Modification'\n+4D074   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4D078 LOCAL HEADER #138     04034B50 (67324752)\n+4D07C Extract Zip Spec      14 (20) '2.0'\n+4D07D Extract OS            00 (0) 'MS-DOS'\n+4D07E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+4D080 Compression Method    0000 (0) 'Stored'\n+4D082 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4D086 CRC                   00000000 (0)\n+4D08A Compressed Size       00000000 (0)\n+4D08E Uncompressed Size     00000000 (0)\n+4D092 Filename Length       004E (78)\n+4D094 Extra Length          0009 (9)\n+4D096 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4D096: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4D0E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4D0E6   Length              0005 (5)\n+4D0E8   Flags               01 (1) 'Modification'\n+4D0E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4D0ED PAYLOAD\n+\n+4F0B5 DATA DESCRIPTOR       08074B50 (134695760)\n+4F0B9 CRC                   0D328151 (221413713)\n+4F0BD Compressed Size       00001FC8 (8136)\n+4F0C1 Uncompressed Size     00001FC8 (8136)\n+\n+4F0C5 LOCAL HEADER #139     04034B50 (67324752)\n+4F0C9 Extract Zip Spec      14 (20) '2.0'\n+4F0CA Extract OS            00 (0) 'MS-DOS'\n+4F0CB General Purpose Flag  0000 (0)\n+4F0CD Compression Method    0000 (0) 'Stored'\n+4F0CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4F0D3 CRC                   00000000 (0)\n+4F0D7 Compressed Size       00000000 (0)\n+4F0DB Uncompressed Size     00000000 (0)\n+4F0DF Filename Length       001A (26)\n+4F0E1 Extra Length          0009 (9)\n+4F0E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F0E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4F0FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4F0FF   Length              0005 (5)\n+4F101   Flags               01 (1) 'Modification'\n+4F102   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4F106 LOCAL HEADER #140     04034B50 (67324752)\n+4F10A Extract Zip Spec      14 (20) '2.0'\n+4F10B Extract OS            00 (0) 'MS-DOS'\n+4F10C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+4F10E Compression Method    0000 (0) 'Stored'\n+4F110 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4F114 CRC                   00000000 (0)\n+4F118 Compressed Size       00000000 (0)\n+4F11C Uncompressed Size     00000000 (0)\n+4F120 Filename Length       002C (44)\n+4F122 Extra Length          0009 (9)\n+4F124 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F124: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4F150 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4F152   Length              0005 (5)\n+4F154   Flags               01 (1) 'Modification'\n+4F155   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4F159 PAYLOAD\n+\n+4FE92 DATA DESCRIPTOR       08074B50 (134695760)\n+4FE96 CRC                   918F8FDE (2442104798)\n+4FE9A Compressed Size       00000D39 (3385)\n+4FE9E Uncompressed Size     00000D39 (3385)\n+\n+4FEA2 LOCAL HEADER #141     04034B50 (67324752)\n+4FEA6 Extract Zip Spec      14 (20) '2.0'\n+4FEA7 Extract OS            00 (0) 'MS-DOS'\n+4FEA8 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+4FEAA Compression Method    0000 (0) 'Stored'\n+4FEAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4FEB0 CRC                   00000000 (0)\n+4FEB4 Compressed Size       00000000 (0)\n+4FEB8 Uncompressed Size     00000000 (0)\n+4FEBC Filename Length       0029 (41)\n+4FEBE Extra Length          0009 (9)\n+4FEC0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4FEC0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4FEE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4FEEB   Length              0005 (5)\n+4FEED   Flags               01 (1) 'Modification'\n+4FEEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4FEF2 PAYLOAD\n+\n+50C9B DATA DESCRIPTOR       08074B50 (134695760)\n+50C9F CRC                   0D442AC7 (222571207)\n+50CA3 Compressed Size       00000DA9 (3497)\n+50CA7 Uncompressed Size     00000DA9 (3497)\n+\n+50CAB LOCAL HEADER #142     04034B50 (67324752)\n+50CAF Extract Zip Spec      14 (20) '2.0'\n+50CB0 Extract OS            00 (0) 'MS-DOS'\n+50CB1 General Purpose Flag  0000 (0)\n+50CB3 Compression Method    0000 (0) 'Stored'\n+50CB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+50CB9 CRC                   00000000 (0)\n+50CBD Compressed Size       00000000 (0)\n+50CC1 Uncompressed Size     00000000 (0)\n+50CC5 Filename Length       0021 (33)\n+50CC7 Extra Length          0009 (9)\n+50CC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x50CC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+50CEA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+50CEC   Length              0005 (5)\n+50CEE   Flags               01 (1) 'Modification'\n+50CEF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+50CF3 LOCAL HEADER #143     04034B50 (67324752)\n+50CF7 Extract Zip Spec      14 (20) '2.0'\n+50CF8 Extract OS            00 (0) 'MS-DOS'\n+50CF9 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+50CFB Compression Method    0000 (0) 'Stored'\n+50CFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+50D01 CRC                   00000000 (0)\n+50D05 Compressed Size       00000000 (0)\n+50D09 Uncompressed Size     00000000 (0)\n+50D0D Filename Length       003D (61)\n+50D0F Extra Length          0009 (9)\n+50D11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x50D11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+50D4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+50D50   Length              0005 (5)\n+50D52   Flags               01 (1) 'Modification'\n+50D53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+50D57 PAYLOAD\n+\n+5169C DATA DESCRIPTOR       08074B50 (134695760)\n+516A0 CRC                   78074190 (2013741456)\n+516A4 Compressed Size       00000945 (2373)\n+516A8 Uncompressed Size     00000945 (2373)\n+\n+516AC LOCAL HEADER #144     04034B50 (67324752)\n+516B0 Extract Zip Spec      14 (20) '2.0'\n+516B1 Extract OS            00 (0) 'MS-DOS'\n+516B2 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+516B4 Compression Method    0000 (0) 'Stored'\n+516B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+516BA CRC                   00000000 (0)\n+516BE Compressed Size       00000000 (0)\n+516C2 Uncompressed Size     00000000 (0)\n+516C6 Filename Length       0043 (67)\n+516C8 Extra Length          0009 (9)\n+516CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x516CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5170D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5170F   Length              0005 (5)\n+51711   Flags               01 (1) 'Modification'\n+51712   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+51716 PAYLOAD\n+\n+52C62 DATA DESCRIPTOR       08074B50 (134695760)\n+52C66 CRC                   ECC02854 (3972016212)\n+52C6A Compressed Size       0000154C (5452)\n+52C6E Uncompressed Size     0000154C (5452)\n+\n+52C72 LOCAL HEADER #145     04034B50 (67324752)\n+52C76 Extract Zip Spec      14 (20) '2.0'\n+52C77 Extract OS            00 (0) 'MS-DOS'\n+52C78 General Purpose Flag  0000 (0)\n+52C7A Compression Method    0000 (0) 'Stored'\n+52C7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52C80 CRC                   00000000 (0)\n+52C84 Compressed Size       00000000 (0)\n+52C88 Uncompressed Size     00000000 (0)\n+52C8C Filename Length       0026 (38)\n+52C8E Extra Length          0009 (9)\n+52C90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52C90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52CB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52CB8   Length              0005 (5)\n+52CBA   Flags               01 (1) 'Modification'\n+52CBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+52CBF LOCAL HEADER #146     04034B50 (67324752)\n+52CC3 Extract Zip Spec      14 (20) '2.0'\n+52CC4 Extract OS            00 (0) 'MS-DOS'\n+52CC5 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+52CC7 Compression Method    0000 (0) 'Stored'\n+52CC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52CCD CRC                   00000000 (0)\n+52CD1 Compressed Size       00000000 (0)\n+52CD5 Uncompressed Size     00000000 (0)\n+52CD9 Filename Length       004B (75)\n+52CDB Extra Length          0009 (9)\n+52CDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52CDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52D28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52D2A   Length              0005 (5)\n+52D2C   Flags               01 (1) 'Modification'\n+52D2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+52D31 PAYLOAD\n+\n+549A1 DATA DESCRIPTOR       08074B50 (134695760)\n+549A5 CRC                   166728A8 (375859368)\n+549A9 Compressed Size       00001C70 (7280)\n+549AD Uncompressed Size     00001C70 (7280)\n+\n+549B1 LOCAL HEADER #147     04034B50 (67324752)\n+549B5 Extract Zip Spec      14 (20) '2.0'\n+549B6 Extract OS            00 (0) 'MS-DOS'\n+549B7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+549B9 Compression Method    0000 (0) 'Stored'\n+549BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+549BF CRC                   00000000 (0)\n+549C3 Compressed Size       00000000 (0)\n+549C7 Uncompressed Size     00000000 (0)\n+549CB Filename Length       0047 (71)\n+549CD Extra Length          0009 (9)\n+549CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x549CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54A16 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54A18   Length              0005 (5)\n+54A1A   Flags               01 (1) 'Modification'\n+54A1B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+54A1F PAYLOAD\n+\n+54FF0 DATA DESCRIPTOR       08074B50 (134695760)\n+54FF4 CRC                   9A288CEF (2586348783)\n+54FF8 Compressed Size       000005D1 (1489)\n+54FFC Uncompressed Size     000005D1 (1489)\n+\n+55000 LOCAL HEADER #148     04034B50 (67324752)\n+55004 Extract Zip Spec      14 (20) '2.0'\n+55005 Extract OS            00 (0) 'MS-DOS'\n+55006 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+55008 Compression Method    0000 (0) 'Stored'\n+5500A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5500E CRC                   00000000 (0)\n+55012 Compressed Size       00000000 (0)\n+55016 Uncompressed Size     00000000 (0)\n+5501A Filename Length       0049 (73)\n+5501C Extra Length          0009 (9)\n+5501E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5501E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+55067 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+55069   Length              0005 (5)\n+5506B   Flags               01 (1) 'Modification'\n+5506C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+55070 PAYLOAD\n+\n+56427 DATA DESCRIPTOR       08074B50 (134695760)\n+5642B CRC                   B054C9F9 (2958346745)\n+5642F Compressed Size       000013B7 (5047)\n+56433 Uncompressed Size     000013B7 (5047)\n+\n+56437 LOCAL HEADER #149     04034B50 (67324752)\n+5643B Extract Zip Spec      14 (20) '2.0'\n+5643C Extract OS            00 (0) 'MS-DOS'\n+5643D General Purpose Flag  0000 (0)\n+5643F Compression Method    0000 (0) 'Stored'\n+56441 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+56445 CRC                   00000000 (0)\n+56449 Compressed Size       00000000 (0)\n+5644D Uncompressed Size     00000000 (0)\n+56451 Filename Length       001A (26)\n+56453 Extra Length          0009 (9)\n+56455 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x56455: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5646F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+56471   Length              0005 (5)\n+56473   Flags               01 (1) 'Modification'\n+56474   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+56478 LOCAL HEADER #150     04034B50 (67324752)\n+5647C Extract Zip Spec      14 (20) '2.0'\n+5647D Extract OS            00 (0) 'MS-DOS'\n+5647E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+56480 Compression Method    0000 (0) 'Stored'\n+56482 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+56486 CRC                   00000000 (0)\n+5648A Compressed Size       00000000 (0)\n+5648E Uncompressed Size     00000000 (0)\n+56492 Filename Length       003B (59)\n+56494 Extra Length          0009 (9)\n+56496 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x56496: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+564D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+564D3   Length              0005 (5)\n+564D5   Flags               01 (1) 'Modification'\n+564D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+564DA PAYLOAD\n+\n+5685D DATA DESCRIPTOR       08074B50 (134695760)\n+56861 CRC                   F2EA4571 (4075439473)\n+56865 Compressed Size       00000383 (899)\n+56869 Uncompressed Size     00000383 (899)\n+\n+5686D LOCAL HEADER #151     04034B50 (67324752)\n+56871 Extract Zip Spec      14 (20) '2.0'\n+56872 Extract OS            00 (0) 'MS-DOS'\n+56873 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+56875 Compression Method    0000 (0) 'Stored'\n+56877 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5687B CRC                   00000000 (0)\n+5687F Compressed Size       00000000 (0)\n+56883 Uncompressed Size     00000000 (0)\n+56887 Filename Length       002D (45)\n+56889 Extra Length          0009 (9)\n+5688B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5688B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+568B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+568BA   Length              0005 (5)\n+568BC   Flags               01 (1) 'Modification'\n+568BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+568C1 PAYLOAD\n+\n+5781C DATA DESCRIPTOR       08074B50 (134695760)\n+57820 CRC                   DB7483A7 (3681846183)\n+57824 Compressed Size       00000F5B (3931)\n+57828 Uncompressed Size     00000F5B (3931)\n+\n+5782C LOCAL HEADER #152     04034B50 (67324752)\n+57830 Extract Zip Spec      14 (20) '2.0'\n+57831 Extract OS            00 (0) 'MS-DOS'\n+57832 General Purpose Flag  0000 (0)\n+57834 Compression Method    0000 (0) 'Stored'\n+57836 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5783A CRC                   00000000 (0)\n+5783E Compressed Size       00000000 (0)\n+57842 Uncompressed Size     00000000 (0)\n+57846 Filename Length       0014 (20)\n+57848 Extra Length          0009 (9)\n+5784A Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5784A: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5785E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57860   Length              0005 (5)\n+57862   Flags               01 (1) 'Modification'\n+57863   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+57867 LOCAL HEADER #153     04034B50 (67324752)\n+5786B Extract Zip Spec      14 (20) '2.0'\n+5786C Extract OS            00 (0) 'MS-DOS'\n+5786D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+5786F Compression Method    0000 (0) 'Stored'\n+57871 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57875 CRC                   00000000 (0)\n+57879 Compressed Size       00000000 (0)\n+5787D Uncompressed Size     00000000 (0)\n+57881 Filename Length       0028 (40)\n+57883 Extra Length          0009 (9)\n+57885 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57885: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+578AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+578AF   Length              0005 (5)\n+578B1   Flags               01 (1) 'Modification'\n+578B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+578B6 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-57A5F DATA DESCRIPTOR       08074B50 (134695760)\n-57A63 CRC                   7D006F4A (2097180490)\n-57A67 Compressed Size       000000AE (174)\n-57A6B Uncompressed Size     000000AE (174)\n-\n-57A6F LOCAL HEADER #154     04034B50 (67324752)\n-57A73 Extract Zip Spec      14 (20) '2.0'\n-57A74 Extract OS            00 (0) 'MS-DOS'\n-57A75 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-57A77 Compression Method    0000 (0) 'Stored'\n-57A79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-57A7D CRC                   00000000 (0)\n-57A81 Compressed Size       00000000 (0)\n-57A85 Uncompressed Size     00000000 (0)\n-57A89 Filename Length       002F (47)\n-57A8B Extra Length          0009 (9)\n-57A8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57A8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-57ABC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-57ABE   Length              0005 (5)\n-57AC0   Flags               01 (1) 'Modification'\n-57AC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-57AC5 PAYLOAD\n-\n-57CA4 DATA DESCRIPTOR       08074B50 (134695760)\n-57CA8 CRC                   6F0F3966 (1863268710)\n-57CAC Compressed Size       000001DF (479)\n-57CB0 Uncompressed Size     000001DF (479)\n-\n-57CB4 LOCAL HEADER #155     04034B50 (67324752)\n-57CB8 Extract Zip Spec      14 (20) '2.0'\n-57CB9 Extract OS            00 (0) 'MS-DOS'\n-57CBA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-57CBC Compression Method    0000 (0) 'Stored'\n-57CBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-57CC2 CRC                   00000000 (0)\n-57CC6 Compressed Size       00000000 (0)\n-57CCA Uncompressed Size     00000000 (0)\n-57CCE Filename Length       002D (45)\n-57CD0 Extra Length          0009 (9)\n-57CD2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57CD2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-57CFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-57D01   Length              0005 (5)\n-57D03   Flags               01 (1) 'Modification'\n-57D04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-57D08 PAYLOAD\n-\n-57EDF DATA DESCRIPTOR       08074B50 (134695760)\n-57EE3 CRC                   DAA18D5C (3668020572)\n-57EE7 Compressed Size       000001D7 (471)\n-57EEB Uncompressed Size     000001D7 (471)\n-\n-57EEF LOCAL HEADER #156     04034B50 (67324752)\n-57EF3 Extract Zip Spec      14 (20) '2.0'\n-57EF4 Extract OS            00 (0) 'MS-DOS'\n-57EF5 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-57EF7 Compression Method    0000 (0) 'Stored'\n-57EF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-57EFD CRC                   00000000 (0)\n-57F01 Compressed Size       00000000 (0)\n-57F05 Uncompressed Size     00000000 (0)\n-57F09 Filename Length       0049 (73)\n-57F0B Extra Length          0009 (9)\n-57F0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57F0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-57F56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-57F58   Length              0005 (5)\n-57F5A   Flags               01 (1) 'Modification'\n-57F5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-57F5F PAYLOAD\n-\n-5820B DATA DESCRIPTOR       08074B50 (134695760)\n-5820F CRC                   6F05623C (1862623804)\n-58213 Compressed Size       000002AC (684)\n-58217 Uncompressed Size     000002AC (684)\n-\n-5821B LOCAL HEADER #157     04034B50 (67324752)\n-5821F Extract Zip Spec      14 (20) '2.0'\n-58220 Extract OS            00 (0) 'MS-DOS'\n-58221 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-58223 Compression Method    0000 (0) 'Stored'\n-58225 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-58229 CRC                   00000000 (0)\n-5822D Compressed Size       00000000 (0)\n-58231 Uncompressed Size     00000000 (0)\n-58235 Filename Length       0042 (66)\n-58237 Extra Length          0009 (9)\n-58239 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x58239: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5827B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5827D   Length              0005 (5)\n-5827F   Flags               01 (1) 'Modification'\n-58280   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-58284 PAYLOAD\n-\n-583AC DATA DESCRIPTOR       08074B50 (134695760)\n-583B0 CRC                   649CBE85 (1687993989)\n-583B4 Compressed Size       00000128 (296)\n-583B8 Uncompressed Size     00000128 (296)\n-\n-583BC LOCAL HEADER #158     04034B50 (67324752)\n-583C0 Extract Zip Spec      14 (20) '2.0'\n-583C1 Extract OS            00 (0) 'MS-DOS'\n-583C2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-583C4 Compression Method    0000 (0) 'Stored'\n-583C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-583CA CRC                   00000000 (0)\n-583CE Compressed Size       00000000 (0)\n-583D2 Uncompressed Size     00000000 (0)\n-583D6 Filename Length       002B (43)\n-583D8 Extra Length          0009 (9)\n-583DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x583DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-58405 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-58407   Length              0005 (5)\n-58409   Flags               01 (1) 'Modification'\n-5840A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5840E PAYLOAD\n-\n-597FC DATA DESCRIPTOR       08074B50 (134695760)\n-59800 CRC                   7EAB90FF (2125172991)\n-59804 Compressed Size       000013EE (5102)\n-59808 Uncompressed Size     000013EE (5102)\n-\n-5980C LOCAL HEADER #159     04034B50 (67324752)\n-59810 Extract Zip Spec      14 (20) '2.0'\n-59811 Extract OS            00 (0) 'MS-DOS'\n-59812 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-59814 Compression Method    0000 (0) 'Stored'\n-59816 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5981A CRC                   00000000 (0)\n-5981E Compressed Size       00000000 (0)\n-59822 Uncompressed Size     00000000 (0)\n-59826 Filename Length       0029 (41)\n-59828 Extra Length          0009 (9)\n-5982A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5982A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-59853 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-59855   Length              0005 (5)\n-59857   Flags               01 (1) 'Modification'\n-59858   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5985C PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+57964 DATA DESCRIPTOR       08074B50 (134695760)\n+57968 CRC                   B365C78C (3009791884)\n+5796C Compressed Size       000000AE (174)\n+57970 Uncompressed Size     000000AE (174)\n+\n+57974 LOCAL HEADER #154     04034B50 (67324752)\n+57978 Extract Zip Spec      14 (20) '2.0'\n+57979 Extract OS            00 (0) 'MS-DOS'\n+5797A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+5797C Compression Method    0000 (0) 'Stored'\n+5797E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57982 CRC                   00000000 (0)\n+57986 Compressed Size       00000000 (0)\n+5798A Uncompressed Size     00000000 (0)\n+5798E Filename Length       002F (47)\n+57990 Extra Length          0009 (9)\n+57992 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57992: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+579C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+579C3   Length              0005 (5)\n+579C5   Flags               01 (1) 'Modification'\n+579C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+579CA PAYLOAD\n+\n+57BA9 DATA DESCRIPTOR       08074B50 (134695760)\n+57BAD CRC                   335AE0A4 (861593764)\n+57BB1 Compressed Size       000001DF (479)\n+57BB5 Uncompressed Size     000001DF (479)\n+\n+57BB9 LOCAL HEADER #155     04034B50 (67324752)\n+57BBD Extract Zip Spec      14 (20) '2.0'\n+57BBE Extract OS            00 (0) 'MS-DOS'\n+57BBF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+57BC1 Compression Method    0000 (0) 'Stored'\n+57BC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57BC7 CRC                   00000000 (0)\n+57BCB Compressed Size       00000000 (0)\n+57BCF Uncompressed Size     00000000 (0)\n+57BD3 Filename Length       002D (45)\n+57BD5 Extra Length          0009 (9)\n+57BD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57BD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57C04 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57C06   Length              0005 (5)\n+57C08   Flags               01 (1) 'Modification'\n+57C09   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57C0D PAYLOAD\n+\n+57DE4 DATA DESCRIPTOR       08074B50 (134695760)\n+57DE8 CRC                   686AC919 (1751828761)\n+57DEC Compressed Size       000001D7 (471)\n+57DF0 Uncompressed Size     000001D7 (471)\n+\n+57DF4 LOCAL HEADER #156     04034B50 (67324752)\n+57DF8 Extract Zip Spec      14 (20) '2.0'\n+57DF9 Extract OS            00 (0) 'MS-DOS'\n+57DFA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+57DFC Compression Method    0000 (0) 'Stored'\n+57DFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57E02 CRC                   00000000 (0)\n+57E06 Compressed Size       00000000 (0)\n+57E0A Uncompressed Size     00000000 (0)\n+57E0E Filename Length       0049 (73)\n+57E10 Extra Length          0009 (9)\n+57E12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57E12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57E5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57E5D   Length              0005 (5)\n+57E5F   Flags               01 (1) 'Modification'\n+57E60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57E64 PAYLOAD\n+\n+58110 DATA DESCRIPTOR       08074B50 (134695760)\n+58114 CRC                   40AFB79D (1085257629)\n+58118 Compressed Size       000002AC (684)\n+5811C Uncompressed Size     000002AC (684)\n+\n+58120 LOCAL HEADER #157     04034B50 (67324752)\n+58124 Extract Zip Spec      14 (20) '2.0'\n+58125 Extract OS            00 (0) 'MS-DOS'\n+58126 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+58128 Compression Method    0000 (0) 'Stored'\n+5812A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5812E CRC                   00000000 (0)\n+58132 Compressed Size       00000000 (0)\n+58136 Uncompressed Size     00000000 (0)\n+5813A Filename Length       0042 (66)\n+5813C Extra Length          0009 (9)\n+5813E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5813E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+58180 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+58182   Length              0005 (5)\n+58184   Flags               01 (1) 'Modification'\n+58185   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+58189 PAYLOAD\n+\n+582B1 DATA DESCRIPTOR       08074B50 (134695760)\n+582B5 CRC                   EC08D15D (3960000861)\n+582B9 Compressed Size       00000128 (296)\n+582BD Uncompressed Size     00000128 (296)\n+\n+582C1 LOCAL HEADER #158     04034B50 (67324752)\n+582C5 Extract Zip Spec      14 (20) '2.0'\n+582C6 Extract OS            00 (0) 'MS-DOS'\n+582C7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+582C9 Compression Method    0000 (0) 'Stored'\n+582CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+582CF CRC                   00000000 (0)\n+582D3 Compressed Size       00000000 (0)\n+582D7 Uncompressed Size     00000000 (0)\n+582DB Filename Length       002B (43)\n+582DD Extra Length          0009 (9)\n+582DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x582DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5830A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5830C   Length              0005 (5)\n+5830E   Flags               01 (1) 'Modification'\n+5830F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+58313 PAYLOAD\n+\n+59703 DATA DESCRIPTOR       08074B50 (134695760)\n+59707 CRC                   04F7DEEE (83353326)\n+5970B Compressed Size       000013F0 (5104)\n+5970F Uncompressed Size     000013F0 (5104)\n+\n+59713 LOCAL HEADER #159     04034B50 (67324752)\n+59717 Extract Zip Spec      14 (20) '2.0'\n+59718 Extract OS            00 (0) 'MS-DOS'\n+59719 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+5971B Compression Method    0000 (0) 'Stored'\n+5971D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+59721 CRC                   00000000 (0)\n+59725 Compressed Size       00000000 (0)\n+59729 Uncompressed Size     00000000 (0)\n+5972D Filename Length       0029 (41)\n+5972F Extra Length          0009 (9)\n+59731 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x59731: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5975A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5975C   Length              0005 (5)\n+5975E   Flags               01 (1) 'Modification'\n+5975F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+59763 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-5995C DATA DESCRIPTOR       08074B50 (134695760)\n-59960 CRC                   8B4A2818 (2336892952)\n-59964 Compressed Size       00000100 (256)\n-59968 Uncompressed Size     00000100 (256)\n-\n-5996C LOCAL HEADER #160     04034B50 (67324752)\n-59970 Extract Zip Spec      14 (20) '2.0'\n-59971 Extract OS            00 (0) 'MS-DOS'\n-59972 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-59974 Compression Method    0000 (0) 'Stored'\n-59976 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5997A CRC                   00000000 (0)\n-5997E Compressed Size       00000000 (0)\n-59982 Uncompressed Size     00000000 (0)\n-59986 Filename Length       002D (45)\n-59988 Extra Length          0009 (9)\n-5998A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5998A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-599B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-599B9   Length              0005 (5)\n-599BB   Flags               01 (1) 'Modification'\n-599BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-599C0 PAYLOAD\n-\n-59BF5 DATA DESCRIPTOR       08074B50 (134695760)\n-59BF9 CRC                   E28C35C9 (3800839625)\n-59BFD Compressed Size       00000235 (565)\n-59C01 Uncompressed Size     00000235 (565)\n-\n-59C05 LOCAL HEADER #161     04034B50 (67324752)\n-59C09 Extract Zip Spec      14 (20) '2.0'\n-59C0A Extract OS            00 (0) 'MS-DOS'\n-59C0B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-59C0D Compression Method    0000 (0) 'Stored'\n-59C0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-59C13 CRC                   00000000 (0)\n-59C17 Compressed Size       00000000 (0)\n-59C1B Uncompressed Size     00000000 (0)\n-59C1F Filename Length       0031 (49)\n-59C21 Extra Length          0009 (9)\n-59C23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59C23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-59C54 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-59C56   Length              0005 (5)\n-59C58   Flags               01 (1) 'Modification'\n-59C59   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-59C5D PAYLOAD\n-\n-59D6D DATA DESCRIPTOR       08074B50 (134695760)\n-59D71 CRC                   6ADA63B0 (1792697264)\n-59D75 Compressed Size       00000110 (272)\n-59D79 Uncompressed Size     00000110 (272)\n-\n-59D7D LOCAL HEADER #162     04034B50 (67324752)\n-59D81 Extract Zip Spec      14 (20) '2.0'\n-59D82 Extract OS            00 (0) 'MS-DOS'\n-59D83 General Purpose Flag  0000 (0)\n-59D85 Compression Method    0000 (0) 'Stored'\n-59D87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-59D8B CRC                   00000000 (0)\n-59D8F Compressed Size       00000000 (0)\n-59D93 Uncompressed Size     00000000 (0)\n-59D97 Filename Length       001B (27)\n-59D99 Extra Length          0009 (9)\n-59D9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59D9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-59DB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-59DB8   Length              0005 (5)\n-59DBA   Flags               01 (1) 'Modification'\n-59DBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-59DBF LOCAL HEADER #163     04034B50 (67324752)\n-59DC3 Extract Zip Spec      14 (20) '2.0'\n-59DC4 Extract OS            00 (0) 'MS-DOS'\n-59DC5 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-59DC7 Compression Method    0000 (0) 'Stored'\n-59DC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-59DCD CRC                   00000000 (0)\n-59DD1 Compressed Size       00000000 (0)\n-59DD5 Uncompressed Size     00000000 (0)\n-59DD9 Filename Length       003A (58)\n-59DDB Extra Length          0009 (9)\n-59DDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59DDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-59E17 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-59E19   Length              0005 (5)\n-59E1B   Flags               01 (1) 'Modification'\n-59E1C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-59E20 PAYLOAD\n-\n-5A464 DATA DESCRIPTOR       08074B50 (134695760)\n-5A468 CRC                   28DAA840 (685418560)\n-5A46C Compressed Size       00000644 (1604)\n-5A470 Uncompressed Size     00000644 (1604)\n-\n-5A474 LOCAL HEADER #164     04034B50 (67324752)\n-5A478 Extract Zip Spec      14 (20) '2.0'\n-5A479 Extract OS            00 (0) 'MS-DOS'\n-5A47A General Purpose Flag  0000 (0)\n-5A47C Compression Method    0000 (0) 'Stored'\n-5A47E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A482 CRC                   00000000 (0)\n-5A486 Compressed Size       00000000 (0)\n-5A48A Uncompressed Size     00000000 (0)\n-5A48E Filename Length       0016 (22)\n-5A490 Extra Length          0009 (9)\n-5A492 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A492: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A4A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A4AA   Length              0005 (5)\n-5A4AC   Flags               01 (1) 'Modification'\n-5A4AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5A4B1 LOCAL HEADER #165     04034B50 (67324752)\n-5A4B5 Extract Zip Spec      14 (20) '2.0'\n-5A4B6 Extract OS            00 (0) 'MS-DOS'\n-5A4B7 General Purpose Flag  0000 (0)\n-5A4B9 Compression Method    0000 (0) 'Stored'\n-5A4BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A4BF CRC                   00000000 (0)\n-5A4C3 Compressed Size       00000000 (0)\n-5A4C7 Uncompressed Size     00000000 (0)\n-5A4CB Filename Length       0020 (32)\n-5A4CD Extra Length          0009 (9)\n-5A4CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A4CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A4EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A4F1   Length              0005 (5)\n-5A4F3   Flags               01 (1) 'Modification'\n-5A4F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5A4F8 LOCAL HEADER #166     04034B50 (67324752)\n-5A4FC Extract Zip Spec      14 (20) '2.0'\n-5A4FD Extract OS            00 (0) 'MS-DOS'\n-5A4FE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-5A500 Compression Method    0000 (0) 'Stored'\n-5A502 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A506 CRC                   00000000 (0)\n-5A50A Compressed Size       00000000 (0)\n-5A50E Uncompressed Size     00000000 (0)\n-5A512 Filename Length       003A (58)\n-5A514 Extra Length          0009 (9)\n-5A516 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A516: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A550 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A552   Length              0005 (5)\n-5A554   Flags               01 (1) 'Modification'\n-5A555   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5A559 PAYLOAD\n-\n-5B2EB DATA DESCRIPTOR       08074B50 (134695760)\n-5B2EF CRC                   F1C0C0DB (4055941339)\n-5B2F3 Compressed Size       00000D92 (3474)\n-5B2F7 Uncompressed Size     00000D92 (3474)\n-\n-5B2FB LOCAL HEADER #167     04034B50 (67324752)\n-5B2FF Extract Zip Spec      14 (20) '2.0'\n-5B300 Extract OS            00 (0) 'MS-DOS'\n-5B301 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-5B303 Compression Method    0000 (0) 'Stored'\n-5B305 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5B309 CRC                   00000000 (0)\n-5B30D Compressed Size       00000000 (0)\n-5B311 Uncompressed Size     00000000 (0)\n-5B315 Filename Length       0038 (56)\n-5B317 Extra Length          0009 (9)\n-5B319 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B319: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5B351 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5B353   Length              0005 (5)\n-5B355   Flags               01 (1) 'Modification'\n-5B356   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5B35A PAYLOAD\n-\n-5BEE7 DATA DESCRIPTOR       08074B50 (134695760)\n-5BEEB CRC                   94826ABA (2491574970)\n-5BEEF Compressed Size       00000B8D (2957)\n-5BEF3 Uncompressed Size     00000B8D (2957)\n-\n-5BEF7 LOCAL HEADER #168     04034B50 (67324752)\n-5BEFB Extract Zip Spec      14 (20) '2.0'\n-5BEFC Extract OS            00 (0) 'MS-DOS'\n-5BEFD General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-5BEFF Compression Method    0000 (0) 'Stored'\n-5BF01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5BF05 CRC                   00000000 (0)\n-5BF09 Compressed Size       00000000 (0)\n-5BF0D Uncompressed Size     00000000 (0)\n-5BF11 Filename Length       0036 (54)\n-5BF13 Extra Length          0009 (9)\n-5BF15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BF15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5BF4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5BF4D   Length              0005 (5)\n-5BF4F   Flags               01 (1) 'Modification'\n-5BF50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5BF54 PAYLOAD\n-\n-5CE13 DATA DESCRIPTOR       08074B50 (134695760)\n-5CE17 CRC                   B2491236 (2991133238)\n-5CE1B Compressed Size       00000EBF (3775)\n-5CE1F Uncompressed Size     00000EBF (3775)\n-\n-5CE23 LOCAL HEADER #169     04034B50 (67324752)\n-5CE27 Extract Zip Spec      14 (20) '2.0'\n-5CE28 Extract OS            00 (0) 'MS-DOS'\n-5CE29 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-5CE2B Compression Method    0000 (0) 'Stored'\n-5CE2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5CE31 CRC                   00000000 (0)\n-5CE35 Compressed Size       00000000 (0)\n-5CE39 Uncompressed Size     00000000 (0)\n-5CE3D Filename Length       0040 (64)\n-5CE3F Extra Length          0009 (9)\n-5CE41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CE41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5CE81 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5CE83   Length              0005 (5)\n-5CE85   Flags               01 (1) 'Modification'\n-5CE86   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5CE8A PAYLOAD\n-\n-5E7BA DATA DESCRIPTOR       08074B50 (134695760)\n-5E7BE CRC                   432AC1B1 (1126875569)\n-5E7C2 Compressed Size       00001930 (6448)\n-5E7C6 Uncompressed Size     00001930 (6448)\n-\n-5E7CA LOCAL HEADER #170     04034B50 (67324752)\n-5E7CE Extract Zip Spec      14 (20) '2.0'\n-5E7CF Extract OS            00 (0) 'MS-DOS'\n-5E7D0 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-5E7D2 Compression Method    0000 (0) 'Stored'\n-5E7D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E7D8 CRC                   00000000 (0)\n-5E7DC Compressed Size       00000000 (0)\n-5E7E0 Uncompressed Size     00000000 (0)\n-5E7E4 Filename Length       004F (79)\n-5E7E6 Extra Length          0009 (9)\n-5E7E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E7E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E837 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E839   Length              0005 (5)\n-5E83B   Flags               01 (1) 'Modification'\n-5E83C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E840 PAYLOAD\n-\n-5EF96 DATA DESCRIPTOR       08074B50 (134695760)\n-5EF9A CRC                   FF31AB03 (4281445123)\n-5EF9E Compressed Size       00000756 (1878)\n-5EFA2 Uncompressed Size     00000756 (1878)\n-\n-5EFA6 LOCAL HEADER #171     04034B50 (67324752)\n-5EFAA Extract Zip Spec      14 (20) '2.0'\n-5EFAB Extract OS            00 (0) 'MS-DOS'\n-5EFAC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-5EFAE Compression Method    0000 (0) 'Stored'\n-5EFB0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5EFB4 CRC                   00000000 (0)\n-5EFB8 Compressed Size       00000000 (0)\n-5EFBC Uncompressed Size     00000000 (0)\n-5EFC0 Filename Length       004E (78)\n-5EFC2 Extra Length          0009 (9)\n-5EFC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5EFC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F012 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F014   Length              0005 (5)\n-5F016   Flags               01 (1) 'Modification'\n-5F017   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F01B PAYLOAD\n-\n-5FC8A DATA DESCRIPTOR       08074B50 (134695760)\n-5FC8E CRC                   152F72C0 (355431104)\n-5FC92 Compressed Size       00000C6F (3183)\n-5FC96 Uncompressed Size     00000C6F (3183)\n-\n-5FC9A LOCAL HEADER #172     04034B50 (67324752)\n-5FC9E Extract Zip Spec      14 (20) '2.0'\n-5FC9F Extract OS            00 (0) 'MS-DOS'\n-5FCA0 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-5FCA2 Compression Method    0000 (0) 'Stored'\n-5FCA4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5FCA8 CRC                   00000000 (0)\n-5FCAC Compressed Size       00000000 (0)\n-5FCB0 Uncompressed Size     00000000 (0)\n-5FCB4 Filename Length       0038 (56)\n-5FCB6 Extra Length          0009 (9)\n-5FCB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FCB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5FCF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5FCF2   Length              0005 (5)\n-5FCF4   Flags               01 (1) 'Modification'\n-5FCF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5FCF9 PAYLOAD\n-\n-60B40 DATA DESCRIPTOR       08074B50 (134695760)\n-60B44 CRC                   2A7311D9 (712184281)\n-60B48 Compressed Size       00000E47 (3655)\n-60B4C Uncompressed Size     00000E47 (3655)\n-\n-60B50 LOCAL HEADER #173     04034B50 (67324752)\n-60B54 Extract Zip Spec      14 (20) '2.0'\n-60B55 Extract OS            00 (0) 'MS-DOS'\n-60B56 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-60B58 Compression Method    0000 (0) 'Stored'\n-60B5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-60B5E CRC                   00000000 (0)\n-60B62 Compressed Size       00000000 (0)\n-60B66 Uncompressed Size     00000000 (0)\n-60B6A Filename Length       0045 (69)\n-60B6C Extra Length          0009 (9)\n-60B6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x60B6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-60BB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-60BB5   Length              0005 (5)\n-60BB7   Flags               01 (1) 'Modification'\n-60BB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-60BBC PAYLOAD\n-\n-62C05 DATA DESCRIPTOR       08074B50 (134695760)\n-62C09 CRC                   DE91822C (3734077996)\n-62C0D Compressed Size       00002049 (8265)\n-62C11 Uncompressed Size     00002049 (8265)\n-\n-62C15 LOCAL HEADER #174     04034B50 (67324752)\n-62C19 Extract Zip Spec      14 (20) '2.0'\n-62C1A Extract OS            00 (0) 'MS-DOS'\n-62C1B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-62C1D Compression Method    0000 (0) 'Stored'\n-62C1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62C23 CRC                   00000000 (0)\n-62C27 Compressed Size       00000000 (0)\n-62C2B Uncompressed Size     00000000 (0)\n-62C2F Filename Length       0038 (56)\n-62C31 Extra Length          0009 (9)\n-62C33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62C33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62C6B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62C6D   Length              0005 (5)\n-62C6F   Flags               01 (1) 'Modification'\n-62C70   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-62C74 PAYLOAD\n-\n-62FD7 DATA DESCRIPTOR       08074B50 (134695760)\n-62FDB CRC                   5D229F2A (1562550058)\n-62FDF Compressed Size       00000363 (867)\n-62FE3 Uncompressed Size     00000363 (867)\n-\n-62FE7 LOCAL HEADER #175     04034B50 (67324752)\n-62FEB Extract Zip Spec      14 (20) '2.0'\n-62FEC Extract OS            00 (0) 'MS-DOS'\n-62FED General Purpose Flag  0000 (0)\n-62FEF Compression Method    0000 (0) 'Stored'\n-62FF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62FF5 CRC                   00000000 (0)\n-62FF9 Compressed Size       00000000 (0)\n-62FFD Uncompressed Size     00000000 (0)\n-63001 Filename Length       001D (29)\n-63003 Extra Length          0009 (9)\n-63005 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63005: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63022 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63024   Length              0005 (5)\n-63026   Flags               01 (1) 'Modification'\n-63027   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6302B LOCAL HEADER #176     04034B50 (67324752)\n-6302F Extract Zip Spec      14 (20) '2.0'\n-63030 Extract OS            00 (0) 'MS-DOS'\n-63031 General Purpose Flag  0000 (0)\n-63033 Compression Method    0000 (0) 'Stored'\n-63035 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63039 CRC                   00000000 (0)\n-6303D Compressed Size       00000000 (0)\n-63041 Uncompressed Size     00000000 (0)\n-63045 Filename Length       0022 (34)\n-63047 Extra Length          0009 (9)\n-63049 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63049: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6306B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6306D   Length              0005 (5)\n-6306F   Flags               01 (1) 'Modification'\n-63070   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63074 LOCAL HEADER #177     04034B50 (67324752)\n-63078 Extract Zip Spec      14 (20) '2.0'\n-63079 Extract OS            00 (0) 'MS-DOS'\n-6307A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6307C Compression Method    0000 (0) 'Stored'\n-6307E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63082 CRC                   00000000 (0)\n-63086 Compressed Size       00000000 (0)\n-6308A Uncompressed Size     00000000 (0)\n-6308E Filename Length       0043 (67)\n-63090 Extra Length          0009 (9)\n-63092 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63092: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-630D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-630D7   Length              0005 (5)\n-630D9   Flags               01 (1) 'Modification'\n-630DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-630DE PAYLOAD\n-\n-636F0 DATA DESCRIPTOR       08074B50 (134695760)\n-636F4 CRC                   8C92B588 (2358424968)\n-636F8 Compressed Size       00000612 (1554)\n-636FC Uncompressed Size     00000612 (1554)\n-\n-63700 CENTRAL HEADER #1     02014B50 (33639248)\n-63704 Created Zip Spec      14 (20) '2.0'\n-63705 Created OS            00 (0) 'MS-DOS'\n-63706 Extract Zip Spec      14 (20) '2.0'\n-63707 Extract OS            00 (0) 'MS-DOS'\n-63708 General Purpose Flag  0000 (0)\n-6370A Compression Method    0000 (0) 'Stored'\n-6370C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63710 CRC                   00000000 (0)\n-63714 Compressed Size       00000000 (0)\n-63718 Uncompressed Size     00000000 (0)\n-6371C Filename Length       0009 (9)\n-6371E Extra Length          0009 (9)\n-63720 Comment Length        0000 (0)\n-63722 Disk Start            0000 (0)\n-63724 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63726 Ext File Attributes   00000000 (0)\n-6372A Local Header Offset   00000000 (0)\n-6372E Filename              'XXXXXXXXX'\n-#\n-# WARNING: Offset 0x6372E: Filename 'XXXXXXXXX'\n-#          Zero length filename\n-#\n-63737 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63739   Length              0005 (5)\n-6373B   Flags               01 (1) 'Modification'\n-6373C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63740 CENTRAL HEADER #2     02014B50 (33639248)\n-63744 Created Zip Spec      14 (20) '2.0'\n-63745 Created OS            00 (0) 'MS-DOS'\n-63746 Extract Zip Spec      14 (20) '2.0'\n-63747 Extract OS            00 (0) 'MS-DOS'\n-63748 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6374A Compression Method    0000 (0) 'Stored'\n-6374C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63750 CRC                   EE027FB2 (3993141170)\n-63754 Compressed Size       00000019 (25)\n-63758 Uncompressed Size     00000019 (25)\n-6375C Filename Length       0014 (20)\n-6375E Extra Length          0009 (9)\n-63760 Comment Length        0000 (0)\n-63762 Disk Start            0000 (0)\n-63764 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63766 Ext File Attributes   00000000 (0)\n-6376A Local Header Offset   00000030 (48)\n-6376E Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6376E: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63782 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63784   Length              0005 (5)\n-63786   Flags               01 (1) 'Modification'\n-63787   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6378B CENTRAL HEADER #3     02014B50 (33639248)\n-6378F Created Zip Spec      14 (20) '2.0'\n-63790 Created OS            00 (0) 'MS-DOS'\n-63791 Extract Zip Spec      14 (20) '2.0'\n-63792 Extract OS            00 (0) 'MS-DOS'\n-63793 General Purpose Flag  0000 (0)\n-63795 Compression Method    0000 (0) 'Stored'\n-63797 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6379B CRC                   00000000 (0)\n-6379F Compressed Size       00000000 (0)\n-637A3 Uncompressed Size     00000000 (0)\n-637A7 Filename Length       000F (15)\n-637A9 Extra Length          0009 (9)\n-637AB Comment Length        0000 (0)\n-637AD Disk Start            0000 (0)\n-637AF Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-637B1 Ext File Attributes   00000000 (0)\n-637B5 Local Header Offset   00000094 (148)\n-637B9 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x637B9: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-637C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-637CA   Length              0005 (5)\n-637CC   Flags               01 (1) 'Modification'\n-637CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-637D1 CENTRAL HEADER #4     02014B50 (33639248)\n-637D5 Created Zip Spec      14 (20) '2.0'\n-637D6 Created OS            00 (0) 'MS-DOS'\n-637D7 Extract Zip Spec      14 (20) '2.0'\n-637D8 Extract OS            00 (0) 'MS-DOS'\n-637D9 General Purpose Flag  0000 (0)\n-637DB Compression Method    0000 (0) 'Stored'\n-637DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-637E1 CRC                   00000000 (0)\n-637E5 Compressed Size       00000000 (0)\n-637E9 Uncompressed Size     00000000 (0)\n-637ED Filename Length       001F (31)\n-637EF Extra Length          0009 (9)\n-637F1 Comment Length        0000 (0)\n-637F3 Disk Start            0000 (0)\n-637F5 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-637F7 Ext File Attributes   00000000 (0)\n-637FB Local Header Offset   000000CA (202)\n-637FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x637FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6381E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63820   Length              0005 (5)\n-63822   Flags               01 (1) 'Modification'\n-63823   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63827 CENTRAL HEADER #5     02014B50 (33639248)\n-6382B Created Zip Spec      14 (20) '2.0'\n-6382C Created OS            00 (0) 'MS-DOS'\n-6382D Extract Zip Spec      14 (20) '2.0'\n-6382E Extract OS            00 (0) 'MS-DOS'\n-6382F General Purpose Flag  0000 (0)\n-63831 Compression Method    0000 (0) 'Stored'\n-63833 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63837 CRC                   00000000 (0)\n-6383B Compressed Size       00000000 (0)\n-6383F Uncompressed Size     00000000 (0)\n-63843 Filename Length       0030 (48)\n-63845 Extra Length          0009 (9)\n-63847 Comment Length        0000 (0)\n-63849 Disk Start            0000 (0)\n-6384B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6384D Ext File Attributes   00000000 (0)\n-63851 Local Header Offset   00000110 (272)\n-63855 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63855: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63885 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63887   Length              0005 (5)\n-63889   Flags               01 (1) 'Modification'\n-6388A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6388E CENTRAL HEADER #6     02014B50 (33639248)\n-63892 Created Zip Spec      14 (20) '2.0'\n-63893 Created OS            00 (0) 'MS-DOS'\n-63894 Extract Zip Spec      14 (20) '2.0'\n-63895 Extract OS            00 (0) 'MS-DOS'\n-63896 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-63898 Compression Method    0000 (0) 'Stored'\n-6389A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6389E CRC                   00000000 (0)\n-638A2 Compressed Size       00000000 (0)\n-638A6 Uncompressed Size     00000000 (0)\n-638AA Filename Length       003E (62)\n-638AC Extra Length          0009 (9)\n-638AE Comment Length        0000 (0)\n-638B0 Disk Start            0000 (0)\n-638B2 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-638B4 Ext File Attributes   00000000 (0)\n-638B8 Local Header Offset   00000167 (359)\n-638BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x638BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-638FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-638FC   Length              0005 (5)\n-638FE   Flags               01 (1) 'Modification'\n-638FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63903 CENTRAL HEADER #7     02014B50 (33639248)\n-63907 Created Zip Spec      14 (20) '2.0'\n-63908 Created OS            00 (0) 'MS-DOS'\n-63909 Extract Zip Spec      14 (20) '2.0'\n-6390A Extract OS            00 (0) 'MS-DOS'\n-6390B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6390D Compression Method    0000 (0) 'Stored'\n-6390F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63913 CRC                   093F422D (155140653)\n-63917 Compressed Size       00001C0D (7181)\n-6391B Uncompressed Size     00001C0D (7181)\n-6391F Filename Length       0037 (55)\n-63921 Extra Length          0009 (9)\n-63923 Comment Length        0000 (0)\n-63925 Disk Start            0000 (0)\n-63927 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63929 Ext File Attributes   00000000 (0)\n-6392D Local Header Offset   000001DC (476)\n-63931 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63931: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63968 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6396A   Length              0005 (5)\n-6396C   Flags               01 (1) 'Modification'\n-6396D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63971 CENTRAL HEADER #8     02014B50 (33639248)\n-63975 Created Zip Spec      14 (20) '2.0'\n-63976 Created OS            00 (0) 'MS-DOS'\n-63977 Extract Zip Spec      14 (20) '2.0'\n-63978 Extract OS            00 (0) 'MS-DOS'\n-63979 General Purpose Flag  0000 (0)\n-6397B Compression Method    0000 (0) 'Stored'\n-6397D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63981 CRC                   00000000 (0)\n-63985 Compressed Size       00000000 (0)\n-63989 Uncompressed Size     00000000 (0)\n-6398D Filename Length       0012 (18)\n-6398F Extra Length          0009 (9)\n-63991 Comment Length        0000 (0)\n-63993 Disk Start            0000 (0)\n-63995 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63997 Ext File Attributes   00000000 (0)\n-6399B Local Header Offset   00001E57 (7767)\n-6399F Filename              'XXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6399F: Filename 'XXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-639B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-639B3   Length              0005 (5)\n-639B5   Flags               01 (1) 'Modification'\n-639B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-639BA CENTRAL HEADER #9     02014B50 (33639248)\n-639BE Created Zip Spec      14 (20) '2.0'\n-639BF Created OS            00 (0) 'MS-DOS'\n-639C0 Extract Zip Spec      14 (20) '2.0'\n-639C1 Extract OS            00 (0) 'MS-DOS'\n-639C2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-639C4 Compression Method    0000 (0) 'Stored'\n-639C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-639CA CRC                   595ACB4C (1499122508)\n-639CE Compressed Size       00000052 (82)\n-639D2 Uncompressed Size     00000052 (82)\n-639D6 Filename Length       0034 (52)\n-639D8 Extra Length          0009 (9)\n-639DA Comment Length        0000 (0)\n-639DC Disk Start            0000 (0)\n-639DE Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-639E0 Ext File Attributes   00000000 (0)\n-639E4 Local Header Offset   00001E90 (7824)\n-639E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x639E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63A1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63A1E   Length              0005 (5)\n-63A20   Flags               01 (1) 'Modification'\n-63A21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63A25 CENTRAL HEADER #10    02014B50 (33639248)\n-63A29 Created Zip Spec      14 (20) '2.0'\n-63A2A Created OS            00 (0) 'MS-DOS'\n-63A2B Extract Zip Spec      14 (20) '2.0'\n-63A2C Extract OS            00 (0) 'MS-DOS'\n-63A2D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-63A2F Compression Method    0000 (0) 'Stored'\n-63A31 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63A35 CRC                   10E6F8E1 (283572449)\n-63A39 Compressed Size       00000027 (39)\n-63A3D Uncompressed Size     00000027 (39)\n-63A41 Filename Length       0035 (53)\n-63A43 Extra Length          0009 (9)\n-63A45 Comment Length        0000 (0)\n-63A47 Disk Start            0000 (0)\n-63A49 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63A4B Ext File Attributes   00000000 (0)\n-63A4F Local Header Offset   00001F4D (8013)\n-63A53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63A53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63A88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63A8A   Length              0005 (5)\n-63A8C   Flags               01 (1) 'Modification'\n-63A8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63A91 CENTRAL HEADER #11    02014B50 (33639248)\n-63A95 Created Zip Spec      14 (20) '2.0'\n-63A96 Created OS            00 (0) 'MS-DOS'\n-63A97 Extract Zip Spec      14 (20) '2.0'\n-63A98 Extract OS            00 (0) 'MS-DOS'\n-63A99 General Purpose Flag  0000 (0)\n-63A9B Compression Method    0000 (0) 'Stored'\n-63A9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63AA1 CRC                   00000000 (0)\n-63AA5 Compressed Size       00000000 (0)\n-63AA9 Uncompressed Size     00000000 (0)\n-63AAD Filename Length       0004 (4)\n-63AAF Extra Length          0009 (9)\n-63AB1 Comment Length        0000 (0)\n-63AB3 Disk Start            0000 (0)\n-63AB5 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63AB7 Ext File Attributes   00000000 (0)\n-63ABB Local Header Offset   00001FE0 (8160)\n-63ABF Filename              'XXXX'\n-#\n-# WARNING: Offset 0x63ABF: Filename 'XXXX'\n-#          Zero length filename\n-#\n-63AC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63AC5   Length              0005 (5)\n-63AC7   Flags               01 (1) 'Modification'\n-63AC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63ACC CENTRAL HEADER #12    02014B50 (33639248)\n-63AD0 Created Zip Spec      14 (20) '2.0'\n-63AD1 Created OS            00 (0) 'MS-DOS'\n-63AD2 Extract Zip Spec      14 (20) '2.0'\n-63AD3 Extract OS            00 (0) 'MS-DOS'\n-63AD4 General Purpose Flag  0000 (0)\n-63AD6 Compression Method    0000 (0) 'Stored'\n-63AD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63ADC CRC                   00000000 (0)\n-63AE0 Compressed Size       00000000 (0)\n-63AE4 Uncompressed Size     00000000 (0)\n-63AE8 Filename Length       0010 (16)\n-63AEA Extra Length          0009 (9)\n-63AEC Comment Length        0000 (0)\n-63AEE Disk Start            0000 (0)\n-63AF0 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63AF2 Ext File Attributes   00000000 (0)\n-63AF6 Local Header Offset   0000200B (8203)\n-63AFA Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63AFA: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63B0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63B0C   Length              0005 (5)\n-63B0E   Flags               01 (1) 'Modification'\n-63B0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63B13 CENTRAL HEADER #13    02014B50 (33639248)\n-63B17 Created Zip Spec      14 (20) '2.0'\n-63B18 Created OS            00 (0) 'MS-DOS'\n-63B19 Extract Zip Spec      14 (20) '2.0'\n-63B1A Extract OS            00 (0) 'MS-DOS'\n-63B1B General Purpose Flag  0000 (0)\n-63B1D Compression Method    0000 (0) 'Stored'\n-63B1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63B23 CRC                   00000000 (0)\n-63B27 Compressed Size       00000000 (0)\n-63B2B Uncompressed Size     00000000 (0)\n-63B2F Filename Length       0016 (22)\n-63B31 Extra Length          0009 (9)\n-63B33 Comment Length        0000 (0)\n-63B35 Disk Start            0000 (0)\n-63B37 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63B39 Ext File Attributes   00000000 (0)\n-63B3D Local Header Offset   00002042 (8258)\n-63B41 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63B41: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63B57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63B59   Length              0005 (5)\n-63B5B   Flags               01 (1) 'Modification'\n-63B5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63B60 CENTRAL HEADER #14    02014B50 (33639248)\n-63B64 Created Zip Spec      14 (20) '2.0'\n-63B65 Created OS            00 (0) 'MS-DOS'\n-63B66 Extract Zip Spec      14 (20) '2.0'\n-63B67 Extract OS            00 (0) 'MS-DOS'\n-63B68 General Purpose Flag  0000 (0)\n-63B6A Compression Method    0000 (0) 'Stored'\n-63B6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63B70 CRC                   00000000 (0)\n-63B74 Compressed Size       00000000 (0)\n-63B78 Uncompressed Size     00000000 (0)\n-63B7C Filename Length       001B (27)\n-63B7E Extra Length          0009 (9)\n-63B80 Comment Length        0000 (0)\n-63B82 Disk Start            0000 (0)\n-63B84 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63B86 Ext File Attributes   00000000 (0)\n-63B8A Local Header Offset   0000207F (8319)\n-63B8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63B8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63BA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63BAB   Length              0005 (5)\n-63BAD   Flags               01 (1) 'Modification'\n-63BAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63BB2 CENTRAL HEADER #15    02014B50 (33639248)\n-63BB6 Created Zip Spec      14 (20) '2.0'\n-63BB7 Created OS            00 (0) 'MS-DOS'\n-63BB8 Extract Zip Spec      14 (20) '2.0'\n-63BB9 Extract OS            00 (0) 'MS-DOS'\n-63BBA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-63BBC Compression Method    0000 (0) 'Stored'\n-63BBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63BC2 CRC                   BF90882F (3213920303)\n-63BC6 Compressed Size       000004F9 (1273)\n-63BCA Uncompressed Size     000004F9 (1273)\n-63BCE Filename Length       0040 (64)\n-63BD0 Extra Length          0009 (9)\n-63BD2 Comment Length        0000 (0)\n-63BD4 Disk Start            0000 (0)\n-63BD6 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63BD8 Ext File Attributes   00000000 (0)\n-63BDC Local Header Offset   000020C1 (8385)\n-63BE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63BE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63C20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63C22   Length              0005 (5)\n-63C24   Flags               01 (1) 'Modification'\n-63C25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63C29 CENTRAL HEADER #16    02014B50 (33639248)\n-63C2D Created Zip Spec      14 (20) '2.0'\n-63C2E Created OS            00 (0) 'MS-DOS'\n-63C2F Extract Zip Spec      14 (20) '2.0'\n-63C30 Extract OS            00 (0) 'MS-DOS'\n-63C31 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-63C33 Compression Method    0000 (0) 'Stored'\n-63C35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63C39 CRC                   2B935A46 (731077190)\n-63C3D Compressed Size       00001817 (6167)\n-63C41 Uncompressed Size     00001817 (6167)\n-63C45 Filename Length       0037 (55)\n-63C47 Extra Length          0009 (9)\n-63C49 Comment Length        0000 (0)\n-63C4B Disk Start            0000 (0)\n-63C4D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63C4F Ext File Attributes   00000000 (0)\n-63C53 Local Header Offset   00002631 (9777)\n-63C57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63C57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63C8E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63C90   Length              0005 (5)\n-63C92   Flags               01 (1) 'Modification'\n-63C93   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63C97 CENTRAL HEADER #17    02014B50 (33639248)\n-63C9B Created Zip Spec      14 (20) '2.0'\n-63C9C Created OS            00 (0) 'MS-DOS'\n-63C9D Extract Zip Spec      14 (20) '2.0'\n-63C9E Extract OS            00 (0) 'MS-DOS'\n-63C9F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-63CA1 Compression Method    0000 (0) 'Stored'\n-63CA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63CA7 CRC                   CE3C4212 (3460055570)\n-63CAB Compressed Size       000009CB (2507)\n-63CAF Uncompressed Size     000009CB (2507)\n-63CB3 Filename Length       0039 (57)\n-63CB5 Extra Length          0009 (9)\n-63CB7 Comment Length        0000 (0)\n-63CB9 Disk Start            0000 (0)\n-63CBB Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63CBD Ext File Attributes   00000000 (0)\n-63CC1 Local Header Offset   00003EB6 (16054)\n-63CC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63CC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63CFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63D00   Length              0005 (5)\n-63D02   Flags               01 (1) 'Modification'\n-63D03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63D07 CENTRAL HEADER #18    02014B50 (33639248)\n-63D0B Created Zip Spec      14 (20) '2.0'\n-63D0C Created OS            00 (0) 'MS-DOS'\n-63D0D Extract Zip Spec      14 (20) '2.0'\n-63D0E Extract OS            00 (0) 'MS-DOS'\n-63D0F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-63D11 Compression Method    0000 (0) 'Stored'\n-63D13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63D17 CRC                   057A8D92 (91917714)\n-63D1B Compressed Size       00000896 (2198)\n-63D1F Uncompressed Size     00000896 (2198)\n-63D23 Filename Length       003D (61)\n-63D25 Extra Length          0009 (9)\n-63D27 Comment Length        0000 (0)\n-63D29 Disk Start            0000 (0)\n-63D2B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63D2D Ext File Attributes   00000000 (0)\n-63D31 Local Header Offset   000048F1 (18673)\n-63D35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63D35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63D72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63D74   Length              0005 (5)\n-63D76   Flags               01 (1) 'Modification'\n-63D77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63D7B CENTRAL HEADER #19    02014B50 (33639248)\n-63D7F Created Zip Spec      14 (20) '2.0'\n-63D80 Created OS            00 (0) 'MS-DOS'\n-63D81 Extract Zip Spec      14 (20) '2.0'\n-63D82 Extract OS            00 (0) 'MS-DOS'\n-63D83 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-63D85 Compression Method    0000 (0) 'Stored'\n-63D87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63D8B CRC                   CA0A38E7 (3389667559)\n-63D8F Compressed Size       00000C12 (3090)\n-63D93 Uncompressed Size     00000C12 (3090)\n-63D97 Filename Length       0033 (51)\n-63D99 Extra Length          0009 (9)\n-63D9B Comment Length        0000 (0)\n-63D9D Disk Start            0000 (0)\n-63D9F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63DA1 Ext File Attributes   00000000 (0)\n-63DA5 Local Header Offset   000051FB (20987)\n-63DA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63DA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63DDC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63DDE   Length              0005 (5)\n-63DE0   Flags               01 (1) 'Modification'\n-63DE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63DE5 CENTRAL HEADER #20    02014B50 (33639248)\n-63DE9 Created Zip Spec      14 (20) '2.0'\n-63DEA Created OS            00 (0) 'MS-DOS'\n-63DEB Extract Zip Spec      14 (20) '2.0'\n-63DEC Extract OS            00 (0) 'MS-DOS'\n-63DED General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-63DEF Compression Method    0000 (0) 'Stored'\n-63DF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63DF5 CRC                   846255CA (2221037002)\n-63DF9 Compressed Size       000013E9 (5097)\n-63DFD Uncompressed Size     000013E9 (5097)\n-63E01 Filename Length       0036 (54)\n-63E03 Extra Length          0009 (9)\n-63E05 Comment Length        0000 (0)\n-63E07 Disk Start            0000 (0)\n-63E09 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63E0B Ext File Attributes   00000000 (0)\n-63E0F Local Header Offset   00005E77 (24183)\n-63E13 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63E13: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63E49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63E4B   Length              0005 (5)\n-63E4D   Flags               01 (1) 'Modification'\n-63E4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63E52 CENTRAL HEADER #21    02014B50 (33639248)\n-63E56 Created Zip Spec      14 (20) '2.0'\n-63E57 Created OS            00 (0) 'MS-DOS'\n-63E58 Extract Zip Spec      14 (20) '2.0'\n-63E59 Extract OS            00 (0) 'MS-DOS'\n-63E5A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-63E5C Compression Method    0000 (0) 'Stored'\n-63E5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63E62 CRC                   60EF8975 (1626311029)\n-63E66 Compressed Size       000004EA (1258)\n-63E6A Uncompressed Size     000004EA (1258)\n-63E6E Filename Length       0039 (57)\n-63E70 Extra Length          0009 (9)\n-63E72 Comment Length        0000 (0)\n-63E74 Disk Start            0000 (0)\n-63E76 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63E78 Ext File Attributes   00000000 (0)\n-63E7C Local Header Offset   000072CD (29389)\n-63E80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63E80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63EB9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63EBB   Length              0005 (5)\n-63EBD   Flags               01 (1) 'Modification'\n-63EBE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63EC2 CENTRAL HEADER #22    02014B50 (33639248)\n-63EC6 Created Zip Spec      14 (20) '2.0'\n-63EC7 Created OS            00 (0) 'MS-DOS'\n-63EC8 Extract Zip Spec      14 (20) '2.0'\n-63EC9 Extract OS            00 (0) 'MS-DOS'\n-63ECA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-63ECC Compression Method    0000 (0) 'Stored'\n-63ECE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63ED2 CRC                   A9DEB6E6 (2849945318)\n-63ED6 Compressed Size       00000AA1 (2721)\n-63EDA Uncompressed Size     00000AA1 (2721)\n-63EDE Filename Length       003F (63)\n-63EE0 Extra Length          0009 (9)\n-63EE2 Comment Length        0000 (0)\n-63EE4 Disk Start            0000 (0)\n-63EE6 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63EE8 Ext File Attributes   00000000 (0)\n-63EEC Local Header Offset   00007827 (30759)\n-63EF0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63EF0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63F2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63F31   Length              0005 (5)\n-63F33   Flags               01 (1) 'Modification'\n-63F34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63F38 CENTRAL HEADER #23    02014B50 (33639248)\n-63F3C Created Zip Spec      14 (20) '2.0'\n-63F3D Created OS            00 (0) 'MS-DOS'\n-63F3E Extract Zip Spec      14 (20) '2.0'\n-63F3F Extract OS            00 (0) 'MS-DOS'\n-63F40 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-63F42 Compression Method    0000 (0) 'Stored'\n-63F44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63F48 CRC                   7023D1A9 (1881395625)\n-63F4C Compressed Size       000024C5 (9413)\n-63F50 Uncompressed Size     000024C5 (9413)\n-63F54 Filename Length       0037 (55)\n-63F56 Extra Length          0009 (9)\n-63F58 Comment Length        0000 (0)\n-63F5A Disk Start            0000 (0)\n-63F5C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63F5E Ext File Attributes   00000000 (0)\n-63F62 Local Header Offset   0000833E (33598)\n-63F66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63F66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63F9D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63F9F   Length              0005 (5)\n-63FA1   Flags               01 (1) 'Modification'\n-63FA2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63FA6 CENTRAL HEADER #24    02014B50 (33639248)\n-63FAA Created Zip Spec      14 (20) '2.0'\n-63FAB Created OS            00 (0) 'MS-DOS'\n-63FAC Extract Zip Spec      14 (20) '2.0'\n-63FAD Extract OS            00 (0) 'MS-DOS'\n-63FAE General Purpose Flag  0000 (0)\n-63FB0 Compression Method    0000 (0) 'Stored'\n-63FB2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63FB6 CRC                   00000000 (0)\n-63FBA Compressed Size       00000000 (0)\n-63FBE Uncompressed Size     00000000 (0)\n-63FC2 Filename Length       001F (31)\n-63FC4 Extra Length          0009 (9)\n-63FC6 Comment Length        0000 (0)\n-63FC8 Disk Start            0000 (0)\n-63FCA Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-63FCC Ext File Attributes   00000000 (0)\n-63FD0 Local Header Offset   0000A871 (43121)\n-63FD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63FD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63FF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63FF5   Length              0005 (5)\n-63FF7   Flags               01 (1) 'Modification'\n-63FF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63FFC CENTRAL HEADER #25    02014B50 (33639248)\n-64000 Created Zip Spec      14 (20) '2.0'\n-64001 Created OS            00 (0) 'MS-DOS'\n-64002 Extract Zip Spec      14 (20) '2.0'\n-64003 Extract OS            00 (0) 'MS-DOS'\n-64004 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64006 Compression Method    0000 (0) 'Stored'\n-64008 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6400C CRC                   27E382EF (669221615)\n-64010 Compressed Size       00000692 (1682)\n-64014 Uncompressed Size     00000692 (1682)\n-64018 Filename Length       0045 (69)\n-6401A Extra Length          0009 (9)\n-6401C Comment Length        0000 (0)\n-6401E Disk Start            0000 (0)\n-64020 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64022 Ext File Attributes   00000000 (0)\n-64026 Local Header Offset   0000A8B7 (43191)\n-6402A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6402A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6406F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64071   Length              0005 (5)\n-64073   Flags               01 (1) 'Modification'\n-64074   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64078 CENTRAL HEADER #26    02014B50 (33639248)\n-6407C Created Zip Spec      14 (20) '2.0'\n-6407D Created OS            00 (0) 'MS-DOS'\n-6407E Extract Zip Spec      14 (20) '2.0'\n-6407F Extract OS            00 (0) 'MS-DOS'\n-64080 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64082 Compression Method    0000 (0) 'Stored'\n-64084 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64088 CRC                   4A264766 (1244022630)\n-6408C Compressed Size       0000052C (1324)\n-64090 Uncompressed Size     0000052C (1324)\n-64094 Filename Length       0042 (66)\n-64096 Extra Length          0009 (9)\n-64098 Comment Length        0000 (0)\n-6409A Disk Start            0000 (0)\n-6409C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6409E Ext File Attributes   00000000 (0)\n-640A2 Local Header Offset   0000AFC5 (44997)\n-640A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x640A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-640E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-640EA   Length              0005 (5)\n-640EC   Flags               01 (1) 'Modification'\n-640ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-640F1 CENTRAL HEADER #27    02014B50 (33639248)\n-640F5 Created Zip Spec      14 (20) '2.0'\n-640F6 Created OS            00 (0) 'MS-DOS'\n-640F7 Extract Zip Spec      14 (20) '2.0'\n-640F8 Extract OS            00 (0) 'MS-DOS'\n-640F9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-640FB Compression Method    0000 (0) 'Stored'\n-640FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64101 CRC                   03008853 (50366547)\n-64105 Compressed Size       000006DA (1754)\n-64109 Uncompressed Size     000006DA (1754)\n-6410D Filename Length       0037 (55)\n-6410F Extra Length          0009 (9)\n-64111 Comment Length        0000 (0)\n-64113 Disk Start            0000 (0)\n-64115 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64117 Ext File Attributes   00000000 (0)\n-6411B Local Header Offset   0000B56A (46442)\n-6411F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6411F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64156 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64158   Length              0005 (5)\n-6415A   Flags               01 (1) 'Modification'\n-6415B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6415F CENTRAL HEADER #28    02014B50 (33639248)\n-64163 Created Zip Spec      14 (20) '2.0'\n-64164 Created OS            00 (0) 'MS-DOS'\n-64165 Extract Zip Spec      14 (20) '2.0'\n-64166 Extract OS            00 (0) 'MS-DOS'\n-64167 General Purpose Flag  0000 (0)\n-64169 Compression Method    0000 (0) 'Stored'\n-6416B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6416F CRC                   00000000 (0)\n-64173 Compressed Size       00000000 (0)\n-64177 Uncompressed Size     00000000 (0)\n-6417B Filename Length       0015 (21)\n-6417D Extra Length          0009 (9)\n-6417F Comment Length        0000 (0)\n-64181 Disk Start            0000 (0)\n-64183 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64185 Ext File Attributes   00000000 (0)\n-64189 Local Header Offset   0000BCB2 (48306)\n-6418D Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6418D: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-641A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-641A4   Length              0005 (5)\n-641A6   Flags               01 (1) 'Modification'\n-641A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-641AB CENTRAL HEADER #29    02014B50 (33639248)\n-641AF Created Zip Spec      14 (20) '2.0'\n-641B0 Created OS            00 (0) 'MS-DOS'\n-641B1 Extract Zip Spec      14 (20) '2.0'\n-641B2 Extract OS            00 (0) 'MS-DOS'\n-641B3 General Purpose Flag  0000 (0)\n-641B5 Compression Method    0000 (0) 'Stored'\n-641B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-641BB CRC                   00000000 (0)\n-641BF Compressed Size       00000000 (0)\n-641C3 Uncompressed Size     00000000 (0)\n-641C7 Filename Length       001E (30)\n-641C9 Extra Length          0009 (9)\n-641CB Comment Length        0000 (0)\n-641CD Disk Start            0000 (0)\n-641CF Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-641D1 Ext File Attributes   00000000 (0)\n-641D5 Local Header Offset   0000BCEE (48366)\n-641D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x641D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-641F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-641F9   Length              0005 (5)\n-641FB   Flags               01 (1) 'Modification'\n-641FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64200 CENTRAL HEADER #30    02014B50 (33639248)\n-64204 Created Zip Spec      14 (20) '2.0'\n-64205 Created OS            00 (0) 'MS-DOS'\n-64206 Extract Zip Spec      14 (20) '2.0'\n-64207 Extract OS            00 (0) 'MS-DOS'\n-64208 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6420A Compression Method    0000 (0) 'Stored'\n-6420C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64210 CRC                   E30F75DE (3809441246)\n-64214 Compressed Size       00000433 (1075)\n-64218 Uncompressed Size     00000433 (1075)\n-6421C Filename Length       0038 (56)\n-6421E Extra Length          0009 (9)\n-64220 Comment Length        0000 (0)\n-64222 Disk Start            0000 (0)\n-64224 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64226 Ext File Attributes   00000000 (0)\n-6422A Local Header Offset   0000BD33 (48435)\n-6422E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6422E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64266 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64268   Length              0005 (5)\n-6426A   Flags               01 (1) 'Modification'\n-6426B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6426F CENTRAL HEADER #31    02014B50 (33639248)\n-64273 Created Zip Spec      14 (20) '2.0'\n-64274 Created OS            00 (0) 'MS-DOS'\n-64275 Extract Zip Spec      14 (20) '2.0'\n-64276 Extract OS            00 (0) 'MS-DOS'\n-64277 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64279 Compression Method    0000 (0) 'Stored'\n-6427B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6427F CRC                   74C75A24 (1959221796)\n-64283 Compressed Size       0000049A (1178)\n-64287 Uncompressed Size     0000049A (1178)\n-6428B Filename Length       0043 (67)\n-6428D Extra Length          0009 (9)\n-6428F Comment Length        0000 (0)\n-64291 Disk Start            0000 (0)\n-64293 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64295 Ext File Attributes   00000000 (0)\n-64299 Local Header Offset   0000C1D5 (49621)\n-6429D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6429D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-642E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-642E2   Length              0005 (5)\n-642E4   Flags               01 (1) 'Modification'\n-642E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-642E9 CENTRAL HEADER #32    02014B50 (33639248)\n-642ED Created Zip Spec      14 (20) '2.0'\n-642EE Created OS            00 (0) 'MS-DOS'\n-642EF Extract Zip Spec      14 (20) '2.0'\n-642F0 Extract OS            00 (0) 'MS-DOS'\n-642F1 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-642F3 Compression Method    0000 (0) 'Stored'\n-642F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-642F9 CRC                   5A0F0092 (1510932626)\n-642FD Compressed Size       0000054C (1356)\n-64301 Uncompressed Size     0000054C (1356)\n-64305 Filename Length       0044 (68)\n-64307 Extra Length          0009 (9)\n-64309 Comment Length        0000 (0)\n-6430B Disk Start            0000 (0)\n-6430D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6430F Ext File Attributes   00000000 (0)\n-64313 Local Header Offset   0000C6E9 (50921)\n-64317 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64317: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6435B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6435D   Length              0005 (5)\n-6435F   Flags               01 (1) 'Modification'\n-64360   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64364 CENTRAL HEADER #33    02014B50 (33639248)\n-64368 Created Zip Spec      14 (20) '2.0'\n-64369 Created OS            00 (0) 'MS-DOS'\n-6436A Extract Zip Spec      14 (20) '2.0'\n-6436B Extract OS            00 (0) 'MS-DOS'\n-6436C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6436E Compression Method    0000 (0) 'Stored'\n-64370 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64374 CRC                   CFC03DEB (3485482475)\n-64378 Compressed Size       00001446 (5190)\n-6437C Uncompressed Size     00001446 (5190)\n-64380 Filename Length       0036 (54)\n-64382 Extra Length          0009 (9)\n-64384 Comment Length        0000 (0)\n-64386 Disk Start            0000 (0)\n-64388 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6438A Ext File Attributes   00000000 (0)\n-6438E Local Header Offset   0000CCB0 (52400)\n-64392 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64392: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-643C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-643CA   Length              0005 (5)\n-643CC   Flags               01 (1) 'Modification'\n-643CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-643D1 CENTRAL HEADER #34    02014B50 (33639248)\n-643D5 Created Zip Spec      14 (20) '2.0'\n-643D6 Created OS            00 (0) 'MS-DOS'\n-643D7 Extract Zip Spec      14 (20) '2.0'\n-643D8 Extract OS            00 (0) 'MS-DOS'\n-643D9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-643DB Compression Method    0000 (0) 'Stored'\n-643DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-643E1 CRC                   DAAE3E94 (3668852372)\n-643E5 Compressed Size       00000B96 (2966)\n-643E9 Uncompressed Size     00000B96 (2966)\n-643ED Filename Length       004B (75)\n-643EF Extra Length          0009 (9)\n-643F1 Comment Length        0000 (0)\n-643F3 Disk Start            0000 (0)\n-643F5 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-643F7 Ext File Attributes   00000000 (0)\n-643FB Local Header Offset   0000E163 (57699)\n-643FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x643FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6444A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6444C   Length              0005 (5)\n-6444E   Flags               01 (1) 'Modification'\n-6444F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64453 CENTRAL HEADER #35    02014B50 (33639248)\n-64457 Created Zip Spec      14 (20) '2.0'\n-64458 Created OS            00 (0) 'MS-DOS'\n-64459 Extract Zip Spec      14 (20) '2.0'\n-6445A Extract OS            00 (0) 'MS-DOS'\n-6445B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6445D Compression Method    0000 (0) 'Stored'\n-6445F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64463 CRC                   8DE30265 (2380464741)\n-64467 Compressed Size       000007C7 (1991)\n-6446B Uncompressed Size     000007C7 (1991)\n-6446F Filename Length       0038 (56)\n-64471 Extra Length          0009 (9)\n-64473 Comment Length        0000 (0)\n-64475 Disk Start            0000 (0)\n-64477 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64479 Ext File Attributes   00000000 (0)\n-6447D Local Header Offset   0000ED7B (60795)\n-64481 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64481: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-644B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-644BB   Length              0005 (5)\n-644BD   Flags               01 (1) 'Modification'\n-644BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-644C2 CENTRAL HEADER #36    02014B50 (33639248)\n-644C6 Created Zip Spec      14 (20) '2.0'\n-644C7 Created OS            00 (0) 'MS-DOS'\n-644C8 Extract Zip Spec      14 (20) '2.0'\n-644C9 Extract OS            00 (0) 'MS-DOS'\n-644CA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-644CC Compression Method    0000 (0) 'Stored'\n-644CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-644D2 CRC                   B0BFE5FC (2965366268)\n-644D6 Compressed Size       00000E69 (3689)\n-644DA Uncompressed Size     00000E69 (3689)\n-644DE Filename Length       0030 (48)\n-644E0 Extra Length          0009 (9)\n-644E2 Comment Length        0000 (0)\n-644E4 Disk Start            0000 (0)\n-644E6 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-644E8 Ext File Attributes   00000000 (0)\n-644EC Local Header Offset   0000F5B1 (62897)\n-644F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x644F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64520 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64522   Length              0005 (5)\n-64524   Flags               01 (1) 'Modification'\n-64525   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64529 CENTRAL HEADER #37    02014B50 (33639248)\n-6452D Created Zip Spec      14 (20) '2.0'\n-6452E Created OS            00 (0) 'MS-DOS'\n-6452F Extract Zip Spec      14 (20) '2.0'\n-64530 Extract OS            00 (0) 'MS-DOS'\n-64531 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64533 Compression Method    0000 (0) 'Stored'\n-64535 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64539 CRC                   BB4A5EDA (3142213338)\n-6453D Compressed Size       00000AF8 (2808)\n-64541 Uncompressed Size     00000AF8 (2808)\n-64545 Filename Length       003B (59)\n-64547 Extra Length          0009 (9)\n-64549 Comment Length        0000 (0)\n-6454B Disk Start            0000 (0)\n-6454D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6454F Ext File Attributes   00000000 (0)\n-64553 Local Header Offset   00010481 (66689)\n-64557 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64557: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64592 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64594   Length              0005 (5)\n-64596   Flags               01 (1) 'Modification'\n-64597   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6459B CENTRAL HEADER #38    02014B50 (33639248)\n-6459F Created Zip Spec      14 (20) '2.0'\n-645A0 Created OS            00 (0) 'MS-DOS'\n-645A1 Extract Zip Spec      14 (20) '2.0'\n-645A2 Extract OS            00 (0) 'MS-DOS'\n-645A3 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-645A5 Compression Method    0000 (0) 'Stored'\n-645A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-645AB CRC                   A03B05A8 (2688222632)\n-645AF Compressed Size       00000F7E (3966)\n-645B3 Uncompressed Size     00000F7E (3966)\n-645B7 Filename Length       0030 (48)\n-645B9 Extra Length          0009 (9)\n-645BB Comment Length        0000 (0)\n-645BD Disk Start            0000 (0)\n-645BF Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-645C1 Ext File Attributes   00000000 (0)\n-645C5 Local Header Offset   00010FEB (69611)\n-645C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x645C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-645F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-645FB   Length              0005 (5)\n-645FD   Flags               01 (1) 'Modification'\n-645FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64602 CENTRAL HEADER #39    02014B50 (33639248)\n-64606 Created Zip Spec      14 (20) '2.0'\n-64607 Created OS            00 (0) 'MS-DOS'\n-64608 Extract Zip Spec      14 (20) '2.0'\n-64609 Extract OS            00 (0) 'MS-DOS'\n-6460A General Purpose Flag  0000 (0)\n-6460C Compression Method    0000 (0) 'Stored'\n-6460E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64612 CRC                   00000000 (0)\n-64616 Compressed Size       00000000 (0)\n-6461A Uncompressed Size     00000000 (0)\n-6461E Filename Length       001F (31)\n-64620 Extra Length          0009 (9)\n-64622 Comment Length        0000 (0)\n-64624 Disk Start            0000 (0)\n-64626 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64628 Ext File Attributes   00000000 (0)\n-6462C Local Header Offset   00011FD0 (73680)\n-64630 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64630: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6464F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64651   Length              0005 (5)\n-64653   Flags               01 (1) 'Modification'\n-64654   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64658 CENTRAL HEADER #40    02014B50 (33639248)\n-6465C Created Zip Spec      14 (20) '2.0'\n-6465D Created OS            00 (0) 'MS-DOS'\n-6465E Extract Zip Spec      14 (20) '2.0'\n-6465F Extract OS            00 (0) 'MS-DOS'\n-64660 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64662 Compression Method    0000 (0) 'Stored'\n-64664 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64668 CRC                   E6B32CE0 (3870502112)\n-6466C Compressed Size       00000B6F (2927)\n-64670 Uncompressed Size     00000B6F (2927)\n-64674 Filename Length       0032 (50)\n-64676 Extra Length          0009 (9)\n-64678 Comment Length        0000 (0)\n-6467A Disk Start            0000 (0)\n-6467C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6467E Ext File Attributes   00000000 (0)\n-64682 Local Header Offset   00012016 (73750)\n-64686 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64686: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-646B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-646BA   Length              0005 (5)\n-646BC   Flags               01 (1) 'Modification'\n-646BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-646C1 CENTRAL HEADER #41    02014B50 (33639248)\n-646C5 Created Zip Spec      14 (20) '2.0'\n-646C6 Created OS            00 (0) 'MS-DOS'\n-646C7 Extract Zip Spec      14 (20) '2.0'\n-646C8 Extract OS            00 (0) 'MS-DOS'\n-646C9 General Purpose Flag  0000 (0)\n-646CB Compression Method    0000 (0) 'Stored'\n-646CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-646D1 CRC                   00000000 (0)\n-646D5 Compressed Size       00000000 (0)\n-646D9 Uncompressed Size     00000000 (0)\n-646DD Filename Length       001B (27)\n-646DF Extra Length          0009 (9)\n-646E1 Comment Length        0000 (0)\n-646E3 Disk Start            0000 (0)\n-646E5 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-646E7 Ext File Attributes   00000000 (0)\n-646EB Local Header Offset   00012BEE (76782)\n-646EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x646EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6470A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6470C   Length              0005 (5)\n-6470E   Flags               01 (1) 'Modification'\n-6470F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64713 CENTRAL HEADER #42    02014B50 (33639248)\n-64717 Created Zip Spec      14 (20) '2.0'\n-64718 Created OS            00 (0) 'MS-DOS'\n-64719 Extract Zip Spec      14 (20) '2.0'\n-6471A Extract OS            00 (0) 'MS-DOS'\n-6471B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6471D Compression Method    0000 (0) 'Stored'\n-6471F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64723 CRC                   A23E9949 (2722011465)\n-64727 Compressed Size       00000CA7 (3239)\n-6472B Uncompressed Size     00000CA7 (3239)\n-6472F Filename Length       002A (42)\n-64731 Extra Length          0009 (9)\n-64733 Comment Length        0000 (0)\n-64735 Disk Start            0000 (0)\n-64737 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64739 Ext File Attributes   00000000 (0)\n-6473D Local Header Offset   00012C30 (76848)\n-64741 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64741: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6476B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6476D   Length              0005 (5)\n-6476F   Flags               01 (1) 'Modification'\n-64770   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64774 CENTRAL HEADER #43    02014B50 (33639248)\n-64778 Created Zip Spec      14 (20) '2.0'\n-64779 Created OS            00 (0) 'MS-DOS'\n-6477A Extract Zip Spec      14 (20) '2.0'\n-6477B Extract OS            00 (0) 'MS-DOS'\n-6477C General Purpose Flag  0000 (0)\n-6477E Compression Method    0000 (0) 'Stored'\n-64780 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64784 CRC                   00000000 (0)\n-64788 Compressed Size       00000000 (0)\n-6478C Uncompressed Size     00000000 (0)\n-64790 Filename Length       001D (29)\n-64792 Extra Length          0009 (9)\n-64794 Comment Length        0000 (0)\n-64796 Disk Start            0000 (0)\n-64798 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6479A Ext File Attributes   00000000 (0)\n-6479E Local Header Offset   00013938 (80184)\n-647A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x647A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-647BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-647C1   Length              0005 (5)\n-647C3   Flags               01 (1) 'Modification'\n-647C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-647C8 CENTRAL HEADER #44    02014B50 (33639248)\n-647CC Created Zip Spec      14 (20) '2.0'\n-647CD Created OS            00 (0) 'MS-DOS'\n-647CE Extract Zip Spec      14 (20) '2.0'\n-647CF Extract OS            00 (0) 'MS-DOS'\n-647D0 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-647D2 Compression Method    0000 (0) 'Stored'\n-647D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-647D8 CRC                   25124015 (621953045)\n-647DC Compressed Size       0000119A (4506)\n-647E0 Uncompressed Size     0000119A (4506)\n-647E4 Filename Length       0030 (48)\n-647E6 Extra Length          0009 (9)\n-647E8 Comment Length        0000 (0)\n-647EA Disk Start            0000 (0)\n-647EC Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-647EE Ext File Attributes   00000000 (0)\n-647F2 Local Header Offset   0001397C (80252)\n-647F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x647F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64826 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64828   Length              0005 (5)\n-6482A   Flags               01 (1) 'Modification'\n-6482B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6482F CENTRAL HEADER #45    02014B50 (33639248)\n-64833 Created Zip Spec      14 (20) '2.0'\n-64834 Created OS            00 (0) 'MS-DOS'\n-64835 Extract Zip Spec      14 (20) '2.0'\n-64836 Extract OS            00 (0) 'MS-DOS'\n-64837 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64839 Compression Method    0000 (0) 'Stored'\n-6483B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6483F CRC                   5996933F (1503040319)\n-64843 Compressed Size       000019C0 (6592)\n-64847 Uncompressed Size     000019C0 (6592)\n-6484B Filename Length       003C (60)\n-6484D Extra Length          0009 (9)\n-6484F Comment Length        0000 (0)\n-64851 Disk Start            0000 (0)\n-64853 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64855 Ext File Attributes   00000000 (0)\n-64859 Local Header Offset   00014B7D (84861)\n-6485D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6485D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64899 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6489B   Length              0005 (5)\n-6489D   Flags               01 (1) 'Modification'\n-6489E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-648A2 CENTRAL HEADER #46    02014B50 (33639248)\n-648A6 Created Zip Spec      14 (20) '2.0'\n-648A7 Created OS            00 (0) 'MS-DOS'\n-648A8 Extract Zip Spec      14 (20) '2.0'\n-648A9 Extract OS            00 (0) 'MS-DOS'\n-648AA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-648AC Compression Method    0000 (0) 'Stored'\n-648AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-648B2 CRC                   421C3746 (1109145414)\n-648B6 Compressed Size       000004CF (1231)\n-648BA Uncompressed Size     000004CF (1231)\n-648BE Filename Length       0036 (54)\n-648C0 Extra Length          0009 (9)\n-648C2 Comment Length        0000 (0)\n-648C4 Disk Start            0000 (0)\n-648C6 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-648C8 Ext File Attributes   00000000 (0)\n-648CC Local Header Offset   000165B0 (91568)\n-648D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x648D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64906 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64908   Length              0005 (5)\n-6490A   Flags               01 (1) 'Modification'\n-6490B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6490F CENTRAL HEADER #47    02014B50 (33639248)\n-64913 Created Zip Spec      14 (20) '2.0'\n-64914 Created OS            00 (0) 'MS-DOS'\n-64915 Extract Zip Spec      14 (20) '2.0'\n-64916 Extract OS            00 (0) 'MS-DOS'\n-64917 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64919 Compression Method    0000 (0) 'Stored'\n-6491B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6491F CRC                   0F927E5E (261258846)\n-64923 Compressed Size       00001348 (4936)\n-64927 Uncompressed Size     00001348 (4936)\n-6492B Filename Length       0033 (51)\n-6492D Extra Length          0009 (9)\n-6492F Comment Length        0000 (0)\n-64931 Disk Start            0000 (0)\n-64933 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64935 Ext File Attributes   00000000 (0)\n-64939 Local Header Offset   00016AEC (92908)\n-6493D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6493D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64970 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64972   Length              0005 (5)\n-64974   Flags               01 (1) 'Modification'\n-64975   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64979 CENTRAL HEADER #48    02014B50 (33639248)\n-6497D Created Zip Spec      14 (20) '2.0'\n-6497E Created OS            00 (0) 'MS-DOS'\n-6497F Extract Zip Spec      14 (20) '2.0'\n-64980 Extract OS            00 (0) 'MS-DOS'\n-64981 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64983 Compression Method    0000 (0) 'Stored'\n-64985 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64989 CRC                   CDF9EC0F (3455708175)\n-6498D Compressed Size       000008C5 (2245)\n-64991 Uncompressed Size     000008C5 (2245)\n-64995 Filename Length       0034 (52)\n-64997 Extra Length          0009 (9)\n-64999 Comment Length        0000 (0)\n-6499B Disk Start            0000 (0)\n-6499D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6499F Ext File Attributes   00000000 (0)\n-649A3 Local Header Offset   00017E9E (97950)\n-649A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+59863 DATA DESCRIPTOR       08074B50 (134695760)\n+59867 CRC                   81F8F5BE (2180576702)\n+5986B Compressed Size       00000100 (256)\n+5986F Uncompressed Size     00000100 (256)\n+\n+59873 LOCAL HEADER #160     04034B50 (67324752)\n+59877 Extract Zip Spec      14 (20) '2.0'\n+59878 Extract OS            00 (0) 'MS-DOS'\n+59879 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+5987B Compression Method    0000 (0) 'Stored'\n+5987D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+59881 CRC                   00000000 (0)\n+59885 Compressed Size       00000000 (0)\n+59889 Uncompressed Size     00000000 (0)\n+5988D Filename Length       002D (45)\n+5988F Extra Length          0009 (9)\n+59891 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x59891: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+598BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+598C0   Length              0005 (5)\n+598C2   Flags               01 (1) 'Modification'\n+598C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+598C7 PAYLOAD\n+\n+59AFC DATA DESCRIPTOR       08074B50 (134695760)\n+59B00 CRC                   444DEB39 (1145957177)\n+59B04 Compressed Size       00000235 (565)\n+59B08 Uncompressed Size     00000235 (565)\n+\n+59B0C LOCAL HEADER #161     04034B50 (67324752)\n+59B10 Extract Zip Spec      14 (20) '2.0'\n+59B11 Extract OS            00 (0) 'MS-DOS'\n+59B12 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+59B14 Compression Method    0000 (0) 'Stored'\n+59B16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+59B1A CRC                   00000000 (0)\n+59B1E Compressed Size       00000000 (0)\n+59B22 Uncompressed Size     00000000 (0)\n+59B26 Filename Length       0031 (49)\n+59B28 Extra Length          0009 (9)\n+59B2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x59B2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+59B5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+59B5D   Length              0005 (5)\n+59B5F   Flags               01 (1) 'Modification'\n+59B60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+59B64 PAYLOAD\n+\n+59C74 DATA DESCRIPTOR       08074B50 (134695760)\n+59C78 CRC                   4D79ACBE (1299819710)\n+59C7C Compressed Size       00000110 (272)\n+59C80 Uncompressed Size     00000110 (272)\n+\n+59C84 LOCAL HEADER #162     04034B50 (67324752)\n+59C88 Extract Zip Spec      14 (20) '2.0'\n+59C89 Extract OS            00 (0) 'MS-DOS'\n+59C8A General Purpose Flag  0000 (0)\n+59C8C Compression Method    0000 (0) 'Stored'\n+59C8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+59C92 CRC                   00000000 (0)\n+59C96 Compressed Size       00000000 (0)\n+59C9A Uncompressed Size     00000000 (0)\n+59C9E Filename Length       001B (27)\n+59CA0 Extra Length          0009 (9)\n+59CA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x59CA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+59CBD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+59CBF   Length              0005 (5)\n+59CC1   Flags               01 (1) 'Modification'\n+59CC2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+59CC6 LOCAL HEADER #163     04034B50 (67324752)\n+59CCA Extract Zip Spec      14 (20) '2.0'\n+59CCB Extract OS            00 (0) 'MS-DOS'\n+59CCC General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+59CCE Compression Method    0000 (0) 'Stored'\n+59CD0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+59CD4 CRC                   00000000 (0)\n+59CD8 Compressed Size       00000000 (0)\n+59CDC Uncompressed Size     00000000 (0)\n+59CE0 Filename Length       003A (58)\n+59CE2 Extra Length          0009 (9)\n+59CE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x59CE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+59D1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+59D20   Length              0005 (5)\n+59D22   Flags               01 (1) 'Modification'\n+59D23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+59D27 PAYLOAD\n+\n+5A36B DATA DESCRIPTOR       08074B50 (134695760)\n+5A36F CRC                   2A016775 (704735093)\n+5A373 Compressed Size       00000644 (1604)\n+5A377 Uncompressed Size     00000644 (1604)\n+\n+5A37B LOCAL HEADER #164     04034B50 (67324752)\n+5A37F Extract Zip Spec      14 (20) '2.0'\n+5A380 Extract OS            00 (0) 'MS-DOS'\n+5A381 General Purpose Flag  0000 (0)\n+5A383 Compression Method    0000 (0) 'Stored'\n+5A385 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5A389 CRC                   00000000 (0)\n+5A38D Compressed Size       00000000 (0)\n+5A391 Uncompressed Size     00000000 (0)\n+5A395 Filename Length       0016 (22)\n+5A397 Extra Length          0009 (9)\n+5A399 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A399: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5A3AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5A3B1   Length              0005 (5)\n+5A3B3   Flags               01 (1) 'Modification'\n+5A3B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5A3B8 LOCAL HEADER #165     04034B50 (67324752)\n+5A3BC Extract Zip Spec      14 (20) '2.0'\n+5A3BD Extract OS            00 (0) 'MS-DOS'\n+5A3BE General Purpose Flag  0000 (0)\n+5A3C0 Compression Method    0000 (0) 'Stored'\n+5A3C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5A3C6 CRC                   00000000 (0)\n+5A3CA Compressed Size       00000000 (0)\n+5A3CE Uncompressed Size     00000000 (0)\n+5A3D2 Filename Length       0020 (32)\n+5A3D4 Extra Length          0009 (9)\n+5A3D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A3D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5A3F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5A3F8   Length              0005 (5)\n+5A3FA   Flags               01 (1) 'Modification'\n+5A3FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5A3FF LOCAL HEADER #166     04034B50 (67324752)\n+5A403 Extract Zip Spec      14 (20) '2.0'\n+5A404 Extract OS            00 (0) 'MS-DOS'\n+5A405 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+5A407 Compression Method    0000 (0) 'Stored'\n+5A409 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5A40D CRC                   00000000 (0)\n+5A411 Compressed Size       00000000 (0)\n+5A415 Uncompressed Size     00000000 (0)\n+5A419 Filename Length       003A (58)\n+5A41B Extra Length          0009 (9)\n+5A41D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A41D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5A457 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5A459   Length              0005 (5)\n+5A45B   Flags               01 (1) 'Modification'\n+5A45C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5A460 PAYLOAD\n+\n+5B1F2 DATA DESCRIPTOR       08074B50 (134695760)\n+5B1F6 CRC                   200C4CF6 (537677046)\n+5B1FA Compressed Size       00000D92 (3474)\n+5B1FE Uncompressed Size     00000D92 (3474)\n+\n+5B202 LOCAL HEADER #167     04034B50 (67324752)\n+5B206 Extract Zip Spec      14 (20) '2.0'\n+5B207 Extract OS            00 (0) 'MS-DOS'\n+5B208 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+5B20A Compression Method    0000 (0) 'Stored'\n+5B20C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B210 CRC                   00000000 (0)\n+5B214 Compressed Size       00000000 (0)\n+5B218 Uncompressed Size     00000000 (0)\n+5B21C Filename Length       0038 (56)\n+5B21E Extra Length          0009 (9)\n+5B220 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B220: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B258 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B25A   Length              0005 (5)\n+5B25C   Flags               01 (1) 'Modification'\n+5B25D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5B261 PAYLOAD\n+\n+5BDEE DATA DESCRIPTOR       08074B50 (134695760)\n+5BDF2 CRC                   BE79378C (3195615116)\n+5BDF6 Compressed Size       00000B8D (2957)\n+5BDFA Uncompressed Size     00000B8D (2957)\n+\n+5BDFE LOCAL HEADER #168     04034B50 (67324752)\n+5BE02 Extract Zip Spec      14 (20) '2.0'\n+5BE03 Extract OS            00 (0) 'MS-DOS'\n+5BE04 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+5BE06 Compression Method    0000 (0) 'Stored'\n+5BE08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5BE0C CRC                   00000000 (0)\n+5BE10 Compressed Size       00000000 (0)\n+5BE14 Uncompressed Size     00000000 (0)\n+5BE18 Filename Length       0036 (54)\n+5BE1A Extra Length          0009 (9)\n+5BE1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BE1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5BE52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5BE54   Length              0005 (5)\n+5BE56   Flags               01 (1) 'Modification'\n+5BE57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5BE5B PAYLOAD\n+\n+5CD1D DATA DESCRIPTOR       08074B50 (134695760)\n+5CD21 CRC                   44308AEF (1144031983)\n+5CD25 Compressed Size       00000EC2 (3778)\n+5CD29 Uncompressed Size     00000EC2 (3778)\n+\n+5CD2D LOCAL HEADER #169     04034B50 (67324752)\n+5CD31 Extract Zip Spec      14 (20) '2.0'\n+5CD32 Extract OS            00 (0) 'MS-DOS'\n+5CD33 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+5CD35 Compression Method    0000 (0) 'Stored'\n+5CD37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5CD3B CRC                   00000000 (0)\n+5CD3F Compressed Size       00000000 (0)\n+5CD43 Uncompressed Size     00000000 (0)\n+5CD47 Filename Length       0040 (64)\n+5CD49 Extra Length          0009 (9)\n+5CD4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CD4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5CD8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5CD8D   Length              0005 (5)\n+5CD8F   Flags               01 (1) 'Modification'\n+5CD90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5CD94 PAYLOAD\n+\n+5E6C4 DATA DESCRIPTOR       08074B50 (134695760)\n+5E6C8 CRC                   45818429 (1166115881)\n+5E6CC Compressed Size       00001930 (6448)\n+5E6D0 Uncompressed Size     00001930 (6448)\n+\n+5E6D4 LOCAL HEADER #170     04034B50 (67324752)\n+5E6D8 Extract Zip Spec      14 (20) '2.0'\n+5E6D9 Extract OS            00 (0) 'MS-DOS'\n+5E6DA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+5E6DC Compression Method    0000 (0) 'Stored'\n+5E6DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E6E2 CRC                   00000000 (0)\n+5E6E6 Compressed Size       00000000 (0)\n+5E6EA Uncompressed Size     00000000 (0)\n+5E6EE Filename Length       004F (79)\n+5E6F0 Extra Length          0009 (9)\n+5E6F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E6F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E741 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E743   Length              0005 (5)\n+5E745   Flags               01 (1) 'Modification'\n+5E746   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E74A PAYLOAD\n+\n+5EEA0 DATA DESCRIPTOR       08074B50 (134695760)\n+5EEA4 CRC                   1EE41C12 (518265874)\n+5EEA8 Compressed Size       00000756 (1878)\n+5EEAC Uncompressed Size     00000756 (1878)\n+\n+5EEB0 LOCAL HEADER #171     04034B50 (67324752)\n+5EEB4 Extract Zip Spec      14 (20) '2.0'\n+5EEB5 Extract OS            00 (0) 'MS-DOS'\n+5EEB6 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+5EEB8 Compression Method    0000 (0) 'Stored'\n+5EEBA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EEBE CRC                   00000000 (0)\n+5EEC2 Compressed Size       00000000 (0)\n+5EEC6 Uncompressed Size     00000000 (0)\n+5EECA Filename Length       004E (78)\n+5EECC Extra Length          0009 (9)\n+5EECE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EECE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EF1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EF1E   Length              0005 (5)\n+5EF20   Flags               01 (1) 'Modification'\n+5EF21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5EF25 PAYLOAD\n+\n+5FB94 DATA DESCRIPTOR       08074B50 (134695760)\n+5FB98 CRC                   C9942CBF (3381931199)\n+5FB9C Compressed Size       00000C6F (3183)\n+5FBA0 Uncompressed Size     00000C6F (3183)\n+\n+5FBA4 LOCAL HEADER #172     04034B50 (67324752)\n+5FBA8 Extract Zip Spec      14 (20) '2.0'\n+5FBA9 Extract OS            00 (0) 'MS-DOS'\n+5FBAA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+5FBAC Compression Method    0000 (0) 'Stored'\n+5FBAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FBB2 CRC                   00000000 (0)\n+5FBB6 Compressed Size       00000000 (0)\n+5FBBA Uncompressed Size     00000000 (0)\n+5FBBE Filename Length       0038 (56)\n+5FBC0 Extra Length          0009 (9)\n+5FBC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FBC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FBFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FBFC   Length              0005 (5)\n+5FBFE   Flags               01 (1) 'Modification'\n+5FBFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5FC03 PAYLOAD\n+\n+60A4A DATA DESCRIPTOR       08074B50 (134695760)\n+60A4E CRC                   45171DCC (1159142860)\n+60A52 Compressed Size       00000E47 (3655)\n+60A56 Uncompressed Size     00000E47 (3655)\n+\n+60A5A LOCAL HEADER #173     04034B50 (67324752)\n+60A5E Extract Zip Spec      14 (20) '2.0'\n+60A5F Extract OS            00 (0) 'MS-DOS'\n+60A60 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+60A62 Compression Method    0000 (0) 'Stored'\n+60A64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60A68 CRC                   00000000 (0)\n+60A6C Compressed Size       00000000 (0)\n+60A70 Uncompressed Size     00000000 (0)\n+60A74 Filename Length       0045 (69)\n+60A76 Extra Length          0009 (9)\n+60A78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60A78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60ABD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60ABF   Length              0005 (5)\n+60AC1   Flags               01 (1) 'Modification'\n+60AC2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+60AC6 PAYLOAD\n+\n+62B24 DATA DESCRIPTOR       08074B50 (134695760)\n+62B28 CRC                   A7ECACA5 (2817305765)\n+62B2C Compressed Size       0000205E (8286)\n+62B30 Uncompressed Size     0000205E (8286)\n+\n+62B34 LOCAL HEADER #174     04034B50 (67324752)\n+62B38 Extract Zip Spec      14 (20) '2.0'\n+62B39 Extract OS            00 (0) 'MS-DOS'\n+62B3A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+62B3C Compression Method    0000 (0) 'Stored'\n+62B3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62B42 CRC                   00000000 (0)\n+62B46 Compressed Size       00000000 (0)\n+62B4A Uncompressed Size     00000000 (0)\n+62B4E Filename Length       0038 (56)\n+62B50 Extra Length          0009 (9)\n+62B52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62B52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62B8A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+62B8C   Length              0005 (5)\n+62B8E   Flags               01 (1) 'Modification'\n+62B8F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+62B93 PAYLOAD\n+\n+62EF6 DATA DESCRIPTOR       08074B50 (134695760)\n+62EFA CRC                   0A993007 (177811463)\n+62EFE Compressed Size       00000363 (867)\n+62F02 Uncompressed Size     00000363 (867)\n+\n+62F06 LOCAL HEADER #175     04034B50 (67324752)\n+62F0A Extract Zip Spec      14 (20) '2.0'\n+62F0B Extract OS            00 (0) 'MS-DOS'\n+62F0C General Purpose Flag  0000 (0)\n+62F0E Compression Method    0000 (0) 'Stored'\n+62F10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62F14 CRC                   00000000 (0)\n+62F18 Compressed Size       00000000 (0)\n+62F1C Uncompressed Size     00000000 (0)\n+62F20 Filename Length       001D (29)\n+62F22 Extra Length          0009 (9)\n+62F24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62F24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62F41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+62F43   Length              0005 (5)\n+62F45   Flags               01 (1) 'Modification'\n+62F46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+62F4A LOCAL HEADER #176     04034B50 (67324752)\n+62F4E Extract Zip Spec      14 (20) '2.0'\n+62F4F Extract OS            00 (0) 'MS-DOS'\n+62F50 General Purpose Flag  0000 (0)\n+62F52 Compression Method    0000 (0) 'Stored'\n+62F54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62F58 CRC                   00000000 (0)\n+62F5C Compressed Size       00000000 (0)\n+62F60 Uncompressed Size     00000000 (0)\n+62F64 Filename Length       0022 (34)\n+62F66 Extra Length          0009 (9)\n+62F68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62F68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62F8A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+62F8C   Length              0005 (5)\n+62F8E   Flags               01 (1) 'Modification'\n+62F8F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+62F93 LOCAL HEADER #177     04034B50 (67324752)\n+62F97 Extract Zip Spec      14 (20) '2.0'\n+62F98 Extract OS            00 (0) 'MS-DOS'\n+62F99 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+62F9B Compression Method    0000 (0) 'Stored'\n+62F9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62FA1 CRC                   00000000 (0)\n+62FA5 Compressed Size       00000000 (0)\n+62FA9 Uncompressed Size     00000000 (0)\n+62FAD Filename Length       0043 (67)\n+62FAF Extra Length          0009 (9)\n+62FB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62FB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62FF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+62FF6   Length              0005 (5)\n+62FF8   Flags               01 (1) 'Modification'\n+62FF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+62FFD PAYLOAD\n+\n+6360F DATA DESCRIPTOR       08074B50 (134695760)\n+63613 CRC                   9122B4D3 (2434970835)\n+63617 Compressed Size       00000612 (1554)\n+6361B Uncompressed Size     00000612 (1554)\n+\n+6361F CENTRAL HEADER #1     02014B50 (33639248)\n+63623 Created Zip Spec      14 (20) '2.0'\n+63624 Created OS            00 (0) 'MS-DOS'\n+63625 Extract Zip Spec      14 (20) '2.0'\n+63626 Extract OS            00 (0) 'MS-DOS'\n+63627 General Purpose Flag  0000 (0)\n+63629 Compression Method    0000 (0) 'Stored'\n+6362B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6362F CRC                   00000000 (0)\n+63633 Compressed Size       00000000 (0)\n+63637 Uncompressed Size     00000000 (0)\n+6363B Filename Length       0009 (9)\n+6363D Extra Length          0009 (9)\n+6363F Comment Length        0000 (0)\n+63641 Disk Start            0000 (0)\n+63643 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63645 Ext File Attributes   00000000 (0)\n+63649 Local Header Offset   00000000 (0)\n+6364D Filename              'XXXXXXXXX'\n+#\n+# WARNING: Offset 0x6364D: Filename 'XXXXXXXXX'\n+#          Zero length filename\n+#\n+63656 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63658   Length              0005 (5)\n+6365A   Flags               01 (1) 'Modification'\n+6365B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6365F CENTRAL HEADER #2     02014B50 (33639248)\n+63663 Created Zip Spec      14 (20) '2.0'\n+63664 Created OS            00 (0) 'MS-DOS'\n+63665 Extract Zip Spec      14 (20) '2.0'\n+63666 Extract OS            00 (0) 'MS-DOS'\n+63667 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+63669 Compression Method    0000 (0) 'Stored'\n+6366B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6366F CRC                   EE027FB2 (3993141170)\n+63673 Compressed Size       00000019 (25)\n+63677 Uncompressed Size     00000019 (25)\n+6367B Filename Length       0014 (20)\n+6367D Extra Length          0009 (9)\n+6367F Comment Length        0000 (0)\n+63681 Disk Start            0000 (0)\n+63683 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63685 Ext File Attributes   00000000 (0)\n+63689 Local Header Offset   00000030 (48)\n+6368D Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6368D: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+636A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+636A3   Length              0005 (5)\n+636A5   Flags               01 (1) 'Modification'\n+636A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+636AA CENTRAL HEADER #3     02014B50 (33639248)\n+636AE Created Zip Spec      14 (20) '2.0'\n+636AF Created OS            00 (0) 'MS-DOS'\n+636B0 Extract Zip Spec      14 (20) '2.0'\n+636B1 Extract OS            00 (0) 'MS-DOS'\n+636B2 General Purpose Flag  0000 (0)\n+636B4 Compression Method    0000 (0) 'Stored'\n+636B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+636BA CRC                   00000000 (0)\n+636BE Compressed Size       00000000 (0)\n+636C2 Uncompressed Size     00000000 (0)\n+636C6 Filename Length       000F (15)\n+636C8 Extra Length          0009 (9)\n+636CA Comment Length        0000 (0)\n+636CC Disk Start            0000 (0)\n+636CE Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+636D0 Ext File Attributes   00000000 (0)\n+636D4 Local Header Offset   00000094 (148)\n+636D8 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x636D8: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+636E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+636E9   Length              0005 (5)\n+636EB   Flags               01 (1) 'Modification'\n+636EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+636F0 CENTRAL HEADER #4     02014B50 (33639248)\n+636F4 Created Zip Spec      14 (20) '2.0'\n+636F5 Created OS            00 (0) 'MS-DOS'\n+636F6 Extract Zip Spec      14 (20) '2.0'\n+636F7 Extract OS            00 (0) 'MS-DOS'\n+636F8 General Purpose Flag  0000 (0)\n+636FA Compression Method    0000 (0) 'Stored'\n+636FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63700 CRC                   00000000 (0)\n+63704 Compressed Size       00000000 (0)\n+63708 Uncompressed Size     00000000 (0)\n+6370C Filename Length       001F (31)\n+6370E Extra Length          0009 (9)\n+63710 Comment Length        0000 (0)\n+63712 Disk Start            0000 (0)\n+63714 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63716 Ext File Attributes   00000000 (0)\n+6371A Local Header Offset   000000CA (202)\n+6371E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6371E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6373D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6373F   Length              0005 (5)\n+63741   Flags               01 (1) 'Modification'\n+63742   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63746 CENTRAL HEADER #5     02014B50 (33639248)\n+6374A Created Zip Spec      14 (20) '2.0'\n+6374B Created OS            00 (0) 'MS-DOS'\n+6374C Extract Zip Spec      14 (20) '2.0'\n+6374D Extract OS            00 (0) 'MS-DOS'\n+6374E General Purpose Flag  0000 (0)\n+63750 Compression Method    0000 (0) 'Stored'\n+63752 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63756 CRC                   00000000 (0)\n+6375A Compressed Size       00000000 (0)\n+6375E Uncompressed Size     00000000 (0)\n+63762 Filename Length       0030 (48)\n+63764 Extra Length          0009 (9)\n+63766 Comment Length        0000 (0)\n+63768 Disk Start            0000 (0)\n+6376A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6376C Ext File Attributes   00000000 (0)\n+63770 Local Header Offset   00000110 (272)\n+63774 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63774: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+637A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+637A6   Length              0005 (5)\n+637A8   Flags               01 (1) 'Modification'\n+637A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+637AD CENTRAL HEADER #6     02014B50 (33639248)\n+637B1 Created Zip Spec      14 (20) '2.0'\n+637B2 Created OS            00 (0) 'MS-DOS'\n+637B3 Extract Zip Spec      14 (20) '2.0'\n+637B4 Extract OS            00 (0) 'MS-DOS'\n+637B5 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+637B7 Compression Method    0000 (0) 'Stored'\n+637B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+637BD CRC                   00000000 (0)\n+637C1 Compressed Size       00000000 (0)\n+637C5 Uncompressed Size     00000000 (0)\n+637C9 Filename Length       003E (62)\n+637CB Extra Length          0009 (9)\n+637CD Comment Length        0000 (0)\n+637CF Disk Start            0000 (0)\n+637D1 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+637D3 Ext File Attributes   00000000 (0)\n+637D7 Local Header Offset   00000167 (359)\n+637DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x637DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63819 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6381B   Length              0005 (5)\n+6381D   Flags               01 (1) 'Modification'\n+6381E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63822 CENTRAL HEADER #7     02014B50 (33639248)\n+63826 Created Zip Spec      14 (20) '2.0'\n+63827 Created OS            00 (0) 'MS-DOS'\n+63828 Extract Zip Spec      14 (20) '2.0'\n+63829 Extract OS            00 (0) 'MS-DOS'\n+6382A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6382C Compression Method    0000 (0) 'Stored'\n+6382E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63832 CRC                   093F422D (155140653)\n+63836 Compressed Size       00001C0D (7181)\n+6383A Uncompressed Size     00001C0D (7181)\n+6383E Filename Length       0037 (55)\n+63840 Extra Length          0009 (9)\n+63842 Comment Length        0000 (0)\n+63844 Disk Start            0000 (0)\n+63846 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63848 Ext File Attributes   00000000 (0)\n+6384C Local Header Offset   000001DC (476)\n+63850 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63850: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63887 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63889   Length              0005 (5)\n+6388B   Flags               01 (1) 'Modification'\n+6388C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63890 CENTRAL HEADER #8     02014B50 (33639248)\n+63894 Created Zip Spec      14 (20) '2.0'\n+63895 Created OS            00 (0) 'MS-DOS'\n+63896 Extract Zip Spec      14 (20) '2.0'\n+63897 Extract OS            00 (0) 'MS-DOS'\n+63898 General Purpose Flag  0000 (0)\n+6389A Compression Method    0000 (0) 'Stored'\n+6389C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+638A0 CRC                   00000000 (0)\n+638A4 Compressed Size       00000000 (0)\n+638A8 Uncompressed Size     00000000 (0)\n+638AC Filename Length       0012 (18)\n+638AE Extra Length          0009 (9)\n+638B0 Comment Length        0000 (0)\n+638B2 Disk Start            0000 (0)\n+638B4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+638B6 Ext File Attributes   00000000 (0)\n+638BA Local Header Offset   00001E57 (7767)\n+638BE Filename              'XXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x638BE: Filename 'XXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+638D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+638D2   Length              0005 (5)\n+638D4   Flags               01 (1) 'Modification'\n+638D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+638D9 CENTRAL HEADER #9     02014B50 (33639248)\n+638DD Created Zip Spec      14 (20) '2.0'\n+638DE Created OS            00 (0) 'MS-DOS'\n+638DF Extract Zip Spec      14 (20) '2.0'\n+638E0 Extract OS            00 (0) 'MS-DOS'\n+638E1 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+638E3 Compression Method    0000 (0) 'Stored'\n+638E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+638E9 CRC                   595ACB4C (1499122508)\n+638ED Compressed Size       00000052 (82)\n+638F1 Uncompressed Size     00000052 (82)\n+638F5 Filename Length       0034 (52)\n+638F7 Extra Length          0009 (9)\n+638F9 Comment Length        0000 (0)\n+638FB Disk Start            0000 (0)\n+638FD Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+638FF Ext File Attributes   00000000 (0)\n+63903 Local Header Offset   00001E90 (7824)\n+63907 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63907: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6393B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6393D   Length              0005 (5)\n+6393F   Flags               01 (1) 'Modification'\n+63940   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63944 CENTRAL HEADER #10    02014B50 (33639248)\n+63948 Created Zip Spec      14 (20) '2.0'\n+63949 Created OS            00 (0) 'MS-DOS'\n+6394A Extract Zip Spec      14 (20) '2.0'\n+6394B Extract OS            00 (0) 'MS-DOS'\n+6394C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6394E Compression Method    0000 (0) 'Stored'\n+63950 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63954 CRC                   10E6F8E1 (283572449)\n+63958 Compressed Size       00000027 (39)\n+6395C Uncompressed Size     00000027 (39)\n+63960 Filename Length       0035 (53)\n+63962 Extra Length          0009 (9)\n+63964 Comment Length        0000 (0)\n+63966 Disk Start            0000 (0)\n+63968 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6396A Ext File Attributes   00000000 (0)\n+6396E Local Header Offset   00001F4D (8013)\n+63972 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63972: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+639A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+639A9   Length              0005 (5)\n+639AB   Flags               01 (1) 'Modification'\n+639AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+639B0 CENTRAL HEADER #11    02014B50 (33639248)\n+639B4 Created Zip Spec      14 (20) '2.0'\n+639B5 Created OS            00 (0) 'MS-DOS'\n+639B6 Extract Zip Spec      14 (20) '2.0'\n+639B7 Extract OS            00 (0) 'MS-DOS'\n+639B8 General Purpose Flag  0000 (0)\n+639BA Compression Method    0000 (0) 'Stored'\n+639BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+639C0 CRC                   00000000 (0)\n+639C4 Compressed Size       00000000 (0)\n+639C8 Uncompressed Size     00000000 (0)\n+639CC Filename Length       0004 (4)\n+639CE Extra Length          0009 (9)\n+639D0 Comment Length        0000 (0)\n+639D2 Disk Start            0000 (0)\n+639D4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+639D6 Ext File Attributes   00000000 (0)\n+639DA Local Header Offset   00001FE0 (8160)\n+639DE Filename              'XXXX'\n+#\n+# WARNING: Offset 0x639DE: Filename 'XXXX'\n+#          Zero length filename\n+#\n+639E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+639E4   Length              0005 (5)\n+639E6   Flags               01 (1) 'Modification'\n+639E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+639EB CENTRAL HEADER #12    02014B50 (33639248)\n+639EF Created Zip Spec      14 (20) '2.0'\n+639F0 Created OS            00 (0) 'MS-DOS'\n+639F1 Extract Zip Spec      14 (20) '2.0'\n+639F2 Extract OS            00 (0) 'MS-DOS'\n+639F3 General Purpose Flag  0000 (0)\n+639F5 Compression Method    0000 (0) 'Stored'\n+639F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+639FB CRC                   00000000 (0)\n+639FF Compressed Size       00000000 (0)\n+63A03 Uncompressed Size     00000000 (0)\n+63A07 Filename Length       0010 (16)\n+63A09 Extra Length          0009 (9)\n+63A0B Comment Length        0000 (0)\n+63A0D Disk Start            0000 (0)\n+63A0F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63A11 Ext File Attributes   00000000 (0)\n+63A15 Local Header Offset   0000200B (8203)\n+63A19 Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63A19: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63A29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63A2B   Length              0005 (5)\n+63A2D   Flags               01 (1) 'Modification'\n+63A2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63A32 CENTRAL HEADER #13    02014B50 (33639248)\n+63A36 Created Zip Spec      14 (20) '2.0'\n+63A37 Created OS            00 (0) 'MS-DOS'\n+63A38 Extract Zip Spec      14 (20) '2.0'\n+63A39 Extract OS            00 (0) 'MS-DOS'\n+63A3A General Purpose Flag  0000 (0)\n+63A3C Compression Method    0000 (0) 'Stored'\n+63A3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63A42 CRC                   00000000 (0)\n+63A46 Compressed Size       00000000 (0)\n+63A4A Uncompressed Size     00000000 (0)\n+63A4E Filename Length       0016 (22)\n+63A50 Extra Length          0009 (9)\n+63A52 Comment Length        0000 (0)\n+63A54 Disk Start            0000 (0)\n+63A56 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63A58 Ext File Attributes   00000000 (0)\n+63A5C Local Header Offset   00002042 (8258)\n+63A60 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63A60: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63A76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63A78   Length              0005 (5)\n+63A7A   Flags               01 (1) 'Modification'\n+63A7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63A7F CENTRAL HEADER #14    02014B50 (33639248)\n+63A83 Created Zip Spec      14 (20) '2.0'\n+63A84 Created OS            00 (0) 'MS-DOS'\n+63A85 Extract Zip Spec      14 (20) '2.0'\n+63A86 Extract OS            00 (0) 'MS-DOS'\n+63A87 General Purpose Flag  0000 (0)\n+63A89 Compression Method    0000 (0) 'Stored'\n+63A8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63A8F CRC                   00000000 (0)\n+63A93 Compressed Size       00000000 (0)\n+63A97 Uncompressed Size     00000000 (0)\n+63A9B Filename Length       001B (27)\n+63A9D Extra Length          0009 (9)\n+63A9F Comment Length        0000 (0)\n+63AA1 Disk Start            0000 (0)\n+63AA3 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63AA5 Ext File Attributes   00000000 (0)\n+63AA9 Local Header Offset   0000207F (8319)\n+63AAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63AAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63AC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63ACA   Length              0005 (5)\n+63ACC   Flags               01 (1) 'Modification'\n+63ACD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63AD1 CENTRAL HEADER #15    02014B50 (33639248)\n+63AD5 Created Zip Spec      14 (20) '2.0'\n+63AD6 Created OS            00 (0) 'MS-DOS'\n+63AD7 Extract Zip Spec      14 (20) '2.0'\n+63AD8 Extract OS            00 (0) 'MS-DOS'\n+63AD9 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+63ADB Compression Method    0000 (0) 'Stored'\n+63ADD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63AE1 CRC                   6502A609 (1694672393)\n+63AE5 Compressed Size       00000534 (1332)\n+63AE9 Uncompressed Size     00000534 (1332)\n+63AED Filename Length       0040 (64)\n+63AEF Extra Length          0009 (9)\n+63AF1 Comment Length        0000 (0)\n+63AF3 Disk Start            0000 (0)\n+63AF5 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63AF7 Ext File Attributes   00000000 (0)\n+63AFB Local Header Offset   000020C1 (8385)\n+63AFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63AFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63B3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63B41   Length              0005 (5)\n+63B43   Flags               01 (1) 'Modification'\n+63B44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63B48 CENTRAL HEADER #16    02014B50 (33639248)\n+63B4C Created Zip Spec      14 (20) '2.0'\n+63B4D Created OS            00 (0) 'MS-DOS'\n+63B4E Extract Zip Spec      14 (20) '2.0'\n+63B4F Extract OS            00 (0) 'MS-DOS'\n+63B50 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+63B52 Compression Method    0000 (0) 'Stored'\n+63B54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63B58 CRC                   E0919879 (3767638137)\n+63B5C Compressed Size       0000180E (6158)\n+63B60 Uncompressed Size     0000180E (6158)\n+63B64 Filename Length       0037 (55)\n+63B66 Extra Length          0009 (9)\n+63B68 Comment Length        0000 (0)\n+63B6A Disk Start            0000 (0)\n+63B6C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63B6E Ext File Attributes   00000000 (0)\n+63B72 Local Header Offset   0000266C (9836)\n+63B76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63B76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63BAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63BAF   Length              0005 (5)\n+63BB1   Flags               01 (1) 'Modification'\n+63BB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63BB6 CENTRAL HEADER #17    02014B50 (33639248)\n+63BBA Created Zip Spec      14 (20) '2.0'\n+63BBB Created OS            00 (0) 'MS-DOS'\n+63BBC Extract Zip Spec      14 (20) '2.0'\n+63BBD Extract OS            00 (0) 'MS-DOS'\n+63BBE General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+63BC0 Compression Method    0000 (0) 'Stored'\n+63BC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63BC6 CRC                   00472512 (4662546)\n+63BCA Compressed Size       000009CB (2507)\n+63BCE Uncompressed Size     000009CB (2507)\n+63BD2 Filename Length       0039 (57)\n+63BD4 Extra Length          0009 (9)\n+63BD6 Comment Length        0000 (0)\n+63BD8 Disk Start            0000 (0)\n+63BDA Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63BDC Ext File Attributes   00000000 (0)\n+63BE0 Local Header Offset   00003EE8 (16104)\n+63BE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63BE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63C1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63C1F   Length              0005 (5)\n+63C21   Flags               01 (1) 'Modification'\n+63C22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63C26 CENTRAL HEADER #18    02014B50 (33639248)\n+63C2A Created Zip Spec      14 (20) '2.0'\n+63C2B Created OS            00 (0) 'MS-DOS'\n+63C2C Extract Zip Spec      14 (20) '2.0'\n+63C2D Extract OS            00 (0) 'MS-DOS'\n+63C2E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+63C30 Compression Method    0000 (0) 'Stored'\n+63C32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63C36 CRC                   D61222D3 (3591512787)\n+63C3A Compressed Size       00000896 (2198)\n+63C3E Uncompressed Size     00000896 (2198)\n+63C42 Filename Length       003D (61)\n+63C44 Extra Length          0009 (9)\n+63C46 Comment Length        0000 (0)\n+63C48 Disk Start            0000 (0)\n+63C4A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63C4C Ext File Attributes   00000000 (0)\n+63C50 Local Header Offset   00004923 (18723)\n+63C54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63C54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63C91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63C93   Length              0005 (5)\n+63C95   Flags               01 (1) 'Modification'\n+63C96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63C9A CENTRAL HEADER #19    02014B50 (33639248)\n+63C9E Created Zip Spec      14 (20) '2.0'\n+63C9F Created OS            00 (0) 'MS-DOS'\n+63CA0 Extract Zip Spec      14 (20) '2.0'\n+63CA1 Extract OS            00 (0) 'MS-DOS'\n+63CA2 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+63CA4 Compression Method    0000 (0) 'Stored'\n+63CA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63CAA CRC                   C83E33B8 (3359519672)\n+63CAE Compressed Size       00000C12 (3090)\n+63CB2 Uncompressed Size     00000C12 (3090)\n+63CB6 Filename Length       0033 (51)\n+63CB8 Extra Length          0009 (9)\n+63CBA Comment Length        0000 (0)\n+63CBC Disk Start            0000 (0)\n+63CBE Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63CC0 Ext File Attributes   00000000 (0)\n+63CC4 Local Header Offset   0000522D (21037)\n+63CC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63CC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63CFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63CFD   Length              0005 (5)\n+63CFF   Flags               01 (1) 'Modification'\n+63D00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63D04 CENTRAL HEADER #20    02014B50 (33639248)\n+63D08 Created Zip Spec      14 (20) '2.0'\n+63D09 Created OS            00 (0) 'MS-DOS'\n+63D0A Extract Zip Spec      14 (20) '2.0'\n+63D0B Extract OS            00 (0) 'MS-DOS'\n+63D0C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+63D0E Compression Method    0000 (0) 'Stored'\n+63D10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63D14 CRC                   743D90B3 (1950191795)\n+63D18 Compressed Size       000013E9 (5097)\n+63D1C Uncompressed Size     000013E9 (5097)\n+63D20 Filename Length       0036 (54)\n+63D22 Extra Length          0009 (9)\n+63D24 Comment Length        0000 (0)\n+63D26 Disk Start            0000 (0)\n+63D28 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63D2A Ext File Attributes   00000000 (0)\n+63D2E Local Header Offset   00005EA9 (24233)\n+63D32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63D32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63D68 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63D6A   Length              0005 (5)\n+63D6C   Flags               01 (1) 'Modification'\n+63D6D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63D71 CENTRAL HEADER #21    02014B50 (33639248)\n+63D75 Created Zip Spec      14 (20) '2.0'\n+63D76 Created OS            00 (0) 'MS-DOS'\n+63D77 Extract Zip Spec      14 (20) '2.0'\n+63D78 Extract OS            00 (0) 'MS-DOS'\n+63D79 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+63D7B Compression Method    0000 (0) 'Stored'\n+63D7D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63D81 CRC                   330D4B66 (856509286)\n+63D85 Compressed Size       00000525 (1317)\n+63D89 Uncompressed Size     00000525 (1317)\n+63D8D Filename Length       0039 (57)\n+63D8F Extra Length          0009 (9)\n+63D91 Comment Length        0000 (0)\n+63D93 Disk Start            0000 (0)\n+63D95 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63D97 Ext File Attributes   00000000 (0)\n+63D9B Local Header Offset   000072FF (29439)\n+63D9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63D9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63DD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63DDA   Length              0005 (5)\n+63DDC   Flags               01 (1) 'Modification'\n+63DDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63DE1 CENTRAL HEADER #22    02014B50 (33639248)\n+63DE5 Created Zip Spec      14 (20) '2.0'\n+63DE6 Created OS            00 (0) 'MS-DOS'\n+63DE7 Extract Zip Spec      14 (20) '2.0'\n+63DE8 Extract OS            00 (0) 'MS-DOS'\n+63DE9 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+63DEB Compression Method    0000 (0) 'Stored'\n+63DED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63DF1 CRC                   AA8A4829 (2861189161)\n+63DF5 Compressed Size       00000AA1 (2721)\n+63DF9 Uncompressed Size     00000AA1 (2721)\n+63DFD Filename Length       003F (63)\n+63DFF Extra Length          0009 (9)\n+63E01 Comment Length        0000 (0)\n+63E03 Disk Start            0000 (0)\n+63E05 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63E07 Ext File Attributes   00000000 (0)\n+63E0B Local Header Offset   00007894 (30868)\n+63E0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63E0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63E4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63E50   Length              0005 (5)\n+63E52   Flags               01 (1) 'Modification'\n+63E53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63E57 CENTRAL HEADER #23    02014B50 (33639248)\n+63E5B Created Zip Spec      14 (20) '2.0'\n+63E5C Created OS            00 (0) 'MS-DOS'\n+63E5D Extract Zip Spec      14 (20) '2.0'\n+63E5E Extract OS            00 (0) 'MS-DOS'\n+63E5F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+63E61 Compression Method    0000 (0) 'Stored'\n+63E63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63E67 CRC                   6D595579 (1834571129)\n+63E6B Compressed Size       000024CA (9418)\n+63E6F Uncompressed Size     000024CA (9418)\n+63E73 Filename Length       0037 (55)\n+63E75 Extra Length          0009 (9)\n+63E77 Comment Length        0000 (0)\n+63E79 Disk Start            0000 (0)\n+63E7B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63E7D Ext File Attributes   00000000 (0)\n+63E81 Local Header Offset   000083AB (33707)\n+63E85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63E85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63EBC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63EBE   Length              0005 (5)\n+63EC0   Flags               01 (1) 'Modification'\n+63EC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63EC5 CENTRAL HEADER #24    02014B50 (33639248)\n+63EC9 Created Zip Spec      14 (20) '2.0'\n+63ECA Created OS            00 (0) 'MS-DOS'\n+63ECB Extract Zip Spec      14 (20) '2.0'\n+63ECC Extract OS            00 (0) 'MS-DOS'\n+63ECD General Purpose Flag  0000 (0)\n+63ECF Compression Method    0000 (0) 'Stored'\n+63ED1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63ED5 CRC                   00000000 (0)\n+63ED9 Compressed Size       00000000 (0)\n+63EDD Uncompressed Size     00000000 (0)\n+63EE1 Filename Length       001F (31)\n+63EE3 Extra Length          0009 (9)\n+63EE5 Comment Length        0000 (0)\n+63EE7 Disk Start            0000 (0)\n+63EE9 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63EEB Ext File Attributes   00000000 (0)\n+63EEF Local Header Offset   0000A8E3 (43235)\n+63EF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63EF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63F12 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63F14   Length              0005 (5)\n+63F16   Flags               01 (1) 'Modification'\n+63F17   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63F1B CENTRAL HEADER #25    02014B50 (33639248)\n+63F1F Created Zip Spec      14 (20) '2.0'\n+63F20 Created OS            00 (0) 'MS-DOS'\n+63F21 Extract Zip Spec      14 (20) '2.0'\n+63F22 Extract OS            00 (0) 'MS-DOS'\n+63F23 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+63F25 Compression Method    0000 (0) 'Stored'\n+63F27 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63F2B CRC                   7F56624E (2136367694)\n+63F2F Compressed Size       0000068F (1679)\n+63F33 Uncompressed Size     0000068F (1679)\n+63F37 Filename Length       0045 (69)\n+63F39 Extra Length          0009 (9)\n+63F3B Comment Length        0000 (0)\n+63F3D Disk Start            0000 (0)\n+63F3F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63F41 Ext File Attributes   00000000 (0)\n+63F45 Local Header Offset   0000A929 (43305)\n+63F49 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63F49: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63F8E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63F90   Length              0005 (5)\n+63F92   Flags               01 (1) 'Modification'\n+63F93   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+63F97 CENTRAL HEADER #26    02014B50 (33639248)\n+63F9B Created Zip Spec      14 (20) '2.0'\n+63F9C Created OS            00 (0) 'MS-DOS'\n+63F9D Extract Zip Spec      14 (20) '2.0'\n+63F9E Extract OS            00 (0) 'MS-DOS'\n+63F9F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+63FA1 Compression Method    0000 (0) 'Stored'\n+63FA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63FA7 CRC                   06D3E6D4 (114550484)\n+63FAB Compressed Size       00000567 (1383)\n+63FAF Uncompressed Size     00000567 (1383)\n+63FB3 Filename Length       0042 (66)\n+63FB5 Extra Length          0009 (9)\n+63FB7 Comment Length        0000 (0)\n+63FB9 Disk Start            0000 (0)\n+63FBB Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+63FBD Ext File Attributes   00000000 (0)\n+63FC1 Local Header Offset   0000B034 (45108)\n+63FC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63FC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64007 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64009   Length              0005 (5)\n+6400B   Flags               01 (1) 'Modification'\n+6400C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64010 CENTRAL HEADER #27    02014B50 (33639248)\n+64014 Created Zip Spec      14 (20) '2.0'\n+64015 Created OS            00 (0) 'MS-DOS'\n+64016 Extract Zip Spec      14 (20) '2.0'\n+64017 Extract OS            00 (0) 'MS-DOS'\n+64018 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6401A Compression Method    0000 (0) 'Stored'\n+6401C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64020 CRC                   8B6E7B6E (2339273582)\n+64024 Compressed Size       000006DA (1754)\n+64028 Uncompressed Size     000006DA (1754)\n+6402C Filename Length       0037 (55)\n+6402E Extra Length          0009 (9)\n+64030 Comment Length        0000 (0)\n+64032 Disk Start            0000 (0)\n+64034 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64036 Ext File Attributes   00000000 (0)\n+6403A Local Header Offset   0000B614 (46612)\n+6403E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6403E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64075 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64077   Length              0005 (5)\n+64079   Flags               01 (1) 'Modification'\n+6407A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6407E CENTRAL HEADER #28    02014B50 (33639248)\n+64082 Created Zip Spec      14 (20) '2.0'\n+64083 Created OS            00 (0) 'MS-DOS'\n+64084 Extract Zip Spec      14 (20) '2.0'\n+64085 Extract OS            00 (0) 'MS-DOS'\n+64086 General Purpose Flag  0000 (0)\n+64088 Compression Method    0000 (0) 'Stored'\n+6408A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6408E CRC                   00000000 (0)\n+64092 Compressed Size       00000000 (0)\n+64096 Uncompressed Size     00000000 (0)\n+6409A Filename Length       0015 (21)\n+6409C Extra Length          0009 (9)\n+6409E Comment Length        0000 (0)\n+640A0 Disk Start            0000 (0)\n+640A2 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+640A4 Ext File Attributes   00000000 (0)\n+640A8 Local Header Offset   0000BD5C (48476)\n+640AC Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x640AC: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+640C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+640C3   Length              0005 (5)\n+640C5   Flags               01 (1) 'Modification'\n+640C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+640CA CENTRAL HEADER #29    02014B50 (33639248)\n+640CE Created Zip Spec      14 (20) '2.0'\n+640CF Created OS            00 (0) 'MS-DOS'\n+640D0 Extract Zip Spec      14 (20) '2.0'\n+640D1 Extract OS            00 (0) 'MS-DOS'\n+640D2 General Purpose Flag  0000 (0)\n+640D4 Compression Method    0000 (0) 'Stored'\n+640D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+640DA CRC                   00000000 (0)\n+640DE Compressed Size       00000000 (0)\n+640E2 Uncompressed Size     00000000 (0)\n+640E6 Filename Length       001E (30)\n+640E8 Extra Length          0009 (9)\n+640EA Comment Length        0000 (0)\n+640EC Disk Start            0000 (0)\n+640EE Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+640F0 Ext File Attributes   00000000 (0)\n+640F4 Local Header Offset   0000BD98 (48536)\n+640F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x640F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64116 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64118   Length              0005 (5)\n+6411A   Flags               01 (1) 'Modification'\n+6411B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6411F CENTRAL HEADER #30    02014B50 (33639248)\n+64123 Created Zip Spec      14 (20) '2.0'\n+64124 Created OS            00 (0) 'MS-DOS'\n+64125 Extract Zip Spec      14 (20) '2.0'\n+64126 Extract OS            00 (0) 'MS-DOS'\n+64127 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64129 Compression Method    0000 (0) 'Stored'\n+6412B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6412F CRC                   3669465B (912868955)\n+64133 Compressed Size       0000042A (1066)\n+64137 Uncompressed Size     0000042A (1066)\n+6413B Filename Length       0038 (56)\n+6413D Extra Length          0009 (9)\n+6413F Comment Length        0000 (0)\n+64141 Disk Start            0000 (0)\n+64143 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64145 Ext File Attributes   00000000 (0)\n+64149 Local Header Offset   0000BDDD (48605)\n+6414D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6414D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64185 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64187   Length              0005 (5)\n+64189   Flags               01 (1) 'Modification'\n+6418A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6418E CENTRAL HEADER #31    02014B50 (33639248)\n+64192 Created Zip Spec      14 (20) '2.0'\n+64193 Created OS            00 (0) 'MS-DOS'\n+64194 Extract Zip Spec      14 (20) '2.0'\n+64195 Extract OS            00 (0) 'MS-DOS'\n+64196 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64198 Compression Method    0000 (0) 'Stored'\n+6419A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6419E CRC                   7D90A409 (2106631177)\n+641A2 Compressed Size       0000049A (1178)\n+641A6 Uncompressed Size     0000049A (1178)\n+641AA Filename Length       0043 (67)\n+641AC Extra Length          0009 (9)\n+641AE Comment Length        0000 (0)\n+641B0 Disk Start            0000 (0)\n+641B2 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+641B4 Ext File Attributes   00000000 (0)\n+641B8 Local Header Offset   0000C276 (49782)\n+641BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x641BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+641FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64201   Length              0005 (5)\n+64203   Flags               01 (1) 'Modification'\n+64204   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64208 CENTRAL HEADER #32    02014B50 (33639248)\n+6420C Created Zip Spec      14 (20) '2.0'\n+6420D Created OS            00 (0) 'MS-DOS'\n+6420E Extract Zip Spec      14 (20) '2.0'\n+6420F Extract OS            00 (0) 'MS-DOS'\n+64210 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64212 Compression Method    0000 (0) 'Stored'\n+64214 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64218 CRC                   0E9F3A5C (245316188)\n+6421C Compressed Size       00000546 (1350)\n+64220 Uncompressed Size     00000546 (1350)\n+64224 Filename Length       0044 (68)\n+64226 Extra Length          0009 (9)\n+64228 Comment Length        0000 (0)\n+6422A Disk Start            0000 (0)\n+6422C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6422E Ext File Attributes   00000000 (0)\n+64232 Local Header Offset   0000C78A (51082)\n+64236 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64236: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6427A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6427C   Length              0005 (5)\n+6427E   Flags               01 (1) 'Modification'\n+6427F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64283 CENTRAL HEADER #33    02014B50 (33639248)\n+64287 Created Zip Spec      14 (20) '2.0'\n+64288 Created OS            00 (0) 'MS-DOS'\n+64289 Extract Zip Spec      14 (20) '2.0'\n+6428A Extract OS            00 (0) 'MS-DOS'\n+6428B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6428D Compression Method    0000 (0) 'Stored'\n+6428F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64293 CRC                   4EA4211F (1319379231)\n+64297 Compressed Size       000013B6 (5046)\n+6429B Uncompressed Size     000013B6 (5046)\n+6429F Filename Length       0036 (54)\n+642A1 Extra Length          0009 (9)\n+642A3 Comment Length        0000 (0)\n+642A5 Disk Start            0000 (0)\n+642A7 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+642A9 Ext File Attributes   00000000 (0)\n+642AD Local Header Offset   0000CD4B (52555)\n+642B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x642B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+642E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+642E9   Length              0005 (5)\n+642EB   Flags               01 (1) 'Modification'\n+642EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+642F0 CENTRAL HEADER #34    02014B50 (33639248)\n+642F4 Created Zip Spec      14 (20) '2.0'\n+642F5 Created OS            00 (0) 'MS-DOS'\n+642F6 Extract Zip Spec      14 (20) '2.0'\n+642F7 Extract OS            00 (0) 'MS-DOS'\n+642F8 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+642FA Compression Method    0000 (0) 'Stored'\n+642FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64300 CRC                   5350F976 (1397815670)\n+64304 Compressed Size       00000B96 (2966)\n+64308 Uncompressed Size     00000B96 (2966)\n+6430C Filename Length       004B (75)\n+6430E Extra Length          0009 (9)\n+64310 Comment Length        0000 (0)\n+64312 Disk Start            0000 (0)\n+64314 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64316 Ext File Attributes   00000000 (0)\n+6431A Local Header Offset   0000E16E (57710)\n+6431E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6431E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64369 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6436B   Length              0005 (5)\n+6436D   Flags               01 (1) 'Modification'\n+6436E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64372 CENTRAL HEADER #35    02014B50 (33639248)\n+64376 Created Zip Spec      14 (20) '2.0'\n+64377 Created OS            00 (0) 'MS-DOS'\n+64378 Extract Zip Spec      14 (20) '2.0'\n+64379 Extract OS            00 (0) 'MS-DOS'\n+6437A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6437C Compression Method    0000 (0) 'Stored'\n+6437E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64382 CRC                   10864B8C (277236620)\n+64386 Compressed Size       000007C7 (1991)\n+6438A Uncompressed Size     000007C7 (1991)\n+6438E Filename Length       0038 (56)\n+64390 Extra Length          0009 (9)\n+64392 Comment Length        0000 (0)\n+64394 Disk Start            0000 (0)\n+64396 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64398 Ext File Attributes   00000000 (0)\n+6439C Local Header Offset   0000ED86 (60806)\n+643A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x643A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+643D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+643DA   Length              0005 (5)\n+643DC   Flags               01 (1) 'Modification'\n+643DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+643E1 CENTRAL HEADER #36    02014B50 (33639248)\n+643E5 Created Zip Spec      14 (20) '2.0'\n+643E6 Created OS            00 (0) 'MS-DOS'\n+643E7 Extract Zip Spec      14 (20) '2.0'\n+643E8 Extract OS            00 (0) 'MS-DOS'\n+643E9 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+643EB Compression Method    0000 (0) 'Stored'\n+643ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+643F1 CRC                   9DD32FAD (2647863213)\n+643F5 Compressed Size       00000E69 (3689)\n+643F9 Uncompressed Size     00000E69 (3689)\n+643FD Filename Length       0030 (48)\n+643FF Extra Length          0009 (9)\n+64401 Comment Length        0000 (0)\n+64403 Disk Start            0000 (0)\n+64405 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64407 Ext File Attributes   00000000 (0)\n+6440B Local Header Offset   0000F5BC (62908)\n+6440F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6440F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6443F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64441   Length              0005 (5)\n+64443   Flags               01 (1) 'Modification'\n+64444   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64448 CENTRAL HEADER #37    02014B50 (33639248)\n+6444C Created Zip Spec      14 (20) '2.0'\n+6444D Created OS            00 (0) 'MS-DOS'\n+6444E Extract Zip Spec      14 (20) '2.0'\n+6444F Extract OS            00 (0) 'MS-DOS'\n+64450 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64452 Compression Method    0000 (0) 'Stored'\n+64454 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64458 CRC                   F6B3CB5C (4138978140)\n+6445C Compressed Size       00000AF8 (2808)\n+64460 Uncompressed Size     00000AF8 (2808)\n+64464 Filename Length       003B (59)\n+64466 Extra Length          0009 (9)\n+64468 Comment Length        0000 (0)\n+6446A Disk Start            0000 (0)\n+6446C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6446E Ext File Attributes   00000000 (0)\n+64472 Local Header Offset   0001048C (66700)\n+64476 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64476: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+644B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+644B3   Length              0005 (5)\n+644B5   Flags               01 (1) 'Modification'\n+644B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+644BA CENTRAL HEADER #38    02014B50 (33639248)\n+644BE Created Zip Spec      14 (20) '2.0'\n+644BF Created OS            00 (0) 'MS-DOS'\n+644C0 Extract Zip Spec      14 (20) '2.0'\n+644C1 Extract OS            00 (0) 'MS-DOS'\n+644C2 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+644C4 Compression Method    0000 (0) 'Stored'\n+644C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+644CA CRC                   93036480 (2466473088)\n+644CE Compressed Size       00000F7E (3966)\n+644D2 Uncompressed Size     00000F7E (3966)\n+644D6 Filename Length       0030 (48)\n+644D8 Extra Length          0009 (9)\n+644DA Comment Length        0000 (0)\n+644DC Disk Start            0000 (0)\n+644DE Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+644E0 Ext File Attributes   00000000 (0)\n+644E4 Local Header Offset   00010FF6 (69622)\n+644E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x644E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64518 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6451A   Length              0005 (5)\n+6451C   Flags               01 (1) 'Modification'\n+6451D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64521 CENTRAL HEADER #39    02014B50 (33639248)\n+64525 Created Zip Spec      14 (20) '2.0'\n+64526 Created OS            00 (0) 'MS-DOS'\n+64527 Extract Zip Spec      14 (20) '2.0'\n+64528 Extract OS            00 (0) 'MS-DOS'\n+64529 General Purpose Flag  0000 (0)\n+6452B Compression Method    0000 (0) 'Stored'\n+6452D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64531 CRC                   00000000 (0)\n+64535 Compressed Size       00000000 (0)\n+64539 Uncompressed Size     00000000 (0)\n+6453D Filename Length       001F (31)\n+6453F Extra Length          0009 (9)\n+64541 Comment Length        0000 (0)\n+64543 Disk Start            0000 (0)\n+64545 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64547 Ext File Attributes   00000000 (0)\n+6454B Local Header Offset   00011FDB (73691)\n+6454F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6454F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6456E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64570   Length              0005 (5)\n+64572   Flags               01 (1) 'Modification'\n+64573   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64577 CENTRAL HEADER #40    02014B50 (33639248)\n+6457B Created Zip Spec      14 (20) '2.0'\n+6457C Created OS            00 (0) 'MS-DOS'\n+6457D Extract Zip Spec      14 (20) '2.0'\n+6457E Extract OS            00 (0) 'MS-DOS'\n+6457F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64581 Compression Method    0000 (0) 'Stored'\n+64583 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64587 CRC                   ED73F0E8 (3983798504)\n+6458B Compressed Size       00000B6F (2927)\n+6458F Uncompressed Size     00000B6F (2927)\n+64593 Filename Length       0032 (50)\n+64595 Extra Length          0009 (9)\n+64597 Comment Length        0000 (0)\n+64599 Disk Start            0000 (0)\n+6459B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6459D Ext File Attributes   00000000 (0)\n+645A1 Local Header Offset   00012021 (73761)\n+645A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x645A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+645D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+645D9   Length              0005 (5)\n+645DB   Flags               01 (1) 'Modification'\n+645DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+645E0 CENTRAL HEADER #41    02014B50 (33639248)\n+645E4 Created Zip Spec      14 (20) '2.0'\n+645E5 Created OS            00 (0) 'MS-DOS'\n+645E6 Extract Zip Spec      14 (20) '2.0'\n+645E7 Extract OS            00 (0) 'MS-DOS'\n+645E8 General Purpose Flag  0000 (0)\n+645EA Compression Method    0000 (0) 'Stored'\n+645EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+645F0 CRC                   00000000 (0)\n+645F4 Compressed Size       00000000 (0)\n+645F8 Uncompressed Size     00000000 (0)\n+645FC Filename Length       001B (27)\n+645FE Extra Length          0009 (9)\n+64600 Comment Length        0000 (0)\n+64602 Disk Start            0000 (0)\n+64604 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64606 Ext File Attributes   00000000 (0)\n+6460A Local Header Offset   00012BF9 (76793)\n+6460E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6460E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64629 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6462B   Length              0005 (5)\n+6462D   Flags               01 (1) 'Modification'\n+6462E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64632 CENTRAL HEADER #42    02014B50 (33639248)\n+64636 Created Zip Spec      14 (20) '2.0'\n+64637 Created OS            00 (0) 'MS-DOS'\n+64638 Extract Zip Spec      14 (20) '2.0'\n+64639 Extract OS            00 (0) 'MS-DOS'\n+6463A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6463C Compression Method    0000 (0) 'Stored'\n+6463E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64642 CRC                   6390CFE7 (1670434791)\n+64646 Compressed Size       00000CA7 (3239)\n+6464A Uncompressed Size     00000CA7 (3239)\n+6464E Filename Length       002A (42)\n+64650 Extra Length          0009 (9)\n+64652 Comment Length        0000 (0)\n+64654 Disk Start            0000 (0)\n+64656 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64658 Ext File Attributes   00000000 (0)\n+6465C Local Header Offset   00012C3B (76859)\n+64660 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64660: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6468A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6468C   Length              0005 (5)\n+6468E   Flags               01 (1) 'Modification'\n+6468F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64693 CENTRAL HEADER #43    02014B50 (33639248)\n+64697 Created Zip Spec      14 (20) '2.0'\n+64698 Created OS            00 (0) 'MS-DOS'\n+64699 Extract Zip Spec      14 (20) '2.0'\n+6469A Extract OS            00 (0) 'MS-DOS'\n+6469B General Purpose Flag  0000 (0)\n+6469D Compression Method    0000 (0) 'Stored'\n+6469F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+646A3 CRC                   00000000 (0)\n+646A7 Compressed Size       00000000 (0)\n+646AB Uncompressed Size     00000000 (0)\n+646AF Filename Length       001D (29)\n+646B1 Extra Length          0009 (9)\n+646B3 Comment Length        0000 (0)\n+646B5 Disk Start            0000 (0)\n+646B7 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+646B9 Ext File Attributes   00000000 (0)\n+646BD Local Header Offset   00013943 (80195)\n+646C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x646C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+646DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+646E0   Length              0005 (5)\n+646E2   Flags               01 (1) 'Modification'\n+646E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+646E7 CENTRAL HEADER #44    02014B50 (33639248)\n+646EB Created Zip Spec      14 (20) '2.0'\n+646EC Created OS            00 (0) 'MS-DOS'\n+646ED Extract Zip Spec      14 (20) '2.0'\n+646EE Extract OS            00 (0) 'MS-DOS'\n+646EF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+646F1 Compression Method    0000 (0) 'Stored'\n+646F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+646F7 CRC                   01F26E78 (32665208)\n+646FB Compressed Size       0000119A (4506)\n+646FF Uncompressed Size     0000119A (4506)\n+64703 Filename Length       0030 (48)\n+64705 Extra Length          0009 (9)\n+64707 Comment Length        0000 (0)\n+64709 Disk Start            0000 (0)\n+6470B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6470D Ext File Attributes   00000000 (0)\n+64711 Local Header Offset   00013987 (80263)\n+64715 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64715: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64745 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64747   Length              0005 (5)\n+64749   Flags               01 (1) 'Modification'\n+6474A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6474E CENTRAL HEADER #45    02014B50 (33639248)\n+64752 Created Zip Spec      14 (20) '2.0'\n+64753 Created OS            00 (0) 'MS-DOS'\n+64754 Extract Zip Spec      14 (20) '2.0'\n+64755 Extract OS            00 (0) 'MS-DOS'\n+64756 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64758 Compression Method    0000 (0) 'Stored'\n+6475A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6475E CRC                   025CA19F (39625119)\n+64762 Compressed Size       000019C0 (6592)\n+64766 Uncompressed Size     000019C0 (6592)\n+6476A Filename Length       003C (60)\n+6476C Extra Length          0009 (9)\n+6476E Comment Length        0000 (0)\n+64770 Disk Start            0000 (0)\n+64772 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64774 Ext File Attributes   00000000 (0)\n+64778 Local Header Offset   00014B88 (84872)\n+6477C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6477C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+647B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+647BA   Length              0005 (5)\n+647BC   Flags               01 (1) 'Modification'\n+647BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+647C1 CENTRAL HEADER #46    02014B50 (33639248)\n+647C5 Created Zip Spec      14 (20) '2.0'\n+647C6 Created OS            00 (0) 'MS-DOS'\n+647C7 Extract Zip Spec      14 (20) '2.0'\n+647C8 Extract OS            00 (0) 'MS-DOS'\n+647C9 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+647CB Compression Method    0000 (0) 'Stored'\n+647CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+647D1 CRC                   E319FE76 (3810131574)\n+647D5 Compressed Size       000004CF (1231)\n+647D9 Uncompressed Size     000004CF (1231)\n+647DD Filename Length       0036 (54)\n+647DF Extra Length          0009 (9)\n+647E1 Comment Length        0000 (0)\n+647E3 Disk Start            0000 (0)\n+647E5 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+647E7 Ext File Attributes   00000000 (0)\n+647EB Local Header Offset   000165BB (91579)\n+647EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x647EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64825 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64827   Length              0005 (5)\n+64829   Flags               01 (1) 'Modification'\n+6482A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6482E CENTRAL HEADER #47    02014B50 (33639248)\n+64832 Created Zip Spec      14 (20) '2.0'\n+64833 Created OS            00 (0) 'MS-DOS'\n+64834 Extract Zip Spec      14 (20) '2.0'\n+64835 Extract OS            00 (0) 'MS-DOS'\n+64836 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64838 Compression Method    0000 (0) 'Stored'\n+6483A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6483E CRC                   E988474B (3918022475)\n+64842 Compressed Size       00001348 (4936)\n+64846 Uncompressed Size     00001348 (4936)\n+6484A Filename Length       0033 (51)\n+6484C Extra Length          0009 (9)\n+6484E Comment Length        0000 (0)\n+64850 Disk Start            0000 (0)\n+64852 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64854 Ext File Attributes   00000000 (0)\n+64858 Local Header Offset   00016AF7 (92919)\n+6485C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6485C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6488F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64891   Length              0005 (5)\n+64893   Flags               01 (1) 'Modification'\n+64894   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64898 CENTRAL HEADER #48    02014B50 (33639248)\n+6489C Created Zip Spec      14 (20) '2.0'\n+6489D Created OS            00 (0) 'MS-DOS'\n+6489E Extract Zip Spec      14 (20) '2.0'\n+6489F Extract OS            00 (0) 'MS-DOS'\n+648A0 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+648A2 Compression Method    0000 (0) 'Stored'\n+648A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+648A8 CRC                   4F3510BA (1328877754)\n+648AC Compressed Size       000008C5 (2245)\n+648B0 Uncompressed Size     000008C5 (2245)\n+648B4 Filename Length       0034 (52)\n+648B6 Extra Length          0009 (9)\n+648B8 Comment Length        0000 (0)\n+648BA Disk Start            0000 (0)\n+648BC Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+648BE Ext File Attributes   00000000 (0)\n+648C2 Local Header Offset   00017EA9 (97961)\n+648C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x648C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+648FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+648FC   Length              0005 (5)\n+648FE   Flags               01 (1) 'Modification'\n+648FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64903 CENTRAL HEADER #49    02014B50 (33639248)\n+64907 Created Zip Spec      14 (20) '2.0'\n+64908 Created OS            00 (0) 'MS-DOS'\n+64909 Extract Zip Spec      14 (20) '2.0'\n+6490A Extract OS            00 (0) 'MS-DOS'\n+6490B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6490D Compression Method    0000 (0) 'Stored'\n+6490F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64913 CRC                   20A5CCED (547736813)\n+64917 Compressed Size       00000D35 (3381)\n+6491B Uncompressed Size     00000D35 (3381)\n+6491F Filename Length       0041 (65)\n+64921 Extra Length          0009 (9)\n+64923 Comment Length        0000 (0)\n+64925 Disk Start            0000 (0)\n+64927 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64929 Ext File Attributes   00000000 (0)\n+6492D Local Header Offset   000187D9 (100313)\n+64931 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64931: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64972 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64974   Length              0005 (5)\n+64976   Flags               01 (1) 'Modification'\n+64977   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6497B CENTRAL HEADER #50    02014B50 (33639248)\n+6497F Created Zip Spec      14 (20) '2.0'\n+64980 Created OS            00 (0) 'MS-DOS'\n+64981 Extract Zip Spec      14 (20) '2.0'\n+64982 Extract OS            00 (0) 'MS-DOS'\n+64983 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64985 Compression Method    0000 (0) 'Stored'\n+64987 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6498B CRC                   CCA441E8 (3433316840)\n+6498F Compressed Size       00001A24 (6692)\n+64993 Uncompressed Size     00001A24 (6692)\n+64997 Filename Length       0032 (50)\n+64999 Extra Length          0009 (9)\n+6499B Comment Length        0000 (0)\n+6499D Disk Start            0000 (0)\n+6499F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+649A1 Ext File Attributes   00000000 (0)\n+649A5 Local Header Offset   00019586 (103814)\n+649A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x649A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x649A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 649DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 649DD   Length              0005 (5)\n 649DF   Flags               01 (1) 'Modification'\n 649E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-649E4 CENTRAL HEADER #49    02014B50 (33639248)\n+649E4 CENTRAL HEADER #51    02014B50 (33639248)\n 649E8 Created Zip Spec      14 (20) '2.0'\n 649E9 Created OS            00 (0) 'MS-DOS'\n 649EA Extract Zip Spec      14 (20) '2.0'\n 649EB Extract OS            00 (0) 'MS-DOS'\n-649EC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n+649EC General Purpose Flag  0000 (0)\n 649EE Compression Method    0000 (0) 'Stored'\n 649F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-649F4 CRC                   5A33884E (1513326670)\n-649F8 Compressed Size       00000D35 (3381)\n-649FC Uncompressed Size     00000D35 (3381)\n-64A00 Filename Length       0041 (65)\n+649F4 CRC                   00000000 (0)\n+649F8 Compressed Size       00000000 (0)\n+649FC Uncompressed Size     00000000 (0)\n+64A00 Filename Length       001D (29)\n 64A02 Extra Length          0009 (9)\n 64A04 Comment Length        0000 (0)\n 64A06 Disk Start            0000 (0)\n 64A08 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n 64A0A Ext File Attributes   00000000 (0)\n-64A0E Local Header Offset   000187CE (100302)\n-64A12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+64A0E Local Header Offset   0001B013 (110611)\n+64A12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x64A12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x64A12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-64A53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64A55   Length              0005 (5)\n-64A57   Flags               01 (1) 'Modification'\n-64A58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64A5C CENTRAL HEADER #50    02014B50 (33639248)\n-64A60 Created Zip Spec      14 (20) '2.0'\n-64A61 Created OS            00 (0) 'MS-DOS'\n-64A62 Extract Zip Spec      14 (20) '2.0'\n-64A63 Extract OS            00 (0) 'MS-DOS'\n-64A64 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64A66 Compression Method    0000 (0) 'Stored'\n-64A68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64A6C CRC                   8665BB83 (2254814083)\n-64A70 Compressed Size       00001A24 (6692)\n-64A74 Uncompressed Size     00001A24 (6692)\n-64A78 Filename Length       0032 (50)\n-64A7A Extra Length          0009 (9)\n-64A7C Comment Length        0000 (0)\n-64A7E Disk Start            0000 (0)\n-64A80 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64A82 Ext File Attributes   00000000 (0)\n-64A86 Local Header Offset   0001957B (103803)\n-64A8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64A8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64ABC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64ABE   Length              0005 (5)\n-64AC0   Flags               01 (1) 'Modification'\n-64AC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64AC5 CENTRAL HEADER #51    02014B50 (33639248)\n-64AC9 Created Zip Spec      14 (20) '2.0'\n-64ACA Created OS            00 (0) 'MS-DOS'\n-64ACB Extract Zip Spec      14 (20) '2.0'\n-64ACC Extract OS            00 (0) 'MS-DOS'\n-64ACD General Purpose Flag  0000 (0)\n-64ACF Compression Method    0000 (0) 'Stored'\n-64AD1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64AD5 CRC                   00000000 (0)\n-64AD9 Compressed Size       00000000 (0)\n-64ADD Uncompressed Size     00000000 (0)\n-64AE1 Filename Length       001D (29)\n-64AE3 Extra Length          0009 (9)\n-64AE5 Comment Length        0000 (0)\n-64AE7 Disk Start            0000 (0)\n-64AE9 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64AEB Ext File Attributes   00000000 (0)\n-64AEF Local Header Offset   0001B008 (110600)\n-64AF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64AF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64B10 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64B12   Length              0005 (5)\n-64B14   Flags               01 (1) 'Modification'\n-64B15   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64B19 CENTRAL HEADER #52    02014B50 (33639248)\n-64B1D Created Zip Spec      14 (20) '2.0'\n-64B1E Created OS            00 (0) 'MS-DOS'\n-64B1F Extract Zip Spec      14 (20) '2.0'\n-64B20 Extract OS            00 (0) 'MS-DOS'\n-64B21 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64B23 Compression Method    0000 (0) 'Stored'\n-64B25 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64B29 CRC                   DB628F10 (3680669456)\n-64B2D Compressed Size       00001176 (4470)\n-64B31 Uncompressed Size     00001176 (4470)\n-64B35 Filename Length       0032 (50)\n-64B37 Extra Length          0009 (9)\n-64B39 Comment Length        0000 (0)\n-64B3B Disk Start            0000 (0)\n-64B3D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64B3F Ext File Attributes   00000000 (0)\n-64B43 Local Header Offset   0001B04C (110668)\n-64B47 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64B47: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64B79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64B7B   Length              0005 (5)\n-64B7D   Flags               01 (1) 'Modification'\n-64B7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64B82 CENTRAL HEADER #53    02014B50 (33639248)\n-64B86 Created Zip Spec      14 (20) '2.0'\n-64B87 Created OS            00 (0) 'MS-DOS'\n-64B88 Extract Zip Spec      14 (20) '2.0'\n-64B89 Extract OS            00 (0) 'MS-DOS'\n-64B8A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64B8C Compression Method    0000 (0) 'Stored'\n-64B8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64B92 CRC                   E5E3EA59 (3856919129)\n-64B96 Compressed Size       0000051D (1309)\n-64B9A Uncompressed Size     0000051D (1309)\n-64B9E Filename Length       0057 (87)\n-64BA0 Extra Length          0009 (9)\n-64BA2 Comment Length        0000 (0)\n-64BA4 Disk Start            0000 (0)\n-64BA6 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64BA8 Ext File Attributes   00000000 (0)\n-64BAC Local Header Offset   0001C22B (115243)\n-64BB0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64BB0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64C07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64C09   Length              0005 (5)\n-64C0B   Flags               01 (1) 'Modification'\n-64C0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64C10 CENTRAL HEADER #54    02014B50 (33639248)\n-64C14 Created Zip Spec      14 (20) '2.0'\n-64C15 Created OS            00 (0) 'MS-DOS'\n-64C16 Extract Zip Spec      14 (20) '2.0'\n-64C17 Extract OS            00 (0) 'MS-DOS'\n-64C18 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64C1A Compression Method    0000 (0) 'Stored'\n-64C1C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64C20 CRC                   F1DBC679 (4057712249)\n-64C24 Compressed Size       000008B2 (2226)\n-64C28 Uncompressed Size     000008B2 (2226)\n-64C2C Filename Length       003D (61)\n-64C2E Extra Length          0009 (9)\n-64C30 Comment Length        0000 (0)\n-64C32 Disk Start            0000 (0)\n-64C34 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64C36 Ext File Attributes   00000000 (0)\n-64C3A Local Header Offset   0001C7D6 (116694)\n-64C3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64C3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64C7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64C7D   Length              0005 (5)\n-64C7F   Flags               01 (1) 'Modification'\n-64C80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64C84 CENTRAL HEADER #55    02014B50 (33639248)\n-64C88 Created Zip Spec      14 (20) '2.0'\n-64C89 Created OS            00 (0) 'MS-DOS'\n-64C8A Extract Zip Spec      14 (20) '2.0'\n-64C8B Extract OS            00 (0) 'MS-DOS'\n-64C8C General Purpose Flag  0000 (0)\n-64C8E Compression Method    0000 (0) 'Stored'\n-64C90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64C94 CRC                   00000000 (0)\n-64C98 Compressed Size       00000000 (0)\n-64C9C Uncompressed Size     00000000 (0)\n-64CA0 Filename Length       0019 (25)\n-64CA2 Extra Length          0009 (9)\n-64CA4 Comment Length        0000 (0)\n-64CA6 Disk Start            0000 (0)\n-64CA8 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64CAA Ext File Attributes   00000000 (0)\n-64CAE Local Header Offset   0001D0FC (119036)\n-64CB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64CB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64CCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64CCD   Length              0005 (5)\n-64CCF   Flags               01 (1) 'Modification'\n-64CD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64CD4 CENTRAL HEADER #56    02014B50 (33639248)\n-64CD8 Created Zip Spec      14 (20) '2.0'\n-64CD9 Created OS            00 (0) 'MS-DOS'\n-64CDA Extract Zip Spec      14 (20) '2.0'\n-64CDB Extract OS            00 (0) 'MS-DOS'\n-64CDC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64CDE Compression Method    0000 (0) 'Stored'\n-64CE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64CE4 CRC                   C3188174 (3273163124)\n-64CE8 Compressed Size       00000547 (1351)\n-64CEC Uncompressed Size     00000547 (1351)\n-64CF0 Filename Length       002D (45)\n-64CF2 Extra Length          0009 (9)\n-64CF4 Comment Length        0000 (0)\n-64CF6 Disk Start            0000 (0)\n-64CF8 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64CFA Ext File Attributes   00000000 (0)\n-64CFE Local Header Offset   0001D13C (119100)\n-64D02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64D02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64D2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64D31   Length              0005 (5)\n-64D33   Flags               01 (1) 'Modification'\n-64D34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64D38 CENTRAL HEADER #57    02014B50 (33639248)\n-64D3C Created Zip Spec      14 (20) '2.0'\n-64D3D Created OS            00 (0) 'MS-DOS'\n-64D3E Extract Zip Spec      14 (20) '2.0'\n-64D3F Extract OS            00 (0) 'MS-DOS'\n-64D40 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64D42 Compression Method    0000 (0) 'Stored'\n-64D44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64D48 CRC                   F3F211B7 (4092727735)\n-64D4C Compressed Size       000002D2 (722)\n-64D50 Uncompressed Size     000002D2 (722)\n-64D54 Filename Length       0032 (50)\n-64D56 Extra Length          0009 (9)\n-64D58 Comment Length        0000 (0)\n-64D5A Disk Start            0000 (0)\n-64D5C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64D5E Ext File Attributes   00000000 (0)\n-64D62 Local Header Offset   0001D6E7 (120551)\n-64D66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64D66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64D98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64D9A   Length              0005 (5)\n-64D9C   Flags               01 (1) 'Modification'\n-64D9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64DA1 CENTRAL HEADER #58    02014B50 (33639248)\n-64DA5 Created Zip Spec      14 (20) '2.0'\n-64DA6 Created OS            00 (0) 'MS-DOS'\n-64DA7 Extract Zip Spec      14 (20) '2.0'\n-64DA8 Extract OS            00 (0) 'MS-DOS'\n-64DA9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64DAB Compression Method    0000 (0) 'Stored'\n-64DAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64DB1 CRC                   7C5D6AFA (2086497018)\n-64DB5 Compressed Size       000003CF (975)\n-64DB9 Uncompressed Size     000003CF (975)\n-64DBD Filename Length       003C (60)\n-64DBF Extra Length          0009 (9)\n-64DC1 Comment Length        0000 (0)\n-64DC3 Disk Start            0000 (0)\n-64DC5 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64DC7 Ext File Attributes   00000000 (0)\n-64DCB Local Header Offset   0001DA22 (121378)\n-64DCF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64DCF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64E0B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64E0D   Length              0005 (5)\n-64E0F   Flags               01 (1) 'Modification'\n-64E10   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64E14 CENTRAL HEADER #59    02014B50 (33639248)\n-64E18 Created Zip Spec      14 (20) '2.0'\n-64E19 Created OS            00 (0) 'MS-DOS'\n-64E1A Extract Zip Spec      14 (20) '2.0'\n-64E1B Extract OS            00 (0) 'MS-DOS'\n-64E1C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64E1E Compression Method    0000 (0) 'Stored'\n-64E20 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64E24 CRC                   0192E22B (26403371)\n-64E28 Compressed Size       00000359 (857)\n-64E2C Uncompressed Size     00000359 (857)\n-64E30 Filename Length       0038 (56)\n-64E32 Extra Length          0009 (9)\n-64E34 Comment Length        0000 (0)\n-64E36 Disk Start            0000 (0)\n-64E38 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64E3A Ext File Attributes   00000000 (0)\n-64E3E Local Header Offset   0001DE64 (122468)\n-64E42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64E42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64E7A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64E7C   Length              0005 (5)\n-64E7E   Flags               01 (1) 'Modification'\n-64E7F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64E83 CENTRAL HEADER #60    02014B50 (33639248)\n-64E87 Created Zip Spec      14 (20) '2.0'\n-64E88 Created OS            00 (0) 'MS-DOS'\n-64E89 Extract Zip Spec      14 (20) '2.0'\n-64E8A Extract OS            00 (0) 'MS-DOS'\n-64E8B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64E8D Compression Method    0000 (0) 'Stored'\n-64E8F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64E93 CRC                   26456553 (642082131)\n-64E97 Compressed Size       0000179C (6044)\n-64E9B Uncompressed Size     0000179C (6044)\n-64E9F Filename Length       0030 (48)\n-64EA1 Extra Length          0009 (9)\n-64EA3 Comment Length        0000 (0)\n-64EA5 Disk Start            0000 (0)\n-64EA7 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64EA9 Ext File Attributes   00000000 (0)\n-64EAD Local Header Offset   0001E22C (123436)\n-64EB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64EB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64EE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64EE3   Length              0005 (5)\n-64EE5   Flags               01 (1) 'Modification'\n-64EE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64EEA CENTRAL HEADER #61    02014B50 (33639248)\n-64EEE Created Zip Spec      14 (20) '2.0'\n-64EEF Created OS            00 (0) 'MS-DOS'\n-64EF0 Extract Zip Spec      14 (20) '2.0'\n-64EF1 Extract OS            00 (0) 'MS-DOS'\n-64EF2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64EF4 Compression Method    0000 (0) 'Stored'\n-64EF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64EFA CRC                   A742848E (2806154382)\n-64EFE Compressed Size       000000DE (222)\n-64F02 Uncompressed Size     000000DE (222)\n-64F06 Filename Length       0029 (41)\n-64F08 Extra Length          0009 (9)\n-64F0A Comment Length        0000 (0)\n-64F0C Disk Start            0000 (0)\n-64F0E Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64F10 Ext File Attributes   00000000 (0)\n-64F14 Local Header Offset   0001FA2F (129583)\n-64F18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64F18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64F41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64F43   Length              0005 (5)\n-64F45   Flags               01 (1) 'Modification'\n-64F46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64F4A CENTRAL HEADER #62    02014B50 (33639248)\n-64F4E Created Zip Spec      14 (20) '2.0'\n-64F4F Created OS            00 (0) 'MS-DOS'\n-64F50 Extract Zip Spec      14 (20) '2.0'\n-64F51 Extract OS            00 (0) 'MS-DOS'\n-64F52 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64F54 Compression Method    0000 (0) 'Stored'\n-64F56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64F5A CRC                   B3EE9627 (3018757671)\n-64F5E Compressed Size       0000061F (1567)\n-64F62 Uncompressed Size     0000061F (1567)\n-64F66 Filename Length       0030 (48)\n-64F68 Extra Length          0009 (9)\n-64F6A Comment Length        0000 (0)\n-64F6C Disk Start            0000 (0)\n-64F6E Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64F70 Ext File Attributes   00000000 (0)\n-64F74 Local Header Offset   0001FB6D (129901)\n-64F78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64F78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64FA8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64FAA   Length              0005 (5)\n-64FAC   Flags               01 (1) 'Modification'\n-64FAD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-64FB1 CENTRAL HEADER #63    02014B50 (33639248)\n-64FB5 Created Zip Spec      14 (20) '2.0'\n-64FB6 Created OS            00 (0) 'MS-DOS'\n-64FB7 Extract Zip Spec      14 (20) '2.0'\n-64FB8 Extract OS            00 (0) 'MS-DOS'\n-64FB9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-64FBB Compression Method    0000 (0) 'Stored'\n-64FBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64FC1 CRC                   AEEAA635 (2934613557)\n-64FC5 Compressed Size       000002AF (687)\n-64FC9 Uncompressed Size     000002AF (687)\n-64FCD Filename Length       0032 (50)\n-64FCF Extra Length          0009 (9)\n-64FD1 Comment Length        0000 (0)\n-64FD3 Disk Start            0000 (0)\n-64FD5 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-64FD7 Ext File Attributes   00000000 (0)\n-64FDB Local Header Offset   000201F3 (131571)\n-64FDF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64FDF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65011 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65013   Length              0005 (5)\n-65015   Flags               01 (1) 'Modification'\n-65016   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6501A CENTRAL HEADER #64    02014B50 (33639248)\n-6501E Created Zip Spec      14 (20) '2.0'\n-6501F Created OS            00 (0) 'MS-DOS'\n-65020 Extract Zip Spec      14 (20) '2.0'\n-65021 Extract OS            00 (0) 'MS-DOS'\n-65022 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65024 Compression Method    0000 (0) 'Stored'\n-65026 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6502A CRC                   0FF8665E (267937374)\n-6502E Compressed Size       00001084 (4228)\n-65032 Uncompressed Size     00001084 (4228)\n-65036 Filename Length       0027 (39)\n-65038 Extra Length          0009 (9)\n-6503A Comment Length        0000 (0)\n-6503C Disk Start            0000 (0)\n-6503E Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65040 Ext File Attributes   00000000 (0)\n-65044 Local Header Offset   0002050B (132363)\n-65048 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65048: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6506F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65071   Length              0005 (5)\n-65073   Flags               01 (1) 'Modification'\n-65074   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65078 CENTRAL HEADER #65    02014B50 (33639248)\n-6507C Created Zip Spec      14 (20) '2.0'\n-6507D Created OS            00 (0) 'MS-DOS'\n-6507E Extract Zip Spec      14 (20) '2.0'\n-6507F Extract OS            00 (0) 'MS-DOS'\n-65080 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65082 Compression Method    0000 (0) 'Stored'\n-65084 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65088 CRC                   F0E6137B (4041610107)\n-6508C Compressed Size       000016A0 (5792)\n-65090 Uncompressed Size     000016A0 (5792)\n-65094 Filename Length       002D (45)\n-65096 Extra Length          0009 (9)\n-65098 Comment Length        0000 (0)\n-6509A Disk Start            0000 (0)\n-6509C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6509E Ext File Attributes   00000000 (0)\n-650A2 Local Header Offset   000215ED (136685)\n-650A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x650A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-650D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-650D5   Length              0005 (5)\n-650D7   Flags               01 (1) 'Modification'\n-650D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-650DC CENTRAL HEADER #66    02014B50 (33639248)\n-650E0 Created Zip Spec      14 (20) '2.0'\n-650E1 Created OS            00 (0) 'MS-DOS'\n-650E2 Extract Zip Spec      14 (20) '2.0'\n-650E3 Extract OS            00 (0) 'MS-DOS'\n-650E4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-650E6 Compression Method    0000 (0) 'Stored'\n-650E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-650EC CRC                   2442917B (608342395)\n-650F0 Compressed Size       000025D4 (9684)\n-650F4 Uncompressed Size     000025D4 (9684)\n-650F8 Filename Length       0028 (40)\n-650FA Extra Length          0009 (9)\n-650FC Comment Length        0000 (0)\n-650FE Disk Start            0000 (0)\n-65100 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65102 Ext File Attributes   00000000 (0)\n-65106 Local Header Offset   00022CF1 (142577)\n-6510A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6510A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65132 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65134   Length              0005 (5)\n-65136   Flags               01 (1) 'Modification'\n-65137   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6513B CENTRAL HEADER #67    02014B50 (33639248)\n-6513F Created Zip Spec      14 (20) '2.0'\n-65140 Created OS            00 (0) 'MS-DOS'\n-65141 Extract Zip Spec      14 (20) '2.0'\n-65142 Extract OS            00 (0) 'MS-DOS'\n-65143 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65145 Compression Method    0000 (0) 'Stored'\n-65147 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6514B CRC                   C3FAA4DD (3287983325)\n-6514F Compressed Size       00002792 (10130)\n-65153 Uncompressed Size     00002792 (10130)\n-65157 Filename Length       0032 (50)\n-65159 Extra Length          0009 (9)\n-6515B Comment Length        0000 (0)\n-6515D Disk Start            0000 (0)\n-6515F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65161 Ext File Attributes   00000000 (0)\n-65165 Local Header Offset   00025324 (152356)\n-65169 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65169: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6519B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6519D   Length              0005 (5)\n-6519F   Flags               01 (1) 'Modification'\n-651A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-651A4 CENTRAL HEADER #68    02014B50 (33639248)\n-651A8 Created Zip Spec      14 (20) '2.0'\n-651A9 Created OS            00 (0) 'MS-DOS'\n-651AA Extract Zip Spec      14 (20) '2.0'\n-651AB Extract OS            00 (0) 'MS-DOS'\n-651AC General Purpose Flag  0000 (0)\n-651AE Compression Method    0000 (0) 'Stored'\n-651B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-651B4 CRC                   00000000 (0)\n-651B8 Compressed Size       00000000 (0)\n-651BC Uncompressed Size     00000000 (0)\n-651C0 Filename Length       0016 (22)\n-651C2 Extra Length          0009 (9)\n-651C4 Comment Length        0000 (0)\n-651C6 Disk Start            0000 (0)\n-651C8 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-651CA Ext File Attributes   00000000 (0)\n-651CE Local Header Offset   00027B1F (162591)\n-651D2 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x651D2: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-651E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-651EA   Length              0005 (5)\n-651EC   Flags               01 (1) 'Modification'\n-651ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-651F1 CENTRAL HEADER #69    02014B50 (33639248)\n-651F5 Created Zip Spec      14 (20) '2.0'\n-651F6 Created OS            00 (0) 'MS-DOS'\n-651F7 Extract Zip Spec      14 (20) '2.0'\n-651F8 Extract OS            00 (0) 'MS-DOS'\n-651F9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-651FB Compression Method    0000 (0) 'Stored'\n-651FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65201 CRC                   9F500704 (2672822020)\n-65205 Compressed Size       00000A5F (2655)\n-65209 Uncompressed Size     00000A5F (2655)\n-6520D Filename Length       0030 (48)\n-6520F Extra Length          0009 (9)\n-65211 Comment Length        0000 (0)\n-65213 Disk Start            0000 (0)\n-65215 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65217 Ext File Attributes   00000000 (0)\n-6521B Local Header Offset   00027B5C (162652)\n-6521F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6521F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6524F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65251   Length              0005 (5)\n-65253   Flags               01 (1) 'Modification'\n-65254   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65258 CENTRAL HEADER #70    02014B50 (33639248)\n-6525C Created Zip Spec      14 (20) '2.0'\n-6525D Created OS            00 (0) 'MS-DOS'\n-6525E Extract Zip Spec      14 (20) '2.0'\n-6525F Extract OS            00 (0) 'MS-DOS'\n-65260 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65262 Compression Method    0000 (0) 'Stored'\n-65264 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65268 CRC                   F12CA953 (4046235987)\n-6526C Compressed Size       00000478 (1144)\n-65270 Uncompressed Size     00000478 (1144)\n-65274 Filename Length       0058 (88)\n-65276 Extra Length          0009 (9)\n-65278 Comment Length        0000 (0)\n-6527A Disk Start            0000 (0)\n-6527C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6527E Ext File Attributes   00000000 (0)\n-65282 Local Header Offset   00028622 (165410)\n-65286 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65286: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-652DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-652E0   Length              0005 (5)\n-652E2   Flags               01 (1) 'Modification'\n-652E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-652E7 CENTRAL HEADER #71    02014B50 (33639248)\n-652EB Created Zip Spec      14 (20) '2.0'\n-652EC Created OS            00 (0) 'MS-DOS'\n-652ED Extract Zip Spec      14 (20) '2.0'\n-652EE Extract OS            00 (0) 'MS-DOS'\n-652EF General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-652F1 Compression Method    0000 (0) 'Stored'\n-652F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-652F7 CRC                   BEAABD2F (3198860591)\n-652FB Compressed Size       00000477 (1143)\n-652FF Uncompressed Size     00000477 (1143)\n-65303 Filename Length       0038 (56)\n-65305 Extra Length          0009 (9)\n-65307 Comment Length        0000 (0)\n-65309 Disk Start            0000 (0)\n-6530B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6530D Ext File Attributes   00000000 (0)\n-65311 Local Header Offset   00028B29 (166697)\n-65315 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65315: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6534D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6534F   Length              0005 (5)\n-65351   Flags               01 (1) 'Modification'\n-65352   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65356 CENTRAL HEADER #72    02014B50 (33639248)\n-6535A Created Zip Spec      14 (20) '2.0'\n-6535B Created OS            00 (0) 'MS-DOS'\n-6535C Extract Zip Spec      14 (20) '2.0'\n-6535D Extract OS            00 (0) 'MS-DOS'\n-6535E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65360 Compression Method    0000 (0) 'Stored'\n-65362 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65366 CRC                   0E52C45C (240305244)\n-6536A Compressed Size       000002F1 (753)\n-6536E Uncompressed Size     000002F1 (753)\n-65372 Filename Length       0036 (54)\n-65374 Extra Length          0009 (9)\n-65376 Comment Length        0000 (0)\n-65378 Disk Start            0000 (0)\n-6537A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6537C Ext File Attributes   00000000 (0)\n-65380 Local Header Offset   0002900F (167951)\n-65384 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65384: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-653BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-653BC   Length              0005 (5)\n-653BE   Flags               01 (1) 'Modification'\n-653BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-653C3 CENTRAL HEADER #73    02014B50 (33639248)\n-653C7 Created Zip Spec      14 (20) '2.0'\n-653C8 Created OS            00 (0) 'MS-DOS'\n-653C9 Extract Zip Spec      14 (20) '2.0'\n-653CA Extract OS            00 (0) 'MS-DOS'\n-653CB General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-653CD Compression Method    0000 (0) 'Stored'\n-653CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-653D3 CRC                   8AC14B9F (2327923615)\n-653D7 Compressed Size       00000924 (2340)\n-653DB Uncompressed Size     00000924 (2340)\n-653DF Filename Length       0029 (41)\n-653E1 Extra Length          0009 (9)\n-653E3 Comment Length        0000 (0)\n-653E5 Disk Start            0000 (0)\n-653E7 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-653E9 Ext File Attributes   00000000 (0)\n-653ED Local Header Offset   0002936D (168813)\n-653F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x653F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6541A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6541C   Length              0005 (5)\n-6541E   Flags               01 (1) 'Modification'\n-6541F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65423 CENTRAL HEADER #74    02014B50 (33639248)\n-65427 Created Zip Spec      14 (20) '2.0'\n-65428 Created OS            00 (0) 'MS-DOS'\n-65429 Extract Zip Spec      14 (20) '2.0'\n-6542A Extract OS            00 (0) 'MS-DOS'\n-6542B General Purpose Flag  0000 (0)\n-6542D Compression Method    0000 (0) 'Stored'\n-6542F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65433 CRC                   00000000 (0)\n-65437 Compressed Size       00000000 (0)\n-6543B Uncompressed Size     00000000 (0)\n-6543F Filename Length       001B (27)\n-65441 Extra Length          0009 (9)\n-65443 Comment Length        0000 (0)\n-65445 Disk Start            0000 (0)\n-65447 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65449 Ext File Attributes   00000000 (0)\n-6544D Local Header Offset   00029CF1 (171249)\n-65451 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65451: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6546C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6546E   Length              0005 (5)\n-65470   Flags               01 (1) 'Modification'\n-65471   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65475 CENTRAL HEADER #75    02014B50 (33639248)\n-65479 Created Zip Spec      14 (20) '2.0'\n-6547A Created OS            00 (0) 'MS-DOS'\n-6547B Extract Zip Spec      14 (20) '2.0'\n-6547C Extract OS            00 (0) 'MS-DOS'\n-6547D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6547F Compression Method    0000 (0) 'Stored'\n-65481 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65485 CRC                   C3825DA4 (3280100772)\n-65489 Compressed Size       0000061E (1566)\n-6548D Uncompressed Size     0000061E (1566)\n-65491 Filename Length       0049 (73)\n-65493 Extra Length          0009 (9)\n-65495 Comment Length        0000 (0)\n-65497 Disk Start            0000 (0)\n-65499 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6549B Ext File Attributes   00000000 (0)\n-6549F Local Header Offset   00029D33 (171315)\n-654A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x654A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-654EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-654EE   Length              0005 (5)\n-654F0   Flags               01 (1) 'Modification'\n-654F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-654F5 CENTRAL HEADER #76    02014B50 (33639248)\n-654F9 Created Zip Spec      14 (20) '2.0'\n-654FA Created OS            00 (0) 'MS-DOS'\n-654FB Extract Zip Spec      14 (20) '2.0'\n-654FC Extract OS            00 (0) 'MS-DOS'\n-654FD General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-654FF Compression Method    0000 (0) 'Stored'\n-65501 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65505 CRC                   5F4C893F (1598851391)\n-65509 Compressed Size       000013B5 (5045)\n-6550D Uncompressed Size     000013B5 (5045)\n-65511 Filename Length       0036 (54)\n-65513 Extra Length          0009 (9)\n-65515 Comment Length        0000 (0)\n-65517 Disk Start            0000 (0)\n-65519 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6551B Ext File Attributes   00000000 (0)\n-6551F Local Header Offset   0002A3D1 (173009)\n-65523 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65523: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65559 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6555B   Length              0005 (5)\n-6555D   Flags               01 (1) 'Modification'\n-6555E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65562 CENTRAL HEADER #77    02014B50 (33639248)\n-65566 Created Zip Spec      14 (20) '2.0'\n-65567 Created OS            00 (0) 'MS-DOS'\n-65568 Extract Zip Spec      14 (20) '2.0'\n-65569 Extract OS            00 (0) 'MS-DOS'\n-6556A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6556C Compression Method    0000 (0) 'Stored'\n-6556E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65572 CRC                   746795EC (1952945644)\n-65576 Compressed Size       00000752 (1874)\n-6557A Uncompressed Size     00000752 (1874)\n-6557E Filename Length       0058 (88)\n-65580 Extra Length          0009 (9)\n-65582 Comment Length        0000 (0)\n-65584 Disk Start            0000 (0)\n-65586 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65588 Ext File Attributes   00000000 (0)\n-6558C Local Header Offset   0002B7F3 (178163)\n-65590 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65590: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-655E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-655EA   Length              0005 (5)\n-655EC   Flags               01 (1) 'Modification'\n-655ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-655F1 CENTRAL HEADER #78    02014B50 (33639248)\n-655F5 Created Zip Spec      14 (20) '2.0'\n-655F6 Created OS            00 (0) 'MS-DOS'\n-655F7 Extract Zip Spec      14 (20) '2.0'\n-655F8 Extract OS            00 (0) 'MS-DOS'\n-655F9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-655FB Compression Method    0000 (0) 'Stored'\n-655FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65601 CRC                   D8D02F36 (3637522230)\n-65605 Compressed Size       0000084F (2127)\n-65609 Uncompressed Size     0000084F (2127)\n-6560D Filename Length       005B (91)\n-6560F Extra Length          0009 (9)\n-65611 Comment Length        0000 (0)\n-65613 Disk Start            0000 (0)\n-65615 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65617 Ext File Attributes   00000000 (0)\n-6561B Local Header Offset   0002BFD4 (180180)\n-6561F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6561F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6567A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6567C   Length              0005 (5)\n-6567E   Flags               01 (1) 'Modification'\n-6567F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65683 CENTRAL HEADER #79    02014B50 (33639248)\n-65687 Created Zip Spec      14 (20) '2.0'\n-65688 Created OS            00 (0) 'MS-DOS'\n-65689 Extract Zip Spec      14 (20) '2.0'\n-6568A Extract OS            00 (0) 'MS-DOS'\n-6568B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6568D Compression Method    0000 (0) 'Stored'\n-6568F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65693 CRC                   650EE0FC (1695473916)\n-65697 Compressed Size       000016FC (5884)\n-6569B Uncompressed Size     000016FC (5884)\n-6569F Filename Length       003F (63)\n-656A1 Extra Length          0009 (9)\n-656A3 Comment Length        0000 (0)\n-656A5 Disk Start            0000 (0)\n-656A7 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-656A9 Ext File Attributes   00000000 (0)\n-656AD Local Header Offset   0002C8B5 (182453)\n-656B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x656B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-656F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-656F2   Length              0005 (5)\n-656F4   Flags               01 (1) 'Modification'\n-656F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-656F9 CENTRAL HEADER #80    02014B50 (33639248)\n-656FD Created Zip Spec      14 (20) '2.0'\n-656FE Created OS            00 (0) 'MS-DOS'\n-656FF Extract Zip Spec      14 (20) '2.0'\n-65700 Extract OS            00 (0) 'MS-DOS'\n-65701 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65703 Compression Method    0000 (0) 'Stored'\n-65705 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65709 CRC                   95A69441 (2510722113)\n-6570D Compressed Size       00000A31 (2609)\n-65711 Uncompressed Size     00000A31 (2609)\n-65715 Filename Length       003D (61)\n-65717 Extra Length          0009 (9)\n-65719 Comment Length        0000 (0)\n-6571B Disk Start            0000 (0)\n-6571D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6571F Ext File Attributes   00000000 (0)\n-65723 Local Header Offset   0002E027 (188455)\n-65727 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65727: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65764 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65766   Length              0005 (5)\n-65768   Flags               01 (1) 'Modification'\n-65769   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6576D CENTRAL HEADER #81    02014B50 (33639248)\n-65771 Created Zip Spec      14 (20) '2.0'\n-65772 Created OS            00 (0) 'MS-DOS'\n-65773 Extract Zip Spec      14 (20) '2.0'\n-65774 Extract OS            00 (0) 'MS-DOS'\n-65775 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65777 Compression Method    0000 (0) 'Stored'\n-65779 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6577D CRC                   FA045593 (4194588051)\n-65781 Compressed Size       00000822 (2082)\n-65785 Uncompressed Size     00000822 (2082)\n-65789 Filename Length       005B (91)\n-6578B Extra Length          0009 (9)\n-6578D Comment Length        0000 (0)\n-6578F Disk Start            0000 (0)\n-65791 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65793 Ext File Attributes   00000000 (0)\n-65797 Local Header Offset   0002EACC (191180)\n-6579B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6579B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-657F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-657F8   Length              0005 (5)\n-657FA   Flags               01 (1) 'Modification'\n-657FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-657FF CENTRAL HEADER #82    02014B50 (33639248)\n-65803 Created Zip Spec      14 (20) '2.0'\n-65804 Created OS            00 (0) 'MS-DOS'\n-65805 Extract Zip Spec      14 (20) '2.0'\n-65806 Extract OS            00 (0) 'MS-DOS'\n-65807 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65809 Compression Method    0000 (0) 'Stored'\n-6580B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6580F CRC                   F379F16D (4084855149)\n-65813 Compressed Size       000007C7 (1991)\n-65817 Uncompressed Size     000007C7 (1991)\n-6581B Filename Length       0038 (56)\n-6581D Extra Length          0009 (9)\n-6581F Comment Length        0000 (0)\n-65821 Disk Start            0000 (0)\n-65823 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65825 Ext File Attributes   00000000 (0)\n-65829 Local Header Offset   0002F380 (193408)\n-6582D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6582D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65865 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65867   Length              0005 (5)\n-65869   Flags               01 (1) 'Modification'\n-6586A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6586E CENTRAL HEADER #83    02014B50 (33639248)\n-65872 Created Zip Spec      14 (20) '2.0'\n-65873 Created OS            00 (0) 'MS-DOS'\n-65874 Extract Zip Spec      14 (20) '2.0'\n-65875 Extract OS            00 (0) 'MS-DOS'\n-65876 General Purpose Flag  0000 (0)\n-65878 Compression Method    0000 (0) 'Stored'\n-6587A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6587E CRC                   00000000 (0)\n-65882 Compressed Size       00000000 (0)\n-65886 Uncompressed Size     00000000 (0)\n-6588A Filename Length       0020 (32)\n-6588C Extra Length          0009 (9)\n-6588E Comment Length        0000 (0)\n-65890 Disk Start            0000 (0)\n-65892 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65894 Ext File Attributes   00000000 (0)\n-65898 Local Header Offset   0002FBB6 (195510)\n-6589C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6589C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-658BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-658BE   Length              0005 (5)\n-658C0   Flags               01 (1) 'Modification'\n-658C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-658C5 CENTRAL HEADER #84    02014B50 (33639248)\n-658C9 Created Zip Spec      14 (20) '2.0'\n-658CA Created OS            00 (0) 'MS-DOS'\n-658CB Extract Zip Spec      14 (20) '2.0'\n-658CC Extract OS            00 (0) 'MS-DOS'\n-658CD General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-658CF Compression Method    0000 (0) 'Stored'\n-658D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-658D5 CRC                   88ADB6B0 (2293085872)\n-658D9 Compressed Size       00000AE8 (2792)\n-658DD Uncompressed Size     00000AE8 (2792)\n-658E1 Filename Length       0033 (51)\n-658E3 Extra Length          0009 (9)\n-658E5 Comment Length        0000 (0)\n-658E7 Disk Start            0000 (0)\n-658E9 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-658EB Ext File Attributes   00000000 (0)\n-658EF Local Header Offset   0002FBFD (195581)\n-658F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x658F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65926 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65928   Length              0005 (5)\n-6592A   Flags               01 (1) 'Modification'\n-6592B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6592F CENTRAL HEADER #85    02014B50 (33639248)\n-65933 Created Zip Spec      14 (20) '2.0'\n-65934 Created OS            00 (0) 'MS-DOS'\n-65935 Extract Zip Spec      14 (20) '2.0'\n-65936 Extract OS            00 (0) 'MS-DOS'\n-65937 General Purpose Flag  0000 (0)\n-65939 Compression Method    0000 (0) 'Stored'\n-6593B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6593F CRC                   00000000 (0)\n-65943 Compressed Size       00000000 (0)\n-65947 Uncompressed Size     00000000 (0)\n-6594B Filename Length       0020 (32)\n-6594D Extra Length          0009 (9)\n-6594F Comment Length        0000 (0)\n-65951 Disk Start            0000 (0)\n-65953 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65955 Ext File Attributes   00000000 (0)\n-65959 Local Header Offset   0003074F (198479)\n-6595D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6595D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6597D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6597F   Length              0005 (5)\n-65981   Flags               01 (1) 'Modification'\n-65982   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65986 CENTRAL HEADER #86    02014B50 (33639248)\n-6598A Created Zip Spec      14 (20) '2.0'\n-6598B Created OS            00 (0) 'MS-DOS'\n-6598C Extract Zip Spec      14 (20) '2.0'\n-6598D Extract OS            00 (0) 'MS-DOS'\n-6598E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65990 Compression Method    0000 (0) 'Stored'\n-65992 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65996 CRC                   0EAC3ED9 (246169305)\n-6599A Compressed Size       00000540 (1344)\n-6599E Uncompressed Size     00000540 (1344)\n-659A2 Filename Length       0051 (81)\n-659A4 Extra Length          0009 (9)\n-659A6 Comment Length        0000 (0)\n-659A8 Disk Start            0000 (0)\n-659AA Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-659AC Ext File Attributes   00000000 (0)\n-659B0 Local Header Offset   00030796 (198550)\n-659B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x659B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65A05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65A07   Length              0005 (5)\n-65A09   Flags               01 (1) 'Modification'\n-65A0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65A0E CENTRAL HEADER #87    02014B50 (33639248)\n-65A12 Created Zip Spec      14 (20) '2.0'\n-65A13 Created OS            00 (0) 'MS-DOS'\n-65A14 Extract Zip Spec      14 (20) '2.0'\n-65A15 Extract OS            00 (0) 'MS-DOS'\n-65A16 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65A18 Compression Method    0000 (0) 'Stored'\n-65A1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65A1E CRC                   F917B64C (4179080780)\n-65A22 Compressed Size       00000D32 (3378)\n-65A26 Uncompressed Size     00000D32 (3378)\n-65A2A Filename Length       004B (75)\n-65A2C Extra Length          0009 (9)\n-65A2E Comment Length        0000 (0)\n-65A30 Disk Start            0000 (0)\n-65A32 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65A34 Ext File Attributes   00000000 (0)\n-65A38 Local Header Offset   00030D5E (200030)\n-65A3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65A3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65A87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65A89   Length              0005 (5)\n-65A8B   Flags               01 (1) 'Modification'\n-65A8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65A90 CENTRAL HEADER #88    02014B50 (33639248)\n-65A94 Created Zip Spec      14 (20) '2.0'\n-65A95 Created OS            00 (0) 'MS-DOS'\n-65A96 Extract Zip Spec      14 (20) '2.0'\n-65A97 Extract OS            00 (0) 'MS-DOS'\n-65A98 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65A9A Compression Method    0000 (0) 'Stored'\n-65A9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65AA0 CRC                   EA4A8A35 (3930753589)\n-65AA4 Compressed Size       00000F8E (3982)\n-65AA8 Uncompressed Size     00000F8E (3982)\n-65AAC Filename Length       0038 (56)\n-65AAE Extra Length          0009 (9)\n-65AB0 Comment Length        0000 (0)\n-65AB2 Disk Start            0000 (0)\n-65AB4 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65AB6 Ext File Attributes   00000000 (0)\n-65ABA Local Header Offset   00031B12 (203538)\n-65ABE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65ABE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65AF6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65AF8   Length              0005 (5)\n-65AFA   Flags               01 (1) 'Modification'\n-65AFB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65AFF CENTRAL HEADER #89    02014B50 (33639248)\n-65B03 Created Zip Spec      14 (20) '2.0'\n-65B04 Created OS            00 (0) 'MS-DOS'\n-65B05 Extract Zip Spec      14 (20) '2.0'\n-65B06 Extract OS            00 (0) 'MS-DOS'\n-65B07 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65B09 Compression Method    0000 (0) 'Stored'\n-65B0B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65B0F CRC                   EBB29269 (3954348649)\n-65B13 Compressed Size       00000356 (854)\n-65B17 Uncompressed Size     00000356 (854)\n-65B1B Filename Length       0060 (96)\n-65B1D Extra Length          0009 (9)\n-65B1F Comment Length        0000 (0)\n-65B21 Disk Start            0000 (0)\n-65B23 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65B25 Ext File Attributes   00000000 (0)\n-65B29 Local Header Offset   00032B0F (207631)\n-65B2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65B2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65B8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65B8F   Length              0005 (5)\n-65B91   Flags               01 (1) 'Modification'\n-65B92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65B96 CENTRAL HEADER #90    02014B50 (33639248)\n-65B9A Created Zip Spec      14 (20) '2.0'\n-65B9B Created OS            00 (0) 'MS-DOS'\n-65B9C Extract Zip Spec      14 (20) '2.0'\n-65B9D Extract OS            00 (0) 'MS-DOS'\n-65B9E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65BA0 Compression Method    0000 (0) 'Stored'\n-65BA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65BA6 CRC                   350155F3 (889279987)\n-65BAA Compressed Size       0000068B (1675)\n-65BAE Uncompressed Size     0000068B (1675)\n-65BB2 Filename Length       003D (61)\n-65BB4 Extra Length          0009 (9)\n-65BB6 Comment Length        0000 (0)\n-65BB8 Disk Start            0000 (0)\n-65BBA Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65BBC Ext File Attributes   00000000 (0)\n-65BC0 Local Header Offset   00032EFC (208636)\n-65BC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65BC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65C01 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65C03   Length              0005 (5)\n-65C05   Flags               01 (1) 'Modification'\n-65C06   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65C0A CENTRAL HEADER #91    02014B50 (33639248)\n-65C0E Created Zip Spec      14 (20) '2.0'\n-65C0F Created OS            00 (0) 'MS-DOS'\n-65C10 Extract Zip Spec      14 (20) '2.0'\n-65C11 Extract OS            00 (0) 'MS-DOS'\n-65C12 General Purpose Flag  0000 (0)\n-65C14 Compression Method    0000 (0) 'Stored'\n-65C16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65C1A CRC                   00000000 (0)\n-65C1E Compressed Size       00000000 (0)\n-65C22 Uncompressed Size     00000000 (0)\n-65C26 Filename Length       001C (28)\n-65C28 Extra Length          0009 (9)\n-65C2A Comment Length        0000 (0)\n-65C2C Disk Start            0000 (0)\n-65C2E Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65C30 Ext File Attributes   00000000 (0)\n-65C34 Local Header Offset   000335FB (210427)\n-65C38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65C38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65C54 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65C56   Length              0005 (5)\n-65C58   Flags               01 (1) 'Modification'\n-65C59   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65C5D CENTRAL HEADER #92    02014B50 (33639248)\n-65C61 Created Zip Spec      14 (20) '2.0'\n-65C62 Created OS            00 (0) 'MS-DOS'\n-65C63 Extract Zip Spec      14 (20) '2.0'\n-65C64 Extract OS            00 (0) 'MS-DOS'\n-65C65 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65C67 Compression Method    0000 (0) 'Stored'\n-65C69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65C6D CRC                   9418DDB4 (2484657588)\n-65C71 Compressed Size       00000411 (1041)\n-65C75 Uncompressed Size     00000411 (1041)\n-65C79 Filename Length       0040 (64)\n-65C7B Extra Length          0009 (9)\n-65C7D Comment Length        0000 (0)\n-65C7F Disk Start            0000 (0)\n-65C81 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65C83 Ext File Attributes   00000000 (0)\n-65C87 Local Header Offset   0003363E (210494)\n-65C8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65C8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65CCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65CCD   Length              0005 (5)\n-65CCF   Flags               01 (1) 'Modification'\n-65CD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65CD4 CENTRAL HEADER #93    02014B50 (33639248)\n-65CD8 Created Zip Spec      14 (20) '2.0'\n-65CD9 Created OS            00 (0) 'MS-DOS'\n-65CDA Extract Zip Spec      14 (20) '2.0'\n-65CDB Extract OS            00 (0) 'MS-DOS'\n-65CDC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65CDE Compression Method    0000 (0) 'Stored'\n-65CE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65CE4 CRC                   CA7E6088 (3397279880)\n-65CE8 Compressed Size       000010DD (4317)\n-65CEC Uncompressed Size     000010DD (4317)\n-65CF0 Filename Length       0030 (48)\n-65CF2 Extra Length          0009 (9)\n-65CF4 Comment Length        0000 (0)\n-65CF6 Disk Start            0000 (0)\n-65CF8 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65CFA Ext File Attributes   00000000 (0)\n-65CFE Local Header Offset   00033AC6 (211654)\n-65D02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65D02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65D32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65D34   Length              0005 (5)\n-65D36   Flags               01 (1) 'Modification'\n-65D37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65D3B CENTRAL HEADER #94    02014B50 (33639248)\n-65D3F Created Zip Spec      14 (20) '2.0'\n-65D40 Created OS            00 (0) 'MS-DOS'\n-65D41 Extract Zip Spec      14 (20) '2.0'\n-65D42 Extract OS            00 (0) 'MS-DOS'\n-65D43 General Purpose Flag  0000 (0)\n-65D45 Compression Method    0000 (0) 'Stored'\n-65D47 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65D4B CRC                   00000000 (0)\n-65D4F Compressed Size       00000000 (0)\n-65D53 Uncompressed Size     00000000 (0)\n-65D57 Filename Length       001C (28)\n-65D59 Extra Length          0009 (9)\n-65D5B Comment Length        0000 (0)\n-65D5D Disk Start            0000 (0)\n-65D5F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65D61 Ext File Attributes   00000000 (0)\n-65D65 Local Header Offset   00034C0A (216074)\n-65D69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65D69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65D85 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65D87   Length              0005 (5)\n-65D89   Flags               01 (1) 'Modification'\n-65D8A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65D8E CENTRAL HEADER #95    02014B50 (33639248)\n-65D92 Created Zip Spec      14 (20) '2.0'\n-65D93 Created OS            00 (0) 'MS-DOS'\n-65D94 Extract Zip Spec      14 (20) '2.0'\n-65D95 Extract OS            00 (0) 'MS-DOS'\n-65D96 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65D98 Compression Method    0000 (0) 'Stored'\n-65D9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65D9E CRC                   452F6D91 (1160736145)\n-65DA2 Compressed Size       00001C1F (7199)\n-65DA6 Uncompressed Size     00001C1F (7199)\n-65DAA Filename Length       0034 (52)\n-65DAC Extra Length          0009 (9)\n-65DAE Comment Length        0000 (0)\n-65DB0 Disk Start            0000 (0)\n-65DB2 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65DB4 Ext File Attributes   00000000 (0)\n-65DB8 Local Header Offset   00034C4D (216141)\n-65DBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65DBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65DF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65DF2   Length              0005 (5)\n-65DF4   Flags               01 (1) 'Modification'\n-65DF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65DF9 CENTRAL HEADER #96    02014B50 (33639248)\n-65DFD Created Zip Spec      14 (20) '2.0'\n-65DFE Created OS            00 (0) 'MS-DOS'\n-65DFF Extract Zip Spec      14 (20) '2.0'\n-65E00 Extract OS            00 (0) 'MS-DOS'\n-65E01 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65E03 Compression Method    0000 (0) 'Stored'\n-65E05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65E09 CRC                   596C85E3 (1500284387)\n-65E0D Compressed Size       00000E7F (3711)\n-65E11 Uncompressed Size     00000E7F (3711)\n-65E15 Filename Length       002C (44)\n-65E17 Extra Length          0009 (9)\n-65E19 Comment Length        0000 (0)\n-65E1B Disk Start            0000 (0)\n-65E1D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65E1F Ext File Attributes   00000000 (0)\n-65E23 Local Header Offset   000368D7 (223447)\n-65E27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65E27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65E53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65E55   Length              0005 (5)\n-65E57   Flags               01 (1) 'Modification'\n-65E58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65E5C CENTRAL HEADER #97    02014B50 (33639248)\n-65E60 Created Zip Spec      14 (20) '2.0'\n-65E61 Created OS            00 (0) 'MS-DOS'\n-65E62 Extract Zip Spec      14 (20) '2.0'\n-65E63 Extract OS            00 (0) 'MS-DOS'\n-65E64 General Purpose Flag  0000 (0)\n-65E66 Compression Method    0000 (0) 'Stored'\n-65E68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65E6C CRC                   00000000 (0)\n-65E70 Compressed Size       00000000 (0)\n-65E74 Uncompressed Size     00000000 (0)\n-65E78 Filename Length       0027 (39)\n-65E7A Extra Length          0009 (9)\n-65E7C Comment Length        0000 (0)\n-65E7E Disk Start            0000 (0)\n-65E80 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65E82 Ext File Attributes   00000000 (0)\n-65E86 Local Header Offset   000377B9 (227257)\n-65E8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65E8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65EB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65EB3   Length              0005 (5)\n-65EB5   Flags               01 (1) 'Modification'\n-65EB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65EBA CENTRAL HEADER #98    02014B50 (33639248)\n-65EBE Created Zip Spec      14 (20) '2.0'\n-65EBF Created OS            00 (0) 'MS-DOS'\n-65EC0 Extract Zip Spec      14 (20) '2.0'\n-65EC1 Extract OS            00 (0) 'MS-DOS'\n-65EC2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65EC4 Compression Method    0000 (0) 'Stored'\n-65EC6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65ECA CRC                   A057B335 (2690102069)\n-65ECE Compressed Size       0000031C (796)\n-65ED2 Uncompressed Size     0000031C (796)\n-65ED6 Filename Length       005C (92)\n-65ED8 Extra Length          0009 (9)\n-65EDA Comment Length        0000 (0)\n-65EDC Disk Start            0000 (0)\n-65EDE Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65EE0 Ext File Attributes   00000000 (0)\n-65EE4 Local Header Offset   00037807 (227335)\n-65EE8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65EE8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65F44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65F46   Length              0005 (5)\n-65F48   Flags               01 (1) 'Modification'\n-65F49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65F4D CENTRAL HEADER #99    02014B50 (33639248)\n-65F51 Created Zip Spec      14 (20) '2.0'\n-65F52 Created OS            00 (0) 'MS-DOS'\n-65F53 Extract Zip Spec      14 (20) '2.0'\n-65F54 Extract OS            00 (0) 'MS-DOS'\n-65F55 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65F57 Compression Method    0000 (0) 'Stored'\n-65F59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65F5D CRC                   6321A4B6 (1663149238)\n-65F61 Compressed Size       0000030E (782)\n-65F65 Uncompressed Size     0000030E (782)\n-65F69 Filename Length       0058 (88)\n-65F6B Extra Length          0009 (9)\n-65F6D Comment Length        0000 (0)\n-65F6F Disk Start            0000 (0)\n-65F71 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-65F73 Ext File Attributes   00000000 (0)\n-65F77 Local Header Offset   00037BB6 (228278)\n-65F7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65F7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65FD3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65FD5   Length              0005 (5)\n-65FD7   Flags               01 (1) 'Modification'\n-65FD8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-65FDC CENTRAL HEADER #100   02014B50 (33639248)\n-65FE0 Created Zip Spec      14 (20) '2.0'\n-65FE1 Created OS            00 (0) 'MS-DOS'\n-65FE2 Extract Zip Spec      14 (20) '2.0'\n-65FE3 Extract OS            00 (0) 'MS-DOS'\n-65FE4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-65FE6 Compression Method    0000 (0) 'Stored'\n-65FE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65FEC CRC                   61507D51 (1632664913)\n-65FF0 Compressed Size       00000E4B (3659)\n-65FF4 Uncompressed Size     00000E4B (3659)\n-65FF8 Filename Length       004F (79)\n-65FFA Extra Length          0009 (9)\n-65FFC Comment Length        0000 (0)\n-65FFE Disk Start            0000 (0)\n-66000 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66002 Ext File Attributes   00000000 (0)\n-66006 Local Header Offset   00037F53 (229203)\n-6600A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6600A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66059 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6605B   Length              0005 (5)\n-6605D   Flags               01 (1) 'Modification'\n-6605E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66062 CENTRAL HEADER #101   02014B50 (33639248)\n-66066 Created Zip Spec      14 (20) '2.0'\n-66067 Created OS            00 (0) 'MS-DOS'\n-66068 Extract Zip Spec      14 (20) '2.0'\n-66069 Extract OS            00 (0) 'MS-DOS'\n-6606A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6606C Compression Method    0000 (0) 'Stored'\n-6606E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66072 CRC                   5344292B (1396975915)\n-66076 Compressed Size       000003A3 (931)\n-6607A Uncompressed Size     000003A3 (931)\n-6607E Filename Length       0053 (83)\n-66080 Extra Length          0009 (9)\n-66082 Comment Length        0000 (0)\n-66084 Disk Start            0000 (0)\n-66086 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66088 Ext File Attributes   00000000 (0)\n-6608C Local Header Offset   00038E24 (232996)\n-66090 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66090: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-660E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-660E5   Length              0005 (5)\n-660E7   Flags               01 (1) 'Modification'\n-660E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-660EC CENTRAL HEADER #102   02014B50 (33639248)\n-660F0 Created Zip Spec      14 (20) '2.0'\n-660F1 Created OS            00 (0) 'MS-DOS'\n-660F2 Extract Zip Spec      14 (20) '2.0'\n-660F3 Extract OS            00 (0) 'MS-DOS'\n-660F4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-660F6 Compression Method    0000 (0) 'Stored'\n-660F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-660FC CRC                   D63BC3A1 (3594240929)\n-66100 Compressed Size       00000641 (1601)\n-66104 Uncompressed Size     00000641 (1601)\n-66108 Filename Length       0059 (89)\n-6610A Extra Length          0009 (9)\n-6610C Comment Length        0000 (0)\n-6610E Disk Start            0000 (0)\n-66110 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66112 Ext File Attributes   00000000 (0)\n-66116 Local Header Offset   00039251 (234065)\n-6611A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6611A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66173 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66175   Length              0005 (5)\n-66177   Flags               01 (1) 'Modification'\n-66178   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6617C CENTRAL HEADER #103   02014B50 (33639248)\n-66180 Created Zip Spec      14 (20) '2.0'\n-66181 Created OS            00 (0) 'MS-DOS'\n-66182 Extract Zip Spec      14 (20) '2.0'\n-66183 Extract OS            00 (0) 'MS-DOS'\n-66184 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66186 Compression Method    0000 (0) 'Stored'\n-66188 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6618C CRC                   8B797A98 (2339994264)\n-66190 Compressed Size       00000724 (1828)\n-66194 Uncompressed Size     00000724 (1828)\n-66198 Filename Length       0059 (89)\n-6619A Extra Length          0009 (9)\n-6619C Comment Length        0000 (0)\n-6619E Disk Start            0000 (0)\n-661A0 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-661A2 Ext File Attributes   00000000 (0)\n-661A6 Local Header Offset   00039922 (235810)\n-661AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x661AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66203 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66205   Length              0005 (5)\n-66207   Flags               01 (1) 'Modification'\n-66208   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6620C CENTRAL HEADER #104   02014B50 (33639248)\n-66210 Created Zip Spec      14 (20) '2.0'\n-66211 Created OS            00 (0) 'MS-DOS'\n-66212 Extract Zip Spec      14 (20) '2.0'\n-66213 Extract OS            00 (0) 'MS-DOS'\n-66214 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66216 Compression Method    0000 (0) 'Stored'\n-66218 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6621C CRC                   CD48F380 (3444110208)\n-66220 Compressed Size       00000E9A (3738)\n-66224 Uncompressed Size     00000E9A (3738)\n-66228 Filename Length       004A (74)\n-6622A Extra Length          0009 (9)\n-6622C Comment Length        0000 (0)\n-6622E Disk Start            0000 (0)\n-66230 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66232 Ext File Attributes   00000000 (0)\n-66236 Local Header Offset   0003A0D6 (237782)\n-6623A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6623A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66284 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66286   Length              0005 (5)\n-66288   Flags               01 (1) 'Modification'\n-66289   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6628D CENTRAL HEADER #105   02014B50 (33639248)\n-66291 Created Zip Spec      14 (20) '2.0'\n-66292 Created OS            00 (0) 'MS-DOS'\n-66293 Extract Zip Spec      14 (20) '2.0'\n-66294 Extract OS            00 (0) 'MS-DOS'\n-66295 General Purpose Flag  0000 (0)\n-66297 Compression Method    0000 (0) 'Stored'\n-66299 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6629D CRC                   00000000 (0)\n-662A1 Compressed Size       00000000 (0)\n-662A5 Uncompressed Size     00000000 (0)\n-662A9 Filename Length       001F (31)\n-662AB Extra Length          0009 (9)\n-662AD Comment Length        0000 (0)\n-662AF Disk Start            0000 (0)\n-662B1 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-662B3 Ext File Attributes   00000000 (0)\n-662B7 Local Header Offset   0003AFF1 (241649)\n-662BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x662BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-662DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-662DC   Length              0005 (5)\n-662DE   Flags               01 (1) 'Modification'\n-662DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-662E3 CENTRAL HEADER #106   02014B50 (33639248)\n-662E7 Created Zip Spec      14 (20) '2.0'\n-662E8 Created OS            00 (0) 'MS-DOS'\n-662E9 Extract Zip Spec      14 (20) '2.0'\n-662EA Extract OS            00 (0) 'MS-DOS'\n-662EB General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-662ED Compression Method    0000 (0) 'Stored'\n-662EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-662F3 CRC                   D7917B4D (3616635725)\n-662F7 Compressed Size       00000378 (888)\n-662FB Uncompressed Size     00000378 (888)\n-662FF Filename Length       0048 (72)\n-66301 Extra Length          0009 (9)\n-66303 Comment Length        0000 (0)\n-66305 Disk Start            0000 (0)\n-66307 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66309 Ext File Attributes   00000000 (0)\n-6630D Local Header Offset   0003B037 (241719)\n-66311 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66311: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66359 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6635B   Length              0005 (5)\n-6635D   Flags               01 (1) 'Modification'\n-6635E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66362 CENTRAL HEADER #107   02014B50 (33639248)\n-66366 Created Zip Spec      14 (20) '2.0'\n-66367 Created OS            00 (0) 'MS-DOS'\n-66368 Extract Zip Spec      14 (20) '2.0'\n-66369 Extract OS            00 (0) 'MS-DOS'\n-6636A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6636C Compression Method    0000 (0) 'Stored'\n-6636E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66372 CRC                   600A507A (1611288698)\n-66376 Compressed Size       0000052C (1324)\n-6637A Uncompressed Size     0000052C (1324)\n-6637E Filename Length       0036 (54)\n-66380 Extra Length          0009 (9)\n-66382 Comment Length        0000 (0)\n-66384 Disk Start            0000 (0)\n-66386 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66388 Ext File Attributes   00000000 (0)\n-6638C Local Header Offset   0003B42E (242734)\n-66390 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66390: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-663C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-663C8   Length              0005 (5)\n-663CA   Flags               01 (1) 'Modification'\n-663CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-663CF CENTRAL HEADER #108   02014B50 (33639248)\n-663D3 Created Zip Spec      14 (20) '2.0'\n-663D4 Created OS            00 (0) 'MS-DOS'\n-663D5 Extract Zip Spec      14 (20) '2.0'\n-663D6 Extract OS            00 (0) 'MS-DOS'\n-663D7 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-663D9 Compression Method    0000 (0) 'Stored'\n-663DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-663DF CRC                   C5569DA0 (3310788000)\n-663E3 Compressed Size       000005F9 (1529)\n-663E7 Uncompressed Size     000005F9 (1529)\n-663EB Filename Length       004E (78)\n-663ED Extra Length          0009 (9)\n-663EF Comment Length        0000 (0)\n-663F1 Disk Start            0000 (0)\n-663F3 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-663F5 Ext File Attributes   00000000 (0)\n-663F9 Local Header Offset   0003B9C7 (244167)\n-663FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x663FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6644B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6644D   Length              0005 (5)\n-6644F   Flags               01 (1) 'Modification'\n-66450   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66454 CENTRAL HEADER #109   02014B50 (33639248)\n-66458 Created Zip Spec      14 (20) '2.0'\n-66459 Created OS            00 (0) 'MS-DOS'\n-6645A Extract Zip Spec      14 (20) '2.0'\n-6645B Extract OS            00 (0) 'MS-DOS'\n-6645C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6645E Compression Method    0000 (0) 'Stored'\n-66460 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66464 CRC                   E1939228 (3784544808)\n-66468 Compressed Size       0000050F (1295)\n-6646C Uncompressed Size     0000050F (1295)\n-66470 Filename Length       005A (90)\n-66472 Extra Length          0009 (9)\n-66474 Comment Length        0000 (0)\n-66476 Disk Start            0000 (0)\n-66478 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6647A Ext File Attributes   00000000 (0)\n-6647E Local Header Offset   0003C045 (245829)\n-66482 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66482: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-664DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-664DE   Length              0005 (5)\n-664E0   Flags               01 (1) 'Modification'\n-664E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-664E5 CENTRAL HEADER #110   02014B50 (33639248)\n-664E9 Created Zip Spec      14 (20) '2.0'\n-664EA Created OS            00 (0) 'MS-DOS'\n-664EB Extract Zip Spec      14 (20) '2.0'\n-664EC Extract OS            00 (0) 'MS-DOS'\n-664ED General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-664EF Compression Method    0000 (0) 'Stored'\n-664F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-664F5 CRC                   77632724 (2002986788)\n-664F9 Compressed Size       00000705 (1797)\n-664FD Uncompressed Size     00000705 (1797)\n-66501 Filename Length       003F (63)\n-66503 Extra Length          0009 (9)\n-66505 Comment Length        0000 (0)\n-66507 Disk Start            0000 (0)\n-66509 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6650B Ext File Attributes   00000000 (0)\n-6650F Local Header Offset   0003C5E5 (247269)\n-66513 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66513: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66552 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66554   Length              0005 (5)\n-66556   Flags               01 (1) 'Modification'\n-66557   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6655B CENTRAL HEADER #111   02014B50 (33639248)\n-6655F Created Zip Spec      14 (20) '2.0'\n-66560 Created OS            00 (0) 'MS-DOS'\n-66561 Extract Zip Spec      14 (20) '2.0'\n-66562 Extract OS            00 (0) 'MS-DOS'\n-66563 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66565 Compression Method    0000 (0) 'Stored'\n-66567 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6656B CRC                   AC6ACD6D (2892680557)\n-6656F Compressed Size       00000352 (850)\n-66573 Uncompressed Size     00000352 (850)\n-66577 Filename Length       005F (95)\n-66579 Extra Length          0009 (9)\n-6657B Comment Length        0000 (0)\n-6657D Disk Start            0000 (0)\n-6657F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66581 Ext File Attributes   00000000 (0)\n-66585 Local Header Offset   0003CD60 (249184)\n-66589 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66589: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-665E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-665EA   Length              0005 (5)\n-665EC   Flags               01 (1) 'Modification'\n-665ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-665F1 CENTRAL HEADER #112   02014B50 (33639248)\n-665F5 Created Zip Spec      14 (20) '2.0'\n-665F6 Created OS            00 (0) 'MS-DOS'\n-665F7 Extract Zip Spec      14 (20) '2.0'\n-665F8 Extract OS            00 (0) 'MS-DOS'\n-665F9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-665FB Compression Method    0000 (0) 'Stored'\n-665FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66601 CRC                   D0202B76 (3491769206)\n-66605 Compressed Size       000005A8 (1448)\n-66609 Uncompressed Size     000005A8 (1448)\n-6660D Filename Length       003C (60)\n-6660F Extra Length          0009 (9)\n-66611 Comment Length        0000 (0)\n-66613 Disk Start            0000 (0)\n-66615 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66617 Ext File Attributes   00000000 (0)\n-6661B Local Header Offset   0003D148 (250184)\n-6661F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6661F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6665B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6665D   Length              0005 (5)\n-6665F   Flags               01 (1) 'Modification'\n-66660   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66664 CENTRAL HEADER #113   02014B50 (33639248)\n-66668 Created Zip Spec      14 (20) '2.0'\n-66669 Created OS            00 (0) 'MS-DOS'\n-6666A Extract Zip Spec      14 (20) '2.0'\n-6666B Extract OS            00 (0) 'MS-DOS'\n-6666C General Purpose Flag  0000 (0)\n-6666E Compression Method    0000 (0) 'Stored'\n-66670 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66674 CRC                   00000000 (0)\n-66678 Compressed Size       00000000 (0)\n-6667C Uncompressed Size     00000000 (0)\n-66680 Filename Length       0021 (33)\n-66682 Extra Length          0009 (9)\n-66684 Comment Length        0000 (0)\n-66686 Disk Start            0000 (0)\n-66688 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6668A Ext File Attributes   00000000 (0)\n-6668E Local Header Offset   0003D763 (251747)\n-66692 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66692: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-666B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-666B5   Length              0005 (5)\n-666B7   Flags               01 (1) 'Modification'\n-666B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-666BC CENTRAL HEADER #114   02014B50 (33639248)\n-666C0 Created Zip Spec      14 (20) '2.0'\n-666C1 Created OS            00 (0) 'MS-DOS'\n-666C2 Extract Zip Spec      14 (20) '2.0'\n-666C3 Extract OS            00 (0) 'MS-DOS'\n-666C4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-666C6 Compression Method    0000 (0) 'Stored'\n-666C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-666CC CRC                   A279CE5F (2725891679)\n-666D0 Compressed Size       000006A4 (1700)\n-666D4 Uncompressed Size     000006A4 (1700)\n-666D8 Filename Length       004E (78)\n-666DA Extra Length          0009 (9)\n-666DC Comment Length        0000 (0)\n-666DE Disk Start            0000 (0)\n-666E0 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-666E2 Ext File Attributes   00000000 (0)\n-666E6 Local Header Offset   0003D7AB (251819)\n-666EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x666EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66738 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6673A   Length              0005 (5)\n-6673C   Flags               01 (1) 'Modification'\n-6673D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66741 CENTRAL HEADER #115   02014B50 (33639248)\n-66745 Created Zip Spec      14 (20) '2.0'\n-66746 Created OS            00 (0) 'MS-DOS'\n-66747 Extract Zip Spec      14 (20) '2.0'\n-66748 Extract OS            00 (0) 'MS-DOS'\n-66749 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6674B Compression Method    0000 (0) 'Stored'\n-6674D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66751 CRC                   613E6E33 (1631481395)\n-66755 Compressed Size       000009FC (2556)\n-66759 Uncompressed Size     000009FC (2556)\n-6675D Filename Length       003A (58)\n-6675F Extra Length          0009 (9)\n-66761 Comment Length        0000 (0)\n-66763 Disk Start            0000 (0)\n-66765 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66767 Ext File Attributes   00000000 (0)\n-6676B Local Header Offset   0003DED4 (253652)\n-6676F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6676F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-667A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-667AB   Length              0005 (5)\n-667AD   Flags               01 (1) 'Modification'\n-667AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-667B2 CENTRAL HEADER #116   02014B50 (33639248)\n-667B6 Created Zip Spec      14 (20) '2.0'\n-667B7 Created OS            00 (0) 'MS-DOS'\n-667B8 Extract Zip Spec      14 (20) '2.0'\n-667B9 Extract OS            00 (0) 'MS-DOS'\n-667BA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-667BC Compression Method    0000 (0) 'Stored'\n-667BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-667C2 CRC                   D6376E48 (3593956936)\n-667C6 Compressed Size       00000A59 (2649)\n-667CA Uncompressed Size     00000A59 (2649)\n-667CE Filename Length       0035 (53)\n-667D0 Extra Length          0009 (9)\n-667D2 Comment Length        0000 (0)\n-667D4 Disk Start            0000 (0)\n-667D6 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-667D8 Ext File Attributes   00000000 (0)\n-667DC Local Header Offset   0003E941 (256321)\n-667E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x667E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66815 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66817   Length              0005 (5)\n-66819   Flags               01 (1) 'Modification'\n-6681A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6681E CENTRAL HEADER #117   02014B50 (33639248)\n-66822 Created Zip Spec      14 (20) '2.0'\n-66823 Created OS            00 (0) 'MS-DOS'\n-66824 Extract Zip Spec      14 (20) '2.0'\n-66825 Extract OS            00 (0) 'MS-DOS'\n-66826 General Purpose Flag  0000 (0)\n-66828 Compression Method    0000 (0) 'Stored'\n-6682A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6682E CRC                   00000000 (0)\n-66832 Compressed Size       00000000 (0)\n-66836 Uncompressed Size     00000000 (0)\n-6683A Filename Length       001D (29)\n-6683C Extra Length          0009 (9)\n-6683E Comment Length        0000 (0)\n-66840 Disk Start            0000 (0)\n-66842 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66844 Ext File Attributes   00000000 (0)\n-66848 Local Header Offset   0003F406 (259078)\n-6684C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6684C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66869 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6686B   Length              0005 (5)\n-6686D   Flags               01 (1) 'Modification'\n-6686E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66872 CENTRAL HEADER #118   02014B50 (33639248)\n-66876 Created Zip Spec      14 (20) '2.0'\n-66877 Created OS            00 (0) 'MS-DOS'\n-66878 Extract Zip Spec      14 (20) '2.0'\n-66879 Extract OS            00 (0) 'MS-DOS'\n-6687A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6687C Compression Method    0000 (0) 'Stored'\n-6687E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66882 CRC                   0F4D3699 (256718489)\n-66886 Compressed Size       00001009 (4105)\n-6688A Uncompressed Size     00001009 (4105)\n-6688E Filename Length       002F (47)\n-66890 Extra Length          0009 (9)\n-66892 Comment Length        0000 (0)\n-66894 Disk Start            0000 (0)\n-66896 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66898 Ext File Attributes   00000000 (0)\n-6689C Local Header Offset   0003F44A (259146)\n-668A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x668A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-668CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-668D1   Length              0005 (5)\n-668D3   Flags               01 (1) 'Modification'\n-668D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-668D8 CENTRAL HEADER #119   02014B50 (33639248)\n-668DC Created Zip Spec      14 (20) '2.0'\n-668DD Created OS            00 (0) 'MS-DOS'\n-668DE Extract Zip Spec      14 (20) '2.0'\n-668DF Extract OS            00 (0) 'MS-DOS'\n-668E0 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-668E2 Compression Method    0000 (0) 'Stored'\n-668E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-668E8 CRC                   3F113771 (1058092913)\n-668EC Compressed Size       00000C43 (3139)\n-668F0 Uncompressed Size     00000C43 (3139)\n-668F4 Filename Length       0031 (49)\n-668F6 Extra Length          0009 (9)\n-668F8 Comment Length        0000 (0)\n-668FA Disk Start            0000 (0)\n-668FC Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-668FE Ext File Attributes   00000000 (0)\n-66902 Local Header Offset   000404B9 (263353)\n-66906 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66906: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66937 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66939   Length              0005 (5)\n-6693B   Flags               01 (1) 'Modification'\n-6693C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66940 CENTRAL HEADER #120   02014B50 (33639248)\n-66944 Created Zip Spec      14 (20) '2.0'\n-66945 Created OS            00 (0) 'MS-DOS'\n-66946 Extract Zip Spec      14 (20) '2.0'\n-66947 Extract OS            00 (0) 'MS-DOS'\n-66948 General Purpose Flag  0000 (0)\n-6694A Compression Method    0000 (0) 'Stored'\n-6694C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66950 CRC                   00000000 (0)\n-66954 Compressed Size       00000000 (0)\n-66958 Uncompressed Size     00000000 (0)\n-6695C Filename Length       001E (30)\n-6695E Extra Length          0009 (9)\n-66960 Comment Length        0000 (0)\n-66962 Disk Start            0000 (0)\n-66964 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66966 Ext File Attributes   00000000 (0)\n-6696A Local Header Offset   00041164 (266596)\n-6696E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6696E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6698C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6698E   Length              0005 (5)\n-66990   Flags               01 (1) 'Modification'\n-66991   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66995 CENTRAL HEADER #121   02014B50 (33639248)\n-66999 Created Zip Spec      14 (20) '2.0'\n-6699A Created OS            00 (0) 'MS-DOS'\n-6699B Extract Zip Spec      14 (20) '2.0'\n-6699C Extract OS            00 (0) 'MS-DOS'\n-6699D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6699F Compression Method    0000 (0) 'Stored'\n-669A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-669A5 CRC                   2E68E6C9 (778626761)\n-669A9 Compressed Size       00000533 (1331)\n-669AD Uncompressed Size     00000533 (1331)\n-669B1 Filename Length       0045 (69)\n-669B3 Extra Length          0009 (9)\n-669B5 Comment Length        0000 (0)\n-669B7 Disk Start            0000 (0)\n-669B9 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-669BB Ext File Attributes   00000000 (0)\n-669BF Local Header Offset   000411A9 (266665)\n-669C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x669C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66A08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66A0A   Length              0005 (5)\n-66A0C   Flags               01 (1) 'Modification'\n-66A0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66A11 CENTRAL HEADER #122   02014B50 (33639248)\n-66A15 Created Zip Spec      14 (20) '2.0'\n-66A16 Created OS            00 (0) 'MS-DOS'\n-66A17 Extract Zip Spec      14 (20) '2.0'\n-66A18 Extract OS            00 (0) 'MS-DOS'\n-66A19 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66A1B Compression Method    0000 (0) 'Stored'\n-66A1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66A21 CRC                   9F0AD1AC (2668286380)\n-66A25 Compressed Size       000007CA (1994)\n-66A29 Uncompressed Size     000007CA (1994)\n-66A2D Filename Length       0034 (52)\n-66A2F Extra Length          0009 (9)\n-66A31 Comment Length        0000 (0)\n-66A33 Disk Start            0000 (0)\n-66A35 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66A37 Ext File Attributes   00000000 (0)\n-66A3B Local Header Offset   00041758 (268120)\n-66A3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66A3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66A73 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66A75   Length              0005 (5)\n-66A77   Flags               01 (1) 'Modification'\n-66A78   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66A7C CENTRAL HEADER #123   02014B50 (33639248)\n-66A80 Created Zip Spec      14 (20) '2.0'\n-66A81 Created OS            00 (0) 'MS-DOS'\n-66A82 Extract Zip Spec      14 (20) '2.0'\n-66A83 Extract OS            00 (0) 'MS-DOS'\n-66A84 General Purpose Flag  0000 (0)\n-66A86 Compression Method    0000 (0) 'Stored'\n-66A88 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66A8C CRC                   00000000 (0)\n-66A90 Compressed Size       00000000 (0)\n-66A94 Uncompressed Size     00000000 (0)\n-66A98 Filename Length       0014 (20)\n-66A9A Extra Length          0009 (9)\n-66A9C Comment Length        0000 (0)\n-66A9E Disk Start            0000 (0)\n-66AA0 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66AA2 Ext File Attributes   00000000 (0)\n-66AA6 Local Header Offset   00041F8D (270221)\n-66AAA Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66AAA: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66ABE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66AC0   Length              0005 (5)\n-66AC2   Flags               01 (1) 'Modification'\n-66AC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66AC7 CENTRAL HEADER #124   02014B50 (33639248)\n-66ACB Created Zip Spec      14 (20) '2.0'\n-66ACC Created OS            00 (0) 'MS-DOS'\n-66ACD Extract Zip Spec      14 (20) '2.0'\n-66ACE Extract OS            00 (0) 'MS-DOS'\n-66ACF General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66AD1 Compression Method    0000 (0) 'Stored'\n-66AD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66AD7 CRC                   48D2ABAE (1221766062)\n-66ADB Compressed Size       000008AA (2218)\n-66ADF Uncompressed Size     000008AA (2218)\n-66AE3 Filename Length       004D (77)\n-66AE5 Extra Length          0009 (9)\n-66AE7 Comment Length        0000 (0)\n-66AE9 Disk Start            0000 (0)\n-66AEB Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66AED Ext File Attributes   00000000 (0)\n-66AF1 Local Header Offset   00041FC8 (270280)\n-66AF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66AF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66B42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66B44   Length              0005 (5)\n-66B46   Flags               01 (1) 'Modification'\n-66B47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66B4B CENTRAL HEADER #125   02014B50 (33639248)\n-66B4F Created Zip Spec      14 (20) '2.0'\n-66B50 Created OS            00 (0) 'MS-DOS'\n-66B51 Extract Zip Spec      14 (20) '2.0'\n-66B52 Extract OS            00 (0) 'MS-DOS'\n-66B53 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66B55 Compression Method    0000 (0) 'Stored'\n-66B57 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66B5B CRC                   9191EC6F (2442259567)\n-66B5F Compressed Size       00000AD0 (2768)\n-66B63 Uncompressed Size     00000AD0 (2768)\n-66B67 Filename Length       004B (75)\n-66B69 Extra Length          0009 (9)\n-66B6B Comment Length        0000 (0)\n-66B6D Disk Start            0000 (0)\n-66B6F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66B71 Ext File Attributes   00000000 (0)\n-66B75 Local Header Offset   000428F6 (272630)\n-66B79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66B79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66BC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66BC6   Length              0005 (5)\n-66BC8   Flags               01 (1) 'Modification'\n-66BC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66BCD CENTRAL HEADER #126   02014B50 (33639248)\n-66BD1 Created Zip Spec      14 (20) '2.0'\n-66BD2 Created OS            00 (0) 'MS-DOS'\n-66BD3 Extract Zip Spec      14 (20) '2.0'\n-66BD4 Extract OS            00 (0) 'MS-DOS'\n-66BD5 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66BD7 Compression Method    0000 (0) 'Stored'\n-66BD9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66BDD CRC                   8B599C06 (2337905670)\n-66BE1 Compressed Size       0000048C (1164)\n-66BE5 Uncompressed Size     0000048C (1164)\n-66BE9 Filename Length       004C (76)\n-66BEB Extra Length          0009 (9)\n-66BED Comment Length        0000 (0)\n-66BEF Disk Start            0000 (0)\n-66BF1 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66BF3 Ext File Attributes   00000000 (0)\n-66BF7 Local Header Offset   00043448 (275528)\n-66BFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66BFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66C47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66C49   Length              0005 (5)\n-66C4B   Flags               01 (1) 'Modification'\n-66C4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66C50 CENTRAL HEADER #127   02014B50 (33639248)\n-66C54 Created Zip Spec      14 (20) '2.0'\n-66C55 Created OS            00 (0) 'MS-DOS'\n-66C56 Extract Zip Spec      14 (20) '2.0'\n-66C57 Extract OS            00 (0) 'MS-DOS'\n-66C58 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66C5A Compression Method    0000 (0) 'Stored'\n-66C5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66C60 CRC                   85BB0A54 (2243627604)\n-66C64 Compressed Size       00000488 (1160)\n-66C68 Uncompressed Size     00000488 (1160)\n-66C6C Filename Length       004C (76)\n-66C6E Extra Length          0009 (9)\n-66C70 Comment Length        0000 (0)\n-66C72 Disk Start            0000 (0)\n-66C74 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66C76 Ext File Attributes   00000000 (0)\n-66C7A Local Header Offset   00043957 (276823)\n-66C7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66C7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66CCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66CCC   Length              0005 (5)\n-66CCE   Flags               01 (1) 'Modification'\n-66CCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66CD3 CENTRAL HEADER #128   02014B50 (33639248)\n-66CD7 Created Zip Spec      14 (20) '2.0'\n-66CD8 Created OS            00 (0) 'MS-DOS'\n-66CD9 Extract Zip Spec      14 (20) '2.0'\n-66CDA Extract OS            00 (0) 'MS-DOS'\n-66CDB General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66CDD Compression Method    0000 (0) 'Stored'\n-66CDF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66CE3 CRC                   50D2C43E (1355990078)\n-66CE7 Compressed Size       00001D23 (7459)\n-66CEB Uncompressed Size     00001D23 (7459)\n-66CEF Filename Length       0037 (55)\n-66CF1 Extra Length          0009 (9)\n-66CF3 Comment Length        0000 (0)\n-66CF5 Disk Start            0000 (0)\n-66CF7 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66CF9 Ext File Attributes   00000000 (0)\n-66CFD Local Header Offset   00043E62 (278114)\n-66D01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66D01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66D38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66D3A   Length              0005 (5)\n-66D3C   Flags               01 (1) 'Modification'\n-66D3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66D41 CENTRAL HEADER #129   02014B50 (33639248)\n-66D45 Created Zip Spec      14 (20) '2.0'\n-66D46 Created OS            00 (0) 'MS-DOS'\n-66D47 Extract Zip Spec      14 (20) '2.0'\n-66D48 Extract OS            00 (0) 'MS-DOS'\n-66D49 General Purpose Flag  0000 (0)\n-66D4B Compression Method    0000 (0) 'Stored'\n-66D4D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66D51 CRC                   00000000 (0)\n-66D55 Compressed Size       00000000 (0)\n-66D59 Uncompressed Size     00000000 (0)\n-66D5D Filename Length       001C (28)\n-66D5F Extra Length          0009 (9)\n-66D61 Comment Length        0000 (0)\n-66D63 Disk Start            0000 (0)\n-66D65 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66D67 Ext File Attributes   00000000 (0)\n-66D6B Local Header Offset   00045BF3 (285683)\n-66D6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66D6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66D8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66D8D   Length              0005 (5)\n-66D8F   Flags               01 (1) 'Modification'\n-66D90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66D94 CENTRAL HEADER #130   02014B50 (33639248)\n-66D98 Created Zip Spec      14 (20) '2.0'\n-66D99 Created OS            00 (0) 'MS-DOS'\n-66D9A Extract Zip Spec      14 (20) '2.0'\n-66D9B Extract OS            00 (0) 'MS-DOS'\n-66D9C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66D9E Compression Method    0000 (0) 'Stored'\n-66DA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66DA4 CRC                   B2182B1E (2987928350)\n-66DA8 Compressed Size       000008CC (2252)\n-66DAC Uncompressed Size     000008CC (2252)\n-66DB0 Filename Length       002D (45)\n-66DB2 Extra Length          0009 (9)\n-66DB4 Comment Length        0000 (0)\n-66DB6 Disk Start            0000 (0)\n-66DB8 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66DBA Ext File Attributes   00000000 (0)\n-66DBE Local Header Offset   00045C36 (285750)\n-66DC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66DC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66DEF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66DF1   Length              0005 (5)\n-66DF3   Flags               01 (1) 'Modification'\n-66DF4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66DF8 CENTRAL HEADER #131   02014B50 (33639248)\n-66DFC Created Zip Spec      14 (20) '2.0'\n-66DFD Created OS            00 (0) 'MS-DOS'\n-66DFE Extract Zip Spec      14 (20) '2.0'\n-66DFF Extract OS            00 (0) 'MS-DOS'\n-66E00 General Purpose Flag  0000 (0)\n-66E02 Compression Method    0000 (0) 'Stored'\n-66E04 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66E08 CRC                   00000000 (0)\n-66E0C Compressed Size       00000000 (0)\n-66E10 Uncompressed Size     00000000 (0)\n-66E14 Filename Length       0027 (39)\n-66E16 Extra Length          0009 (9)\n-66E18 Comment Length        0000 (0)\n-66E1A Disk Start            0000 (0)\n-66E1C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66E1E Ext File Attributes   00000000 (0)\n-66E22 Local Header Offset   00046566 (288102)\n-66E26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66E26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66E4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66E4F   Length              0005 (5)\n-66E51   Flags               01 (1) 'Modification'\n-66E52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66E56 CENTRAL HEADER #132   02014B50 (33639248)\n-66E5A Created Zip Spec      14 (20) '2.0'\n-66E5B Created OS            00 (0) 'MS-DOS'\n-66E5C Extract Zip Spec      14 (20) '2.0'\n-66E5D Extract OS            00 (0) 'MS-DOS'\n-66E5E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66E60 Compression Method    0000 (0) 'Stored'\n-66E62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66E66 CRC                   991D6690 (2568840848)\n-66E6A Compressed Size       00001265 (4709)\n-66E6E Uncompressed Size     00001265 (4709)\n-66E72 Filename Length       0049 (73)\n-66E74 Extra Length          0009 (9)\n-66E76 Comment Length        0000 (0)\n-66E78 Disk Start            0000 (0)\n-66E7A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66E7C Ext File Attributes   00000000 (0)\n-66E80 Local Header Offset   000465B4 (288180)\n-66E84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66E84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66ECD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66ECF   Length              0005 (5)\n-66ED1   Flags               01 (1) 'Modification'\n-66ED2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66ED6 CENTRAL HEADER #133   02014B50 (33639248)\n-66EDA Created Zip Spec      14 (20) '2.0'\n-66EDB Created OS            00 (0) 'MS-DOS'\n-66EDC Extract Zip Spec      14 (20) '2.0'\n-66EDD Extract OS            00 (0) 'MS-DOS'\n-66EDE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66EE0 Compression Method    0000 (0) 'Stored'\n-66EE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66EE6 CRC                   D6CD889E (3603794078)\n-66EEA Compressed Size       0000264B (9803)\n-66EEE Uncompressed Size     0000264B (9803)\n-66EF2 Filename Length       004B (75)\n-66EF4 Extra Length          0009 (9)\n-66EF6 Comment Length        0000 (0)\n-66EF8 Disk Start            0000 (0)\n-66EFA Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66EFC Ext File Attributes   00000000 (0)\n-66F00 Local Header Offset   00047899 (293017)\n-66F04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66F04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66F4F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66F51   Length              0005 (5)\n-66F53   Flags               01 (1) 'Modification'\n-66F54   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66F58 CENTRAL HEADER #134   02014B50 (33639248)\n-66F5C Created Zip Spec      14 (20) '2.0'\n-66F5D Created OS            00 (0) 'MS-DOS'\n-66F5E Extract Zip Spec      14 (20) '2.0'\n-66F5F Extract OS            00 (0) 'MS-DOS'\n-66F60 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-66F62 Compression Method    0000 (0) 'Stored'\n-66F64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66F68 CRC                   12B2F773 (313718643)\n-66F6C Compressed Size       00000FB2 (4018)\n-66F70 Uncompressed Size     00000FB2 (4018)\n-66F74 Filename Length       0044 (68)\n-66F76 Extra Length          0009 (9)\n-66F78 Comment Length        0000 (0)\n-66F7A Disk Start            0000 (0)\n-66F7C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66F7E Ext File Attributes   00000000 (0)\n-66F82 Local Header Offset   00049F66 (302950)\n-66F86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66F86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66FCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66FCC   Length              0005 (5)\n-66FCE   Flags               01 (1) 'Modification'\n-66FCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66FD3 CENTRAL HEADER #135   02014B50 (33639248)\n-66FD7 Created Zip Spec      14 (20) '2.0'\n-66FD8 Created OS            00 (0) 'MS-DOS'\n-66FD9 Extract Zip Spec      14 (20) '2.0'\n-66FDA Extract OS            00 (0) 'MS-DOS'\n-66FDB General Purpose Flag  0000 (0)\n-66FDD Compression Method    0000 (0) 'Stored'\n-66FDF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66FE3 CRC                   00000000 (0)\n-66FE7 Compressed Size       00000000 (0)\n-66FEB Uncompressed Size     00000000 (0)\n-66FEF Filename Length       0025 (37)\n-66FF1 Extra Length          0009 (9)\n-66FF3 Comment Length        0000 (0)\n-66FF5 Disk Start            0000 (0)\n-66FF7 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-66FF9 Ext File Attributes   00000000 (0)\n-66FFD Local Header Offset   0004AF93 (307091)\n-67001 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67001: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67026 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67028   Length              0005 (5)\n-6702A   Flags               01 (1) 'Modification'\n-6702B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6702F CENTRAL HEADER #136   02014B50 (33639248)\n-67033 Created Zip Spec      14 (20) '2.0'\n-67034 Created OS            00 (0) 'MS-DOS'\n-67035 Extract Zip Spec      14 (20) '2.0'\n-67036 Extract OS            00 (0) 'MS-DOS'\n-67037 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67039 Compression Method    0000 (0) 'Stored'\n-6703B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6703F CRC                   83A30048 (2208497736)\n-67043 Compressed Size       000020CB (8395)\n-67047 Uncompressed Size     000020CB (8395)\n-6704B Filename Length       0045 (69)\n-6704D Extra Length          0009 (9)\n-6704F Comment Length        0000 (0)\n-67051 Disk Start            0000 (0)\n-67053 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67055 Ext File Attributes   00000000 (0)\n-67059 Local Header Offset   0004AFDF (307167)\n-6705D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6705D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-670A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-670A4   Length              0005 (5)\n-670A6   Flags               01 (1) 'Modification'\n-670A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-670AB CENTRAL HEADER #137   02014B50 (33639248)\n-670AF Created Zip Spec      14 (20) '2.0'\n-670B0 Created OS            00 (0) 'MS-DOS'\n-670B1 Extract Zip Spec      14 (20) '2.0'\n-670B2 Extract OS            00 (0) 'MS-DOS'\n-670B3 General Purpose Flag  0000 (0)\n-670B5 Compression Method    0000 (0) 'Stored'\n-670B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-670BB CRC                   00000000 (0)\n-670BF Compressed Size       00000000 (0)\n-670C3 Uncompressed Size     00000000 (0)\n-670C7 Filename Length       0026 (38)\n-670C9 Extra Length          0009 (9)\n-670CB Comment Length        0000 (0)\n-670CD Disk Start            0000 (0)\n-670CF Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-670D1 Ext File Attributes   00000000 (0)\n-670D5 Local Header Offset   0004D126 (315686)\n-670D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x670D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-670FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67101   Length              0005 (5)\n-67103   Flags               01 (1) 'Modification'\n-67104   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67108 CENTRAL HEADER #138   02014B50 (33639248)\n-6710C Created Zip Spec      14 (20) '2.0'\n-6710D Created OS            00 (0) 'MS-DOS'\n-6710E Extract Zip Spec      14 (20) '2.0'\n-6710F Extract OS            00 (0) 'MS-DOS'\n-67110 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67112 Compression Method    0000 (0) 'Stored'\n-67114 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67118 CRC                   D5FDA0C9 (3590168777)\n-6711C Compressed Size       00001FC8 (8136)\n-67120 Uncompressed Size     00001FC8 (8136)\n-67124 Filename Length       004E (78)\n-67126 Extra Length          0009 (9)\n-67128 Comment Length        0000 (0)\n-6712A Disk Start            0000 (0)\n-6712C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6712E Ext File Attributes   00000000 (0)\n-67132 Local Header Offset   0004D173 (315763)\n-67136 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67136: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67184 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67186   Length              0005 (5)\n-67188   Flags               01 (1) 'Modification'\n-67189   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6718D CENTRAL HEADER #139   02014B50 (33639248)\n-67191 Created Zip Spec      14 (20) '2.0'\n-67192 Created OS            00 (0) 'MS-DOS'\n-67193 Extract Zip Spec      14 (20) '2.0'\n-67194 Extract OS            00 (0) 'MS-DOS'\n-67195 General Purpose Flag  0000 (0)\n-67197 Compression Method    0000 (0) 'Stored'\n-67199 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6719D CRC                   00000000 (0)\n-671A1 Compressed Size       00000000 (0)\n-671A5 Uncompressed Size     00000000 (0)\n-671A9 Filename Length       001A (26)\n-671AB Extra Length          0009 (9)\n-671AD Comment Length        0000 (0)\n-671AF Disk Start            0000 (0)\n-671B1 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-671B3 Ext File Attributes   00000000 (0)\n-671B7 Local Header Offset   0004F1C0 (324032)\n-671BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x671BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-671D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-671D7   Length              0005 (5)\n-671D9   Flags               01 (1) 'Modification'\n-671DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-671DE CENTRAL HEADER #140   02014B50 (33639248)\n-671E2 Created Zip Spec      14 (20) '2.0'\n-671E3 Created OS            00 (0) 'MS-DOS'\n-671E4 Extract Zip Spec      14 (20) '2.0'\n-671E5 Extract OS            00 (0) 'MS-DOS'\n-671E6 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-671E8 Compression Method    0000 (0) 'Stored'\n-671EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-671EE CRC                   3672AC9B (913484955)\n-671F2 Compressed Size       00000D39 (3385)\n-671F6 Uncompressed Size     00000D39 (3385)\n-671FA Filename Length       002C (44)\n-671FC Extra Length          0009 (9)\n-671FE Comment Length        0000 (0)\n-67200 Disk Start            0000 (0)\n-67202 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67204 Ext File Attributes   00000000 (0)\n-67208 Local Header Offset   0004F201 (324097)\n-6720C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6720C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67238 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6723A   Length              0005 (5)\n-6723C   Flags               01 (1) 'Modification'\n-6723D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67241 CENTRAL HEADER #141   02014B50 (33639248)\n-67245 Created Zip Spec      14 (20) '2.0'\n-67246 Created OS            00 (0) 'MS-DOS'\n-67247 Extract Zip Spec      14 (20) '2.0'\n-67248 Extract OS            00 (0) 'MS-DOS'\n-67249 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6724B Compression Method    0000 (0) 'Stored'\n-6724D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67251 CRC                   8B430614 (2336425492)\n-67255 Compressed Size       00000DA9 (3497)\n-67259 Uncompressed Size     00000DA9 (3497)\n-6725D Filename Length       0029 (41)\n-6725F Extra Length          0009 (9)\n-67261 Comment Length        0000 (0)\n-67263 Disk Start            0000 (0)\n-67265 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67267 Ext File Attributes   00000000 (0)\n-6726B Local Header Offset   0004FF9D (327581)\n-6726F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6726F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67298 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6729A   Length              0005 (5)\n-6729C   Flags               01 (1) 'Modification'\n-6729D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-672A1 CENTRAL HEADER #142   02014B50 (33639248)\n-672A5 Created Zip Spec      14 (20) '2.0'\n-672A6 Created OS            00 (0) 'MS-DOS'\n-672A7 Extract Zip Spec      14 (20) '2.0'\n-672A8 Extract OS            00 (0) 'MS-DOS'\n-672A9 General Purpose Flag  0000 (0)\n-672AB Compression Method    0000 (0) 'Stored'\n-672AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-672B1 CRC                   00000000 (0)\n-672B5 Compressed Size       00000000 (0)\n-672B9 Uncompressed Size     00000000 (0)\n-672BD Filename Length       0021 (33)\n-672BF Extra Length          0009 (9)\n-672C1 Comment Length        0000 (0)\n-672C3 Disk Start            0000 (0)\n-672C5 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-672C7 Ext File Attributes   00000000 (0)\n-672CB Local Header Offset   00050DA6 (331174)\n-672CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x672CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-672F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-672F2   Length              0005 (5)\n-672F4   Flags               01 (1) 'Modification'\n-672F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-672F9 CENTRAL HEADER #143   02014B50 (33639248)\n-672FD Created Zip Spec      14 (20) '2.0'\n-672FE Created OS            00 (0) 'MS-DOS'\n-672FF Extract Zip Spec      14 (20) '2.0'\n-67300 Extract OS            00 (0) 'MS-DOS'\n-67301 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67303 Compression Method    0000 (0) 'Stored'\n-67305 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67309 CRC                   7A958CBE (2056621246)\n-6730D Compressed Size       00000945 (2373)\n-67311 Uncompressed Size     00000945 (2373)\n-67315 Filename Length       003D (61)\n-67317 Extra Length          0009 (9)\n-67319 Comment Length        0000 (0)\n-6731B Disk Start            0000 (0)\n-6731D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6731F Ext File Attributes   00000000 (0)\n-67323 Local Header Offset   00050DEE (331246)\n-67327 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67327: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67364 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67366   Length              0005 (5)\n-67368   Flags               01 (1) 'Modification'\n-67369   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6736D CENTRAL HEADER #144   02014B50 (33639248)\n-67371 Created Zip Spec      14 (20) '2.0'\n-67372 Created OS            00 (0) 'MS-DOS'\n-67373 Extract Zip Spec      14 (20) '2.0'\n-67374 Extract OS            00 (0) 'MS-DOS'\n-67375 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67377 Compression Method    0000 (0) 'Stored'\n-67379 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6737D CRC                   65684A62 (1701333602)\n-67381 Compressed Size       0000154C (5452)\n-67385 Uncompressed Size     0000154C (5452)\n-67389 Filename Length       0043 (67)\n-6738B Extra Length          0009 (9)\n-6738D Comment Length        0000 (0)\n-6738F Disk Start            0000 (0)\n-67391 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67393 Ext File Attributes   00000000 (0)\n-67397 Local Header Offset   000517A7 (333735)\n-6739B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6739B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-673DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-673E0   Length              0005 (5)\n-673E2   Flags               01 (1) 'Modification'\n-673E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-673E7 CENTRAL HEADER #145   02014B50 (33639248)\n-673EB Created Zip Spec      14 (20) '2.0'\n-673EC Created OS            00 (0) 'MS-DOS'\n-673ED Extract Zip Spec      14 (20) '2.0'\n-673EE Extract OS            00 (0) 'MS-DOS'\n-673EF General Purpose Flag  0000 (0)\n-673F1 Compression Method    0000 (0) 'Stored'\n-673F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-673F7 CRC                   00000000 (0)\n-673FB Compressed Size       00000000 (0)\n-673FF Uncompressed Size     00000000 (0)\n-67403 Filename Length       0026 (38)\n-67405 Extra Length          0009 (9)\n-67407 Comment Length        0000 (0)\n-67409 Disk Start            0000 (0)\n-6740B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6740D Ext File Attributes   00000000 (0)\n-67411 Local Header Offset   00052D6D (339309)\n-67415 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67415: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6743B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6743D   Length              0005 (5)\n-6743F   Flags               01 (1) 'Modification'\n-67440   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67444 CENTRAL HEADER #146   02014B50 (33639248)\n-67448 Created Zip Spec      14 (20) '2.0'\n-67449 Created OS            00 (0) 'MS-DOS'\n-6744A Extract Zip Spec      14 (20) '2.0'\n-6744B Extract OS            00 (0) 'MS-DOS'\n-6744C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6744E Compression Method    0000 (0) 'Stored'\n-67450 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67454 CRC                   D16E8B20 (3513682720)\n-67458 Compressed Size       00001C70 (7280)\n-6745C Uncompressed Size     00001C70 (7280)\n-67460 Filename Length       004B (75)\n-67462 Extra Length          0009 (9)\n-67464 Comment Length        0000 (0)\n-67466 Disk Start            0000 (0)\n-67468 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6746A Ext File Attributes   00000000 (0)\n-6746E Local Header Offset   00052DBA (339386)\n-67472 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67472: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-674BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-674BF   Length              0005 (5)\n-674C1   Flags               01 (1) 'Modification'\n-674C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-674C6 CENTRAL HEADER #147   02014B50 (33639248)\n-674CA Created Zip Spec      14 (20) '2.0'\n-674CB Created OS            00 (0) 'MS-DOS'\n-674CC Extract Zip Spec      14 (20) '2.0'\n-674CD Extract OS            00 (0) 'MS-DOS'\n-674CE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-674D0 Compression Method    0000 (0) 'Stored'\n-674D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-674D6 CRC                   A619DAE4 (2786712292)\n-674DA Compressed Size       000005D1 (1489)\n-674DE Uncompressed Size     000005D1 (1489)\n-674E2 Filename Length       0047 (71)\n-674E4 Extra Length          0009 (9)\n-674E6 Comment Length        0000 (0)\n-674E8 Disk Start            0000 (0)\n-674EA Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-674EC Ext File Attributes   00000000 (0)\n-674F0 Local Header Offset   00054AAC (346796)\n-674F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x674F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6753B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6753D   Length              0005 (5)\n-6753F   Flags               01 (1) 'Modification'\n-67540   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67544 CENTRAL HEADER #148   02014B50 (33639248)\n-67548 Created Zip Spec      14 (20) '2.0'\n-67549 Created OS            00 (0) 'MS-DOS'\n-6754A Extract Zip Spec      14 (20) '2.0'\n-6754B Extract OS            00 (0) 'MS-DOS'\n-6754C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6754E Compression Method    0000 (0) 'Stored'\n-67550 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67554 CRC                   83613D56 (2204187990)\n-67558 Compressed Size       000013B7 (5047)\n-6755C Uncompressed Size     000013B7 (5047)\n-67560 Filename Length       0049 (73)\n-67562 Extra Length          0009 (9)\n-67564 Comment Length        0000 (0)\n-67566 Disk Start            0000 (0)\n-67568 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6756A Ext File Attributes   00000000 (0)\n-6756E Local Header Offset   000550FB (348411)\n-67572 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67572: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-675BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-675BD   Length              0005 (5)\n-675BF   Flags               01 (1) 'Modification'\n-675C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-675C4 CENTRAL HEADER #149   02014B50 (33639248)\n-675C8 Created Zip Spec      14 (20) '2.0'\n-675C9 Created OS            00 (0) 'MS-DOS'\n-675CA Extract Zip Spec      14 (20) '2.0'\n-675CB Extract OS            00 (0) 'MS-DOS'\n-675CC General Purpose Flag  0000 (0)\n-675CE Compression Method    0000 (0) 'Stored'\n-675D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-675D4 CRC                   00000000 (0)\n-675D8 Compressed Size       00000000 (0)\n-675DC Uncompressed Size     00000000 (0)\n-675E0 Filename Length       001A (26)\n-675E2 Extra Length          0009 (9)\n-675E4 Comment Length        0000 (0)\n-675E6 Disk Start            0000 (0)\n-675E8 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-675EA Ext File Attributes   00000000 (0)\n-675EE Local Header Offset   00056532 (353586)\n-675F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x675F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6760C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6760E   Length              0005 (5)\n-67610   Flags               01 (1) 'Modification'\n-67611   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67615 CENTRAL HEADER #150   02014B50 (33639248)\n-67619 Created Zip Spec      14 (20) '2.0'\n-6761A Created OS            00 (0) 'MS-DOS'\n-6761B Extract Zip Spec      14 (20) '2.0'\n-6761C Extract OS            00 (0) 'MS-DOS'\n-6761D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6761F Compression Method    0000 (0) 'Stored'\n-67621 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67625 CRC                   435BC395 (1130087317)\n-67629 Compressed Size       00000383 (899)\n-6762D Uncompressed Size     00000383 (899)\n-67631 Filename Length       003B (59)\n-67633 Extra Length          0009 (9)\n-67635 Comment Length        0000 (0)\n-67637 Disk Start            0000 (0)\n-67639 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6763B Ext File Attributes   00000000 (0)\n-6763F Local Header Offset   00056573 (353651)\n-67643 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67643: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6767E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67680   Length              0005 (5)\n-67682   Flags               01 (1) 'Modification'\n-67683   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67687 CENTRAL HEADER #151   02014B50 (33639248)\n-6768B Created Zip Spec      14 (20) '2.0'\n-6768C Created OS            00 (0) 'MS-DOS'\n-6768D Extract Zip Spec      14 (20) '2.0'\n-6768E Extract OS            00 (0) 'MS-DOS'\n-6768F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67691 Compression Method    0000 (0) 'Stored'\n-67693 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67697 CRC                   A722B775 (2804070261)\n-6769B Compressed Size       00000F5B (3931)\n-6769F Uncompressed Size     00000F5B (3931)\n-676A3 Filename Length       002D (45)\n-676A5 Extra Length          0009 (9)\n-676A7 Comment Length        0000 (0)\n-676A9 Disk Start            0000 (0)\n-676AB Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-676AD Ext File Attributes   00000000 (0)\n-676B1 Local Header Offset   00056968 (354664)\n-676B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x676B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-676E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-676E4   Length              0005 (5)\n-676E6   Flags               01 (1) 'Modification'\n-676E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-676EB CENTRAL HEADER #152   02014B50 (33639248)\n-676EF Created Zip Spec      14 (20) '2.0'\n-676F0 Created OS            00 (0) 'MS-DOS'\n-676F1 Extract Zip Spec      14 (20) '2.0'\n-676F2 Extract OS            00 (0) 'MS-DOS'\n-676F3 General Purpose Flag  0000 (0)\n-676F5 Compression Method    0000 (0) 'Stored'\n-676F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-676FB CRC                   00000000 (0)\n-676FF Compressed Size       00000000 (0)\n-67703 Uncompressed Size     00000000 (0)\n-67707 Filename Length       0014 (20)\n-67709 Extra Length          0009 (9)\n-6770B Comment Length        0000 (0)\n-6770D Disk Start            0000 (0)\n-6770F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67711 Ext File Attributes   00000000 (0)\n-67715 Local Header Offset   00057927 (358695)\n-67719 Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67719: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6772D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6772F   Length              0005 (5)\n-67731   Flags               01 (1) 'Modification'\n-67732   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67736 CENTRAL HEADER #153   02014B50 (33639248)\n-6773A Created Zip Spec      14 (20) '2.0'\n-6773B Created OS            00 (0) 'MS-DOS'\n-6773C Extract Zip Spec      14 (20) '2.0'\n-6773D Extract OS            00 (0) 'MS-DOS'\n-6773E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67740 Compression Method    0000 (0) 'Stored'\n-67742 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67746 CRC                   7D006F4A (2097180490)\n-6774A Compressed Size       000000AE (174)\n-6774E Uncompressed Size     000000AE (174)\n-67752 Filename Length       0028 (40)\n-67754 Extra Length          0009 (9)\n-67756 Comment Length        0000 (0)\n-67758 Disk Start            0000 (0)\n-6775A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6775C Ext File Attributes   00000000 (0)\n-67760 Local Header Offset   00057962 (358754)\n-67764 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67764: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6778C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6778E   Length              0005 (5)\n-67790   Flags               01 (1) 'Modification'\n-67791   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67795 CENTRAL HEADER #154   02014B50 (33639248)\n-67799 Created Zip Spec      14 (20) '2.0'\n-6779A Created OS            00 (0) 'MS-DOS'\n-6779B Extract Zip Spec      14 (20) '2.0'\n-6779C Extract OS            00 (0) 'MS-DOS'\n-6779D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6779F Compression Method    0000 (0) 'Stored'\n-677A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-677A5 CRC                   6F0F3966 (1863268710)\n-677A9 Compressed Size       000001DF (479)\n-677AD Uncompressed Size     000001DF (479)\n-677B1 Filename Length       002F (47)\n-677B3 Extra Length          0009 (9)\n-677B5 Comment Length        0000 (0)\n-677B7 Disk Start            0000 (0)\n-677B9 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-677BB Ext File Attributes   00000000 (0)\n-677BF Local Header Offset   00057A6F (359023)\n-677C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x677C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-677F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-677F4   Length              0005 (5)\n-677F6   Flags               01 (1) 'Modification'\n-677F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-677FB CENTRAL HEADER #155   02014B50 (33639248)\n-677FF Created Zip Spec      14 (20) '2.0'\n-67800 Created OS            00 (0) 'MS-DOS'\n-67801 Extract Zip Spec      14 (20) '2.0'\n-67802 Extract OS            00 (0) 'MS-DOS'\n-67803 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67805 Compression Method    0000 (0) 'Stored'\n-67807 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6780B CRC                   DAA18D5C (3668020572)\n-6780F Compressed Size       000001D7 (471)\n-67813 Uncompressed Size     000001D7 (471)\n-67817 Filename Length       002D (45)\n-67819 Extra Length          0009 (9)\n-6781B Comment Length        0000 (0)\n-6781D Disk Start            0000 (0)\n-6781F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67821 Ext File Attributes   00000000 (0)\n-67825 Local Header Offset   00057CB4 (359604)\n-67829 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67829: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67856 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67858   Length              0005 (5)\n-6785A   Flags               01 (1) 'Modification'\n-6785B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6785F CENTRAL HEADER #156   02014B50 (33639248)\n-67863 Created Zip Spec      14 (20) '2.0'\n-67864 Created OS            00 (0) 'MS-DOS'\n-67865 Extract Zip Spec      14 (20) '2.0'\n-67866 Extract OS            00 (0) 'MS-DOS'\n-67867 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67869 Compression Method    0000 (0) 'Stored'\n-6786B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6786F CRC                   6F05623C (1862623804)\n-67873 Compressed Size       000002AC (684)\n-67877 Uncompressed Size     000002AC (684)\n-6787B Filename Length       0049 (73)\n-6787D Extra Length          0009 (9)\n-6787F Comment Length        0000 (0)\n-67881 Disk Start            0000 (0)\n-67883 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67885 Ext File Attributes   00000000 (0)\n-67889 Local Header Offset   00057EEF (360175)\n-6788D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6788D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-678D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-678D8   Length              0005 (5)\n-678DA   Flags               01 (1) 'Modification'\n-678DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-678DF CENTRAL HEADER #157   02014B50 (33639248)\n-678E3 Created Zip Spec      14 (20) '2.0'\n-678E4 Created OS            00 (0) 'MS-DOS'\n-678E5 Extract Zip Spec      14 (20) '2.0'\n-678E6 Extract OS            00 (0) 'MS-DOS'\n-678E7 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-678E9 Compression Method    0000 (0) 'Stored'\n-678EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-678EF CRC                   649CBE85 (1687993989)\n-678F3 Compressed Size       00000128 (296)\n-678F7 Uncompressed Size     00000128 (296)\n-678FB Filename Length       0042 (66)\n-678FD Extra Length          0009 (9)\n-678FF Comment Length        0000 (0)\n-67901 Disk Start            0000 (0)\n-67903 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67905 Ext File Attributes   00000000 (0)\n-67909 Local Header Offset   0005821B (360987)\n-6790D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6790D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6794F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67951   Length              0005 (5)\n-67953   Flags               01 (1) 'Modification'\n-67954   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67958 CENTRAL HEADER #158   02014B50 (33639248)\n-6795C Created Zip Spec      14 (20) '2.0'\n-6795D Created OS            00 (0) 'MS-DOS'\n-6795E Extract Zip Spec      14 (20) '2.0'\n-6795F Extract OS            00 (0) 'MS-DOS'\n-67960 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67962 Compression Method    0000 (0) 'Stored'\n-67964 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67968 CRC                   7EAB90FF (2125172991)\n-6796C Compressed Size       000013EE (5102)\n-67970 Uncompressed Size     000013EE (5102)\n-67974 Filename Length       002B (43)\n-67976 Extra Length          0009 (9)\n-67978 Comment Length        0000 (0)\n-6797A Disk Start            0000 (0)\n-6797C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6797E Ext File Attributes   00000000 (0)\n-67982 Local Header Offset   000583BC (361404)\n-67986 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67986: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-679B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-679B3   Length              0005 (5)\n-679B5   Flags               01 (1) 'Modification'\n-679B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-679BA CENTRAL HEADER #159   02014B50 (33639248)\n-679BE Created Zip Spec      14 (20) '2.0'\n-679BF Created OS            00 (0) 'MS-DOS'\n-679C0 Extract Zip Spec      14 (20) '2.0'\n-679C1 Extract OS            00 (0) 'MS-DOS'\n-679C2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-679C4 Compression Method    0000 (0) 'Stored'\n-679C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-679CA CRC                   8B4A2818 (2336892952)\n-679CE Compressed Size       00000100 (256)\n-679D2 Uncompressed Size     00000100 (256)\n-679D6 Filename Length       0029 (41)\n-679D8 Extra Length          0009 (9)\n-679DA Comment Length        0000 (0)\n-679DC Disk Start            0000 (0)\n-679DE Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-679E0 Ext File Attributes   00000000 (0)\n-679E4 Local Header Offset   0005980C (366604)\n-679E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x679E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67A11 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67A13   Length              0005 (5)\n-67A15   Flags               01 (1) 'Modification'\n-67A16   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67A1A CENTRAL HEADER #160   02014B50 (33639248)\n-67A1E Created Zip Spec      14 (20) '2.0'\n-67A1F Created OS            00 (0) 'MS-DOS'\n-67A20 Extract Zip Spec      14 (20) '2.0'\n-67A21 Extract OS            00 (0) 'MS-DOS'\n-67A22 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67A24 Compression Method    0000 (0) 'Stored'\n-67A26 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67A2A CRC                   E28C35C9 (3800839625)\n-67A2E Compressed Size       00000235 (565)\n-67A32 Uncompressed Size     00000235 (565)\n-67A36 Filename Length       002D (45)\n-67A38 Extra Length          0009 (9)\n-67A3A Comment Length        0000 (0)\n-67A3C Disk Start            0000 (0)\n-67A3E Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67A40 Ext File Attributes   00000000 (0)\n-67A44 Local Header Offset   0005996C (366956)\n-67A48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67A48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67A75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67A77   Length              0005 (5)\n-67A79   Flags               01 (1) 'Modification'\n-67A7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67A7E CENTRAL HEADER #161   02014B50 (33639248)\n-67A82 Created Zip Spec      14 (20) '2.0'\n-67A83 Created OS            00 (0) 'MS-DOS'\n-67A84 Extract Zip Spec      14 (20) '2.0'\n-67A85 Extract OS            00 (0) 'MS-DOS'\n-67A86 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67A88 Compression Method    0000 (0) 'Stored'\n-67A8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67A8E CRC                   6ADA63B0 (1792697264)\n-67A92 Compressed Size       00000110 (272)\n-67A96 Uncompressed Size     00000110 (272)\n-67A9A Filename Length       0031 (49)\n-67A9C Extra Length          0009 (9)\n-67A9E Comment Length        0000 (0)\n-67AA0 Disk Start            0000 (0)\n-67AA2 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67AA4 Ext File Attributes   00000000 (0)\n-67AA8 Local Header Offset   00059C05 (367621)\n-67AAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67AAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67ADD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67ADF   Length              0005 (5)\n-67AE1   Flags               01 (1) 'Modification'\n-67AE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67AE6 CENTRAL HEADER #162   02014B50 (33639248)\n-67AEA Created Zip Spec      14 (20) '2.0'\n-67AEB Created OS            00 (0) 'MS-DOS'\n-67AEC Extract Zip Spec      14 (20) '2.0'\n-67AED Extract OS            00 (0) 'MS-DOS'\n-67AEE General Purpose Flag  0000 (0)\n-67AF0 Compression Method    0000 (0) 'Stored'\n-67AF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67AF6 CRC                   00000000 (0)\n-67AFA Compressed Size       00000000 (0)\n-67AFE Uncompressed Size     00000000 (0)\n-67B02 Filename Length       001B (27)\n-67B04 Extra Length          0009 (9)\n-67B06 Comment Length        0000 (0)\n-67B08 Disk Start            0000 (0)\n-67B0A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67B0C Ext File Attributes   00000000 (0)\n-67B10 Local Header Offset   00059D7D (367997)\n-67B14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67B14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67B2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67B31   Length              0005 (5)\n-67B33   Flags               01 (1) 'Modification'\n-67B34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67B38 CENTRAL HEADER #163   02014B50 (33639248)\n-67B3C Created Zip Spec      14 (20) '2.0'\n-67B3D Created OS            00 (0) 'MS-DOS'\n-67B3E Extract Zip Spec      14 (20) '2.0'\n-67B3F Extract OS            00 (0) 'MS-DOS'\n-67B40 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67B42 Compression Method    0000 (0) 'Stored'\n-67B44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67B48 CRC                   28DAA840 (685418560)\n-67B4C Compressed Size       00000644 (1604)\n-67B50 Uncompressed Size     00000644 (1604)\n-67B54 Filename Length       003A (58)\n-67B56 Extra Length          0009 (9)\n-67B58 Comment Length        0000 (0)\n-67B5A Disk Start            0000 (0)\n-67B5C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67B5E Ext File Attributes   00000000 (0)\n-67B62 Local Header Offset   00059DBF (368063)\n-67B66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67B66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67BA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67BA2   Length              0005 (5)\n-67BA4   Flags               01 (1) 'Modification'\n-67BA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67BA9 CENTRAL HEADER #164   02014B50 (33639248)\n-67BAD Created Zip Spec      14 (20) '2.0'\n-67BAE Created OS            00 (0) 'MS-DOS'\n-67BAF Extract Zip Spec      14 (20) '2.0'\n-67BB0 Extract OS            00 (0) 'MS-DOS'\n-67BB1 General Purpose Flag  0000 (0)\n-67BB3 Compression Method    0000 (0) 'Stored'\n-67BB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67BB9 CRC                   00000000 (0)\n-67BBD Compressed Size       00000000 (0)\n-67BC1 Uncompressed Size     00000000 (0)\n-67BC5 Filename Length       0016 (22)\n-67BC7 Extra Length          0009 (9)\n-67BC9 Comment Length        0000 (0)\n-67BCB Disk Start            0000 (0)\n-67BCD Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67BCF Ext File Attributes   00000000 (0)\n-67BD3 Local Header Offset   0005A474 (369780)\n-67BD7 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67BD7: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67BED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67BEF   Length              0005 (5)\n-67BF1   Flags               01 (1) 'Modification'\n-67BF2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67BF6 CENTRAL HEADER #165   02014B50 (33639248)\n-67BFA Created Zip Spec      14 (20) '2.0'\n-67BFB Created OS            00 (0) 'MS-DOS'\n-67BFC Extract Zip Spec      14 (20) '2.0'\n-67BFD Extract OS            00 (0) 'MS-DOS'\n-67BFE General Purpose Flag  0000 (0)\n-67C00 Compression Method    0000 (0) 'Stored'\n-67C02 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67C06 CRC                   00000000 (0)\n-67C0A Compressed Size       00000000 (0)\n-67C0E Uncompressed Size     00000000 (0)\n-67C12 Filename Length       0020 (32)\n-67C14 Extra Length          0009 (9)\n-67C16 Comment Length        0000 (0)\n-67C18 Disk Start            0000 (0)\n-67C1A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67C1C Ext File Attributes   00000000 (0)\n-67C20 Local Header Offset   0005A4B1 (369841)\n-67C24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67C24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67C44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67C46   Length              0005 (5)\n-67C48   Flags               01 (1) 'Modification'\n-67C49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67C4D CENTRAL HEADER #166   02014B50 (33639248)\n-67C51 Created Zip Spec      14 (20) '2.0'\n-67C52 Created OS            00 (0) 'MS-DOS'\n-67C53 Extract Zip Spec      14 (20) '2.0'\n-67C54 Extract OS            00 (0) 'MS-DOS'\n-67C55 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67C57 Compression Method    0000 (0) 'Stored'\n-67C59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67C5D CRC                   F1C0C0DB (4055941339)\n-67C61 Compressed Size       00000D92 (3474)\n-67C65 Uncompressed Size     00000D92 (3474)\n-67C69 Filename Length       003A (58)\n-67C6B Extra Length          0009 (9)\n-67C6D Comment Length        0000 (0)\n-67C6F Disk Start            0000 (0)\n-67C71 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67C73 Ext File Attributes   00000000 (0)\n-67C77 Local Header Offset   0005A4F8 (369912)\n-67C7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67C7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67CB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67CB7   Length              0005 (5)\n-67CB9   Flags               01 (1) 'Modification'\n-67CBA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67CBE CENTRAL HEADER #167   02014B50 (33639248)\n-67CC2 Created Zip Spec      14 (20) '2.0'\n-67CC3 Created OS            00 (0) 'MS-DOS'\n-67CC4 Extract Zip Spec      14 (20) '2.0'\n-67CC5 Extract OS            00 (0) 'MS-DOS'\n-67CC6 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67CC8 Compression Method    0000 (0) 'Stored'\n-67CCA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67CCE CRC                   94826ABA (2491574970)\n-67CD2 Compressed Size       00000B8D (2957)\n-67CD6 Uncompressed Size     00000B8D (2957)\n-67CDA Filename Length       0038 (56)\n-67CDC Extra Length          0009 (9)\n-67CDE Comment Length        0000 (0)\n-67CE0 Disk Start            0000 (0)\n-67CE2 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67CE4 Ext File Attributes   00000000 (0)\n-67CE8 Local Header Offset   0005B2FB (373499)\n-67CEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67CEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67D24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67D26   Length              0005 (5)\n-67D28   Flags               01 (1) 'Modification'\n-67D29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67D2D CENTRAL HEADER #168   02014B50 (33639248)\n-67D31 Created Zip Spec      14 (20) '2.0'\n-67D32 Created OS            00 (0) 'MS-DOS'\n-67D33 Extract Zip Spec      14 (20) '2.0'\n-67D34 Extract OS            00 (0) 'MS-DOS'\n-67D35 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67D37 Compression Method    0000 (0) 'Stored'\n-67D39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67D3D CRC                   B2491236 (2991133238)\n-67D41 Compressed Size       00000EBF (3775)\n-67D45 Uncompressed Size     00000EBF (3775)\n-67D49 Filename Length       0036 (54)\n-67D4B Extra Length          0009 (9)\n-67D4D Comment Length        0000 (0)\n-67D4F Disk Start            0000 (0)\n-67D51 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67D53 Ext File Attributes   00000000 (0)\n-67D57 Local Header Offset   0005BEF7 (376567)\n-67D5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67D5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67D91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67D93   Length              0005 (5)\n-67D95   Flags               01 (1) 'Modification'\n-67D96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67D9A CENTRAL HEADER #169   02014B50 (33639248)\n-67D9E Created Zip Spec      14 (20) '2.0'\n-67D9F Created OS            00 (0) 'MS-DOS'\n-67DA0 Extract Zip Spec      14 (20) '2.0'\n-67DA1 Extract OS            00 (0) 'MS-DOS'\n-67DA2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67DA4 Compression Method    0000 (0) 'Stored'\n-67DA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67DAA CRC                   432AC1B1 (1126875569)\n-67DAE Compressed Size       00001930 (6448)\n-67DB2 Uncompressed Size     00001930 (6448)\n-67DB6 Filename Length       0040 (64)\n-67DB8 Extra Length          0009 (9)\n-67DBA Comment Length        0000 (0)\n-67DBC Disk Start            0000 (0)\n-67DBE Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67DC0 Ext File Attributes   00000000 (0)\n-67DC4 Local Header Offset   0005CE23 (380451)\n-67DC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67DC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67E08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67E0A   Length              0005 (5)\n-67E0C   Flags               01 (1) 'Modification'\n-67E0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67E11 CENTRAL HEADER #170   02014B50 (33639248)\n-67E15 Created Zip Spec      14 (20) '2.0'\n-67E16 Created OS            00 (0) 'MS-DOS'\n-67E17 Extract Zip Spec      14 (20) '2.0'\n-67E18 Extract OS            00 (0) 'MS-DOS'\n-67E19 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67E1B Compression Method    0000 (0) 'Stored'\n-67E1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67E21 CRC                   FF31AB03 (4281445123)\n-67E25 Compressed Size       00000756 (1878)\n-67E29 Uncompressed Size     00000756 (1878)\n-67E2D Filename Length       004F (79)\n-67E2F Extra Length          0009 (9)\n-67E31 Comment Length        0000 (0)\n-67E33 Disk Start            0000 (0)\n-67E35 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67E37 Ext File Attributes   00000000 (0)\n-67E3B Local Header Offset   0005E7CA (387018)\n-67E3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67E3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67E8E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67E90   Length              0005 (5)\n-67E92   Flags               01 (1) 'Modification'\n-67E93   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67E97 CENTRAL HEADER #171   02014B50 (33639248)\n-67E9B Created Zip Spec      14 (20) '2.0'\n-67E9C Created OS            00 (0) 'MS-DOS'\n-67E9D Extract Zip Spec      14 (20) '2.0'\n-67E9E Extract OS            00 (0) 'MS-DOS'\n-67E9F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67EA1 Compression Method    0000 (0) 'Stored'\n-67EA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67EA7 CRC                   152F72C0 (355431104)\n-67EAB Compressed Size       00000C6F (3183)\n-67EAF Uncompressed Size     00000C6F (3183)\n-67EB3 Filename Length       004E (78)\n-67EB5 Extra Length          0009 (9)\n-67EB7 Comment Length        0000 (0)\n-67EB9 Disk Start            0000 (0)\n-67EBB Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67EBD Ext File Attributes   00000000 (0)\n-67EC1 Local Header Offset   0005EFA6 (389030)\n-67EC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67EC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67F13 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67F15   Length              0005 (5)\n-67F17   Flags               01 (1) 'Modification'\n-67F18   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67F1C CENTRAL HEADER #172   02014B50 (33639248)\n-67F20 Created Zip Spec      14 (20) '2.0'\n-67F21 Created OS            00 (0) 'MS-DOS'\n-67F22 Extract Zip Spec      14 (20) '2.0'\n-67F23 Extract OS            00 (0) 'MS-DOS'\n-67F24 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67F26 Compression Method    0000 (0) 'Stored'\n-67F28 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67F2C CRC                   2A7311D9 (712184281)\n-67F30 Compressed Size       00000E47 (3655)\n-67F34 Uncompressed Size     00000E47 (3655)\n-67F38 Filename Length       0038 (56)\n-67F3A Extra Length          0009 (9)\n-67F3C Comment Length        0000 (0)\n-67F3E Disk Start            0000 (0)\n-67F40 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67F42 Ext File Attributes   00000000 (0)\n-67F46 Local Header Offset   0005FC9A (392346)\n-67F4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67F4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67F82 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67F84   Length              0005 (5)\n-67F86   Flags               01 (1) 'Modification'\n-67F87   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67F8B CENTRAL HEADER #173   02014B50 (33639248)\n-67F8F Created Zip Spec      14 (20) '2.0'\n-67F90 Created OS            00 (0) 'MS-DOS'\n-67F91 Extract Zip Spec      14 (20) '2.0'\n-67F92 Extract OS            00 (0) 'MS-DOS'\n-67F93 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-67F95 Compression Method    0000 (0) 'Stored'\n-67F97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67F9B CRC                   DE91822C (3734077996)\n-67F9F Compressed Size       00002049 (8265)\n-67FA3 Uncompressed Size     00002049 (8265)\n-67FA7 Filename Length       0045 (69)\n-67FA9 Extra Length          0009 (9)\n-67FAB Comment Length        0000 (0)\n-67FAD Disk Start            0000 (0)\n-67FAF Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-67FB1 Ext File Attributes   00000000 (0)\n-67FB5 Local Header Offset   00060B50 (396112)\n-67FB9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67FB9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67FFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68000   Length              0005 (5)\n-68002   Flags               01 (1) 'Modification'\n-68003   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-68007 CENTRAL HEADER #174   02014B50 (33639248)\n-6800B Created Zip Spec      14 (20) '2.0'\n-6800C Created OS            00 (0) 'MS-DOS'\n-6800D Extract Zip Spec      14 (20) '2.0'\n-6800E Extract OS            00 (0) 'MS-DOS'\n-6800F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-68011 Compression Method    0000 (0) 'Stored'\n-68013 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68017 CRC                   5D229F2A (1562550058)\n-6801B Compressed Size       00000363 (867)\n-6801F Uncompressed Size     00000363 (867)\n-68023 Filename Length       0038 (56)\n-68025 Extra Length          0009 (9)\n-68027 Comment Length        0000 (0)\n-68029 Disk Start            0000 (0)\n-6802B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6802D Ext File Attributes   00000000 (0)\n-68031 Local Header Offset   00062C15 (404501)\n-68035 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68035: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6806D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6806F   Length              0005 (5)\n-68071   Flags               01 (1) 'Modification'\n-68072   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-68076 CENTRAL HEADER #175   02014B50 (33639248)\n-6807A Created Zip Spec      14 (20) '2.0'\n-6807B Created OS            00 (0) 'MS-DOS'\n-6807C Extract Zip Spec      14 (20) '2.0'\n-6807D Extract OS            00 (0) 'MS-DOS'\n-6807E General Purpose Flag  0000 (0)\n-68080 Compression Method    0000 (0) 'Stored'\n-68082 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68086 CRC                   00000000 (0)\n-6808A Compressed Size       00000000 (0)\n-6808E Uncompressed Size     00000000 (0)\n-68092 Filename Length       001D (29)\n-68094 Extra Length          0009 (9)\n-68096 Comment Length        0000 (0)\n-68098 Disk Start            0000 (0)\n-6809A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-6809C Ext File Attributes   00000000 (0)\n-680A0 Local Header Offset   00062FE7 (405479)\n-680A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x680A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-680C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-680C3   Length              0005 (5)\n-680C5   Flags               01 (1) 'Modification'\n-680C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-680CA CENTRAL HEADER #176   02014B50 (33639248)\n-680CE Created Zip Spec      14 (20) '2.0'\n-680CF Created OS            00 (0) 'MS-DOS'\n-680D0 Extract Zip Spec      14 (20) '2.0'\n-680D1 Extract OS            00 (0) 'MS-DOS'\n-680D2 General Purpose Flag  0000 (0)\n-680D4 Compression Method    0000 (0) 'Stored'\n-680D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-680DA CRC                   00000000 (0)\n-680DE Compressed Size       00000000 (0)\n-680E2 Uncompressed Size     00000000 (0)\n-680E6 Filename Length       0022 (34)\n-680E8 Extra Length          0009 (9)\n-680EA Comment Length        0000 (0)\n-680EC Disk Start            0000 (0)\n-680EE Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-680F0 Ext File Attributes   00000000 (0)\n-680F4 Local Header Offset   0006302B (405547)\n-680F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x680F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6811A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6811C   Length              0005 (5)\n-6811E   Flags               01 (1) 'Modification'\n-6811F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-68123 CENTRAL HEADER #177   02014B50 (33639248)\n-68127 Created Zip Spec      14 (20) '2.0'\n-68128 Created OS            00 (0) 'MS-DOS'\n-68129 Extract Zip Spec      14 (20) '2.0'\n-6812A Extract OS            00 (0) 'MS-DOS'\n-6812B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-6812D Compression Method    0000 (0) 'Stored'\n-6812F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68133 CRC                   8C92B588 (2358424968)\n-68137 Compressed Size       00000612 (1554)\n-6813B Uncompressed Size     00000612 (1554)\n-6813F Filename Length       0043 (67)\n-68141 Extra Length          0009 (9)\n-68143 Comment Length        0000 (0)\n-68145 Disk Start            0000 (0)\n-68147 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-68149 Ext File Attributes   00000000 (0)\n-6814D Local Header Offset   00063074 (405620)\n-68151 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68151: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68194 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68196   Length              0005 (5)\n-68198   Flags               01 (1) 'Modification'\n-68199   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6819D END CENTRAL HEADER    06054B50 (101010256)\n-681A1 Number of this disk   0000 (0)\n-681A3 Central Dir Disk no   0000 (0)\n-681A5 Entries in this disk  00B1 (177)\n-681A7 Total Entries         00B1 (177)\n-681A9 Size of Central Dir   00004A9D (19101)\n-681AD Offset to Central Dir 00063700 (407296)\n-681B1 Comment Length        0000 (0)\n+64A2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64A31   Length              0005 (5)\n+64A33   Flags               01 (1) 'Modification'\n+64A34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64A38 CENTRAL HEADER #52    02014B50 (33639248)\n+64A3C Created Zip Spec      14 (20) '2.0'\n+64A3D Created OS            00 (0) 'MS-DOS'\n+64A3E Extract Zip Spec      14 (20) '2.0'\n+64A3F Extract OS            00 (0) 'MS-DOS'\n+64A40 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64A42 Compression Method    0000 (0) 'Stored'\n+64A44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64A48 CRC                   20DB00B6 (551223478)\n+64A4C Compressed Size       00001176 (4470)\n+64A50 Uncompressed Size     00001176 (4470)\n+64A54 Filename Length       0032 (50)\n+64A56 Extra Length          0009 (9)\n+64A58 Comment Length        0000 (0)\n+64A5A Disk Start            0000 (0)\n+64A5C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64A5E Ext File Attributes   00000000 (0)\n+64A62 Local Header Offset   0001B057 (110679)\n+64A66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64A66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64A98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64A9A   Length              0005 (5)\n+64A9C   Flags               01 (1) 'Modification'\n+64A9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64AA1 CENTRAL HEADER #53    02014B50 (33639248)\n+64AA5 Created Zip Spec      14 (20) '2.0'\n+64AA6 Created OS            00 (0) 'MS-DOS'\n+64AA7 Extract Zip Spec      14 (20) '2.0'\n+64AA8 Extract OS            00 (0) 'MS-DOS'\n+64AA9 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64AAB Compression Method    0000 (0) 'Stored'\n+64AAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64AB1 CRC                   3CC0C248 (1019265608)\n+64AB5 Compressed Size       0000051A (1306)\n+64AB9 Uncompressed Size     0000051A (1306)\n+64ABD Filename Length       0057 (87)\n+64ABF Extra Length          0009 (9)\n+64AC1 Comment Length        0000 (0)\n+64AC3 Disk Start            0000 (0)\n+64AC5 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64AC7 Ext File Attributes   00000000 (0)\n+64ACB Local Header Offset   0001C236 (115254)\n+64ACF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64ACF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64B26 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64B28   Length              0005 (5)\n+64B2A   Flags               01 (1) 'Modification'\n+64B2B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64B2F CENTRAL HEADER #54    02014B50 (33639248)\n+64B33 Created Zip Spec      14 (20) '2.0'\n+64B34 Created OS            00 (0) 'MS-DOS'\n+64B35 Extract Zip Spec      14 (20) '2.0'\n+64B36 Extract OS            00 (0) 'MS-DOS'\n+64B37 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64B39 Compression Method    0000 (0) 'Stored'\n+64B3B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64B3F CRC                   344ACFDE (877318110)\n+64B43 Compressed Size       000008B2 (2226)\n+64B47 Uncompressed Size     000008B2 (2226)\n+64B4B Filename Length       003D (61)\n+64B4D Extra Length          0009 (9)\n+64B4F Comment Length        0000 (0)\n+64B51 Disk Start            0000 (0)\n+64B53 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64B55 Ext File Attributes   00000000 (0)\n+64B59 Local Header Offset   0001C7DE (116702)\n+64B5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64B5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64B9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64B9C   Length              0005 (5)\n+64B9E   Flags               01 (1) 'Modification'\n+64B9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64BA3 CENTRAL HEADER #55    02014B50 (33639248)\n+64BA7 Created Zip Spec      14 (20) '2.0'\n+64BA8 Created OS            00 (0) 'MS-DOS'\n+64BA9 Extract Zip Spec      14 (20) '2.0'\n+64BAA Extract OS            00 (0) 'MS-DOS'\n+64BAB General Purpose Flag  0000 (0)\n+64BAD Compression Method    0000 (0) 'Stored'\n+64BAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64BB3 CRC                   00000000 (0)\n+64BB7 Compressed Size       00000000 (0)\n+64BBB Uncompressed Size     00000000 (0)\n+64BBF Filename Length       0019 (25)\n+64BC1 Extra Length          0009 (9)\n+64BC3 Comment Length        0000 (0)\n+64BC5 Disk Start            0000 (0)\n+64BC7 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64BC9 Ext File Attributes   00000000 (0)\n+64BCD Local Header Offset   0001D104 (119044)\n+64BD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64BD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64BEA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64BEC   Length              0005 (5)\n+64BEE   Flags               01 (1) 'Modification'\n+64BEF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64BF3 CENTRAL HEADER #56    02014B50 (33639248)\n+64BF7 Created Zip Spec      14 (20) '2.0'\n+64BF8 Created OS            00 (0) 'MS-DOS'\n+64BF9 Extract Zip Spec      14 (20) '2.0'\n+64BFA Extract OS            00 (0) 'MS-DOS'\n+64BFB General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64BFD Compression Method    0000 (0) 'Stored'\n+64BFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64C03 CRC                   4F7B3403 (1333474307)\n+64C07 Compressed Size       00000547 (1351)\n+64C0B Uncompressed Size     00000547 (1351)\n+64C0F Filename Length       002D (45)\n+64C11 Extra Length          0009 (9)\n+64C13 Comment Length        0000 (0)\n+64C15 Disk Start            0000 (0)\n+64C17 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64C19 Ext File Attributes   00000000 (0)\n+64C1D Local Header Offset   0001D144 (119108)\n+64C21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64C21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64C4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64C50   Length              0005 (5)\n+64C52   Flags               01 (1) 'Modification'\n+64C53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64C57 CENTRAL HEADER #57    02014B50 (33639248)\n+64C5B Created Zip Spec      14 (20) '2.0'\n+64C5C Created OS            00 (0) 'MS-DOS'\n+64C5D Extract Zip Spec      14 (20) '2.0'\n+64C5E Extract OS            00 (0) 'MS-DOS'\n+64C5F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64C61 Compression Method    0000 (0) 'Stored'\n+64C63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64C67 CRC                   7E842F24 (2122592036)\n+64C6B Compressed Size       000002D2 (722)\n+64C6F Uncompressed Size     000002D2 (722)\n+64C73 Filename Length       0032 (50)\n+64C75 Extra Length          0009 (9)\n+64C77 Comment Length        0000 (0)\n+64C79 Disk Start            0000 (0)\n+64C7B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64C7D Ext File Attributes   00000000 (0)\n+64C81 Local Header Offset   0001D6EF (120559)\n+64C85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64C85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64CB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64CB9   Length              0005 (5)\n+64CBB   Flags               01 (1) 'Modification'\n+64CBC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64CC0 CENTRAL HEADER #58    02014B50 (33639248)\n+64CC4 Created Zip Spec      14 (20) '2.0'\n+64CC5 Created OS            00 (0) 'MS-DOS'\n+64CC6 Extract Zip Spec      14 (20) '2.0'\n+64CC7 Extract OS            00 (0) 'MS-DOS'\n+64CC8 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64CCA Compression Method    0000 (0) 'Stored'\n+64CCC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64CD0 CRC                   4EBF134A (1321145162)\n+64CD4 Compressed Size       000003CC (972)\n+64CD8 Uncompressed Size     000003CC (972)\n+64CDC Filename Length       003C (60)\n+64CDE Extra Length          0009 (9)\n+64CE0 Comment Length        0000 (0)\n+64CE2 Disk Start            0000 (0)\n+64CE4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64CE6 Ext File Attributes   00000000 (0)\n+64CEA Local Header Offset   0001DA2A (121386)\n+64CEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64CEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64D2A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64D2C   Length              0005 (5)\n+64D2E   Flags               01 (1) 'Modification'\n+64D2F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64D33 CENTRAL HEADER #59    02014B50 (33639248)\n+64D37 Created Zip Spec      14 (20) '2.0'\n+64D38 Created OS            00 (0) 'MS-DOS'\n+64D39 Extract Zip Spec      14 (20) '2.0'\n+64D3A Extract OS            00 (0) 'MS-DOS'\n+64D3B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64D3D Compression Method    0000 (0) 'Stored'\n+64D3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64D43 CRC                   6C6C2451 (1819026513)\n+64D47 Compressed Size       00000356 (854)\n+64D4B Uncompressed Size     00000356 (854)\n+64D4F Filename Length       0038 (56)\n+64D51 Extra Length          0009 (9)\n+64D53 Comment Length        0000 (0)\n+64D55 Disk Start            0000 (0)\n+64D57 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64D59 Ext File Attributes   00000000 (0)\n+64D5D Local Header Offset   0001DE69 (122473)\n+64D61 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64D61: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64D99 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64D9B   Length              0005 (5)\n+64D9D   Flags               01 (1) 'Modification'\n+64D9E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64DA2 CENTRAL HEADER #60    02014B50 (33639248)\n+64DA6 Created Zip Spec      14 (20) '2.0'\n+64DA7 Created OS            00 (0) 'MS-DOS'\n+64DA8 Extract Zip Spec      14 (20) '2.0'\n+64DA9 Extract OS            00 (0) 'MS-DOS'\n+64DAA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64DAC Compression Method    0000 (0) 'Stored'\n+64DAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64DB2 CRC                   4CF35C69 (1291017321)\n+64DB6 Compressed Size       0000172C (5932)\n+64DBA Uncompressed Size     0000172C (5932)\n+64DBE Filename Length       0030 (48)\n+64DC0 Extra Length          0009 (9)\n+64DC2 Comment Length        0000 (0)\n+64DC4 Disk Start            0000 (0)\n+64DC6 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64DC8 Ext File Attributes   00000000 (0)\n+64DCC Local Header Offset   0001E22E (123438)\n+64DD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64DD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64E00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64E02   Length              0005 (5)\n+64E04   Flags               01 (1) 'Modification'\n+64E05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64E09 CENTRAL HEADER #61    02014B50 (33639248)\n+64E0D Created Zip Spec      14 (20) '2.0'\n+64E0E Created OS            00 (0) 'MS-DOS'\n+64E0F Extract Zip Spec      14 (20) '2.0'\n+64E10 Extract OS            00 (0) 'MS-DOS'\n+64E11 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64E13 Compression Method    0000 (0) 'Stored'\n+64E15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64E19 CRC                   0E9435B8 (244594104)\n+64E1D Compressed Size       000000DE (222)\n+64E21 Uncompressed Size     000000DE (222)\n+64E25 Filename Length       0029 (41)\n+64E27 Extra Length          0009 (9)\n+64E29 Comment Length        0000 (0)\n+64E2B Disk Start            0000 (0)\n+64E2D Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64E2F Ext File Attributes   00000000 (0)\n+64E33 Local Header Offset   0001F9C1 (129473)\n+64E37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64E37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64E60 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64E62   Length              0005 (5)\n+64E64   Flags               01 (1) 'Modification'\n+64E65   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64E69 CENTRAL HEADER #62    02014B50 (33639248)\n+64E6D Created Zip Spec      14 (20) '2.0'\n+64E6E Created OS            00 (0) 'MS-DOS'\n+64E6F Extract Zip Spec      14 (20) '2.0'\n+64E70 Extract OS            00 (0) 'MS-DOS'\n+64E71 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64E73 Compression Method    0000 (0) 'Stored'\n+64E75 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64E79 CRC                   7E2D3D43 (2116894019)\n+64E7D Compressed Size       0000061F (1567)\n+64E81 Uncompressed Size     0000061F (1567)\n+64E85 Filename Length       0030 (48)\n+64E87 Extra Length          0009 (9)\n+64E89 Comment Length        0000 (0)\n+64E8B Disk Start            0000 (0)\n+64E8D Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64E8F Ext File Attributes   00000000 (0)\n+64E93 Local Header Offset   0001FAFF (129791)\n+64E97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64E97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64EC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64EC9   Length              0005 (5)\n+64ECB   Flags               01 (1) 'Modification'\n+64ECC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64ED0 CENTRAL HEADER #63    02014B50 (33639248)\n+64ED4 Created Zip Spec      14 (20) '2.0'\n+64ED5 Created OS            00 (0) 'MS-DOS'\n+64ED6 Extract Zip Spec      14 (20) '2.0'\n+64ED7 Extract OS            00 (0) 'MS-DOS'\n+64ED8 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64EDA Compression Method    0000 (0) 'Stored'\n+64EDC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64EE0 CRC                   1657AE16 (374844950)\n+64EE4 Compressed Size       000002AF (687)\n+64EE8 Uncompressed Size     000002AF (687)\n+64EEC Filename Length       0032 (50)\n+64EEE Extra Length          0009 (9)\n+64EF0 Comment Length        0000 (0)\n+64EF2 Disk Start            0000 (0)\n+64EF4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64EF6 Ext File Attributes   00000000 (0)\n+64EFA Local Header Offset   00020185 (131461)\n+64EFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64EFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64F30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64F32   Length              0005 (5)\n+64F34   Flags               01 (1) 'Modification'\n+64F35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64F39 CENTRAL HEADER #64    02014B50 (33639248)\n+64F3D Created Zip Spec      14 (20) '2.0'\n+64F3E Created OS            00 (0) 'MS-DOS'\n+64F3F Extract Zip Spec      14 (20) '2.0'\n+64F40 Extract OS            00 (0) 'MS-DOS'\n+64F41 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64F43 Compression Method    0000 (0) 'Stored'\n+64F45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64F49 CRC                   E50DBBE1 (3842882529)\n+64F4D Compressed Size       00000FFC (4092)\n+64F51 Uncompressed Size     00000FFC (4092)\n+64F55 Filename Length       0027 (39)\n+64F57 Extra Length          0009 (9)\n+64F59 Comment Length        0000 (0)\n+64F5B Disk Start            0000 (0)\n+64F5D Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64F5F Ext File Attributes   00000000 (0)\n+64F63 Local Header Offset   0002049D (132253)\n+64F67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64F67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64F8E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64F90   Length              0005 (5)\n+64F92   Flags               01 (1) 'Modification'\n+64F93   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64F97 CENTRAL HEADER #65    02014B50 (33639248)\n+64F9B Created Zip Spec      14 (20) '2.0'\n+64F9C Created OS            00 (0) 'MS-DOS'\n+64F9D Extract Zip Spec      14 (20) '2.0'\n+64F9E Extract OS            00 (0) 'MS-DOS'\n+64F9F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+64FA1 Compression Method    0000 (0) 'Stored'\n+64FA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64FA7 CRC                   BC142CBC (3155438780)\n+64FAB Compressed Size       000016AC (5804)\n+64FAF Uncompressed Size     000016AC (5804)\n+64FB3 Filename Length       002D (45)\n+64FB5 Extra Length          0009 (9)\n+64FB7 Comment Length        0000 (0)\n+64FB9 Disk Start            0000 (0)\n+64FBB Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+64FBD Ext File Attributes   00000000 (0)\n+64FC1 Local Header Offset   000214F7 (136439)\n+64FC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64FC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64FF2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64FF4   Length              0005 (5)\n+64FF6   Flags               01 (1) 'Modification'\n+64FF7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+64FFB CENTRAL HEADER #66    02014B50 (33639248)\n+64FFF Created Zip Spec      14 (20) '2.0'\n+65000 Created OS            00 (0) 'MS-DOS'\n+65001 Extract Zip Spec      14 (20) '2.0'\n+65002 Extract OS            00 (0) 'MS-DOS'\n+65003 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65005 Compression Method    0000 (0) 'Stored'\n+65007 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6500B CRC                   23BE2A56 (599665238)\n+6500F Compressed Size       000025D2 (9682)\n+65013 Uncompressed Size     000025D2 (9682)\n+65017 Filename Length       0028 (40)\n+65019 Extra Length          0009 (9)\n+6501B Comment Length        0000 (0)\n+6501D Disk Start            0000 (0)\n+6501F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65021 Ext File Attributes   00000000 (0)\n+65025 Local Header Offset   00022C07 (142343)\n+65029 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65029: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65051 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65053   Length              0005 (5)\n+65055   Flags               01 (1) 'Modification'\n+65056   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6505A CENTRAL HEADER #67    02014B50 (33639248)\n+6505E Created Zip Spec      14 (20) '2.0'\n+6505F Created OS            00 (0) 'MS-DOS'\n+65060 Extract Zip Spec      14 (20) '2.0'\n+65061 Extract OS            00 (0) 'MS-DOS'\n+65062 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65064 Compression Method    0000 (0) 'Stored'\n+65066 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6506A CRC                   E3F04F5A (3824176986)\n+6506E Compressed Size       0000278F (10127)\n+65072 Uncompressed Size     0000278F (10127)\n+65076 Filename Length       0032 (50)\n+65078 Extra Length          0009 (9)\n+6507A Comment Length        0000 (0)\n+6507C Disk Start            0000 (0)\n+6507E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65080 Ext File Attributes   00000000 (0)\n+65084 Local Header Offset   00025238 (152120)\n+65088 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65088: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+650BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+650BC   Length              0005 (5)\n+650BE   Flags               01 (1) 'Modification'\n+650BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+650C3 CENTRAL HEADER #68    02014B50 (33639248)\n+650C7 Created Zip Spec      14 (20) '2.0'\n+650C8 Created OS            00 (0) 'MS-DOS'\n+650C9 Extract Zip Spec      14 (20) '2.0'\n+650CA Extract OS            00 (0) 'MS-DOS'\n+650CB General Purpose Flag  0000 (0)\n+650CD Compression Method    0000 (0) 'Stored'\n+650CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+650D3 CRC                   00000000 (0)\n+650D7 Compressed Size       00000000 (0)\n+650DB Uncompressed Size     00000000 (0)\n+650DF Filename Length       0016 (22)\n+650E1 Extra Length          0009 (9)\n+650E3 Comment Length        0000 (0)\n+650E5 Disk Start            0000 (0)\n+650E7 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+650E9 Ext File Attributes   00000000 (0)\n+650ED Local Header Offset   00027A30 (162352)\n+650F1 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x650F1: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65107 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65109   Length              0005 (5)\n+6510B   Flags               01 (1) 'Modification'\n+6510C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65110 CENTRAL HEADER #69    02014B50 (33639248)\n+65114 Created Zip Spec      14 (20) '2.0'\n+65115 Created OS            00 (0) 'MS-DOS'\n+65116 Extract Zip Spec      14 (20) '2.0'\n+65117 Extract OS            00 (0) 'MS-DOS'\n+65118 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6511A Compression Method    0000 (0) 'Stored'\n+6511C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65120 CRC                   6D97C843 (1838663747)\n+65124 Compressed Size       00000A5C (2652)\n+65128 Uncompressed Size     00000A5C (2652)\n+6512C Filename Length       0030 (48)\n+6512E Extra Length          0009 (9)\n+65130 Comment Length        0000 (0)\n+65132 Disk Start            0000 (0)\n+65134 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65136 Ext File Attributes   00000000 (0)\n+6513A Local Header Offset   00027A6D (162413)\n+6513E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6513E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6516E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65170   Length              0005 (5)\n+65172   Flags               01 (1) 'Modification'\n+65173   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65177 CENTRAL HEADER #70    02014B50 (33639248)\n+6517B Created Zip Spec      14 (20) '2.0'\n+6517C Created OS            00 (0) 'MS-DOS'\n+6517D Extract Zip Spec      14 (20) '2.0'\n+6517E Extract OS            00 (0) 'MS-DOS'\n+6517F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65181 Compression Method    0000 (0) 'Stored'\n+65183 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65187 CRC                   35479578 (893883768)\n+6518B Compressed Size       00000478 (1144)\n+6518F Uncompressed Size     00000478 (1144)\n+65193 Filename Length       0058 (88)\n+65195 Extra Length          0009 (9)\n+65197 Comment Length        0000 (0)\n+65199 Disk Start            0000 (0)\n+6519B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6519D Ext File Attributes   00000000 (0)\n+651A1 Local Header Offset   00028530 (165168)\n+651A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x651A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+651FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+651FF   Length              0005 (5)\n+65201   Flags               01 (1) 'Modification'\n+65202   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65206 CENTRAL HEADER #71    02014B50 (33639248)\n+6520A Created Zip Spec      14 (20) '2.0'\n+6520B Created OS            00 (0) 'MS-DOS'\n+6520C Extract Zip Spec      14 (20) '2.0'\n+6520D Extract OS            00 (0) 'MS-DOS'\n+6520E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65210 Compression Method    0000 (0) 'Stored'\n+65212 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65216 CRC                   3F93A3EA (1066640362)\n+6521A Compressed Size       00000477 (1143)\n+6521E Uncompressed Size     00000477 (1143)\n+65222 Filename Length       0038 (56)\n+65224 Extra Length          0009 (9)\n+65226 Comment Length        0000 (0)\n+65228 Disk Start            0000 (0)\n+6522A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6522C Ext File Attributes   00000000 (0)\n+65230 Local Header Offset   00028A37 (166455)\n+65234 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65234: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6526C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6526E   Length              0005 (5)\n+65270   Flags               01 (1) 'Modification'\n+65271   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65275 CENTRAL HEADER #72    02014B50 (33639248)\n+65279 Created Zip Spec      14 (20) '2.0'\n+6527A Created OS            00 (0) 'MS-DOS'\n+6527B Extract Zip Spec      14 (20) '2.0'\n+6527C Extract OS            00 (0) 'MS-DOS'\n+6527D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6527F Compression Method    0000 (0) 'Stored'\n+65281 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65285 CRC                   398CD30C (965530380)\n+65289 Compressed Size       000002F1 (753)\n+6528D Uncompressed Size     000002F1 (753)\n+65291 Filename Length       0036 (54)\n+65293 Extra Length          0009 (9)\n+65295 Comment Length        0000 (0)\n+65297 Disk Start            0000 (0)\n+65299 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6529B Ext File Attributes   00000000 (0)\n+6529F Local Header Offset   00028F1D (167709)\n+652A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x652A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+652D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+652DB   Length              0005 (5)\n+652DD   Flags               01 (1) 'Modification'\n+652DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+652E2 CENTRAL HEADER #73    02014B50 (33639248)\n+652E6 Created Zip Spec      14 (20) '2.0'\n+652E7 Created OS            00 (0) 'MS-DOS'\n+652E8 Extract Zip Spec      14 (20) '2.0'\n+652E9 Extract OS            00 (0) 'MS-DOS'\n+652EA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+652EC Compression Method    0000 (0) 'Stored'\n+652EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+652F2 CRC                   73F4B1AD (1945416109)\n+652F6 Compressed Size       00000924 (2340)\n+652FA Uncompressed Size     00000924 (2340)\n+652FE Filename Length       0029 (41)\n+65300 Extra Length          0009 (9)\n+65302 Comment Length        0000 (0)\n+65304 Disk Start            0000 (0)\n+65306 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65308 Ext File Attributes   00000000 (0)\n+6530C Local Header Offset   0002927B (168571)\n+65310 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65310: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65339 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6533B   Length              0005 (5)\n+6533D   Flags               01 (1) 'Modification'\n+6533E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65342 CENTRAL HEADER #74    02014B50 (33639248)\n+65346 Created Zip Spec      14 (20) '2.0'\n+65347 Created OS            00 (0) 'MS-DOS'\n+65348 Extract Zip Spec      14 (20) '2.0'\n+65349 Extract OS            00 (0) 'MS-DOS'\n+6534A General Purpose Flag  0000 (0)\n+6534C Compression Method    0000 (0) 'Stored'\n+6534E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65352 CRC                   00000000 (0)\n+65356 Compressed Size       00000000 (0)\n+6535A Uncompressed Size     00000000 (0)\n+6535E Filename Length       001B (27)\n+65360 Extra Length          0009 (9)\n+65362 Comment Length        0000 (0)\n+65364 Disk Start            0000 (0)\n+65366 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65368 Ext File Attributes   00000000 (0)\n+6536C Local Header Offset   00029BFF (171007)\n+65370 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65370: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6538B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6538D   Length              0005 (5)\n+6538F   Flags               01 (1) 'Modification'\n+65390   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65394 CENTRAL HEADER #75    02014B50 (33639248)\n+65398 Created Zip Spec      14 (20) '2.0'\n+65399 Created OS            00 (0) 'MS-DOS'\n+6539A Extract Zip Spec      14 (20) '2.0'\n+6539B Extract OS            00 (0) 'MS-DOS'\n+6539C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6539E Compression Method    0000 (0) 'Stored'\n+653A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+653A4 CRC                   305262CA (810705610)\n+653A8 Compressed Size       0000061E (1566)\n+653AC Uncompressed Size     0000061E (1566)\n+653B0 Filename Length       0049 (73)\n+653B2 Extra Length          0009 (9)\n+653B4 Comment Length        0000 (0)\n+653B6 Disk Start            0000 (0)\n+653B8 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+653BA Ext File Attributes   00000000 (0)\n+653BE Local Header Offset   00029C41 (171073)\n+653C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x653C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6540B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6540D   Length              0005 (5)\n+6540F   Flags               01 (1) 'Modification'\n+65410   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65414 CENTRAL HEADER #76    02014B50 (33639248)\n+65418 Created Zip Spec      14 (20) '2.0'\n+65419 Created OS            00 (0) 'MS-DOS'\n+6541A Extract Zip Spec      14 (20) '2.0'\n+6541B Extract OS            00 (0) 'MS-DOS'\n+6541C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6541E Compression Method    0000 (0) 'Stored'\n+65420 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65424 CRC                   E8016802 (3892406274)\n+65428 Compressed Size       000013B5 (5045)\n+6542C Uncompressed Size     000013B5 (5045)\n+65430 Filename Length       0036 (54)\n+65432 Extra Length          0009 (9)\n+65434 Comment Length        0000 (0)\n+65436 Disk Start            0000 (0)\n+65438 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6543A Ext File Attributes   00000000 (0)\n+6543E Local Header Offset   0002A2DF (172767)\n+65442 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65442: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65478 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6547A   Length              0005 (5)\n+6547C   Flags               01 (1) 'Modification'\n+6547D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65481 CENTRAL HEADER #77    02014B50 (33639248)\n+65485 Created Zip Spec      14 (20) '2.0'\n+65486 Created OS            00 (0) 'MS-DOS'\n+65487 Extract Zip Spec      14 (20) '2.0'\n+65488 Extract OS            00 (0) 'MS-DOS'\n+65489 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6548B Compression Method    0000 (0) 'Stored'\n+6548D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65491 CRC                   6885B64A (1753593418)\n+65495 Compressed Size       00000752 (1874)\n+65499 Uncompressed Size     00000752 (1874)\n+6549D Filename Length       0058 (88)\n+6549F Extra Length          0009 (9)\n+654A1 Comment Length        0000 (0)\n+654A3 Disk Start            0000 (0)\n+654A5 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+654A7 Ext File Attributes   00000000 (0)\n+654AB Local Header Offset   0002B701 (177921)\n+654AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x654AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65507 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65509   Length              0005 (5)\n+6550B   Flags               01 (1) 'Modification'\n+6550C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65510 CENTRAL HEADER #78    02014B50 (33639248)\n+65514 Created Zip Spec      14 (20) '2.0'\n+65515 Created OS            00 (0) 'MS-DOS'\n+65516 Extract Zip Spec      14 (20) '2.0'\n+65517 Extract OS            00 (0) 'MS-DOS'\n+65518 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6551A Compression Method    0000 (0) 'Stored'\n+6551C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65520 CRC                   3C5A566B (1012553323)\n+65524 Compressed Size       0000084F (2127)\n+65528 Uncompressed Size     0000084F (2127)\n+6552C Filename Length       005B (91)\n+6552E Extra Length          0009 (9)\n+65530 Comment Length        0000 (0)\n+65532 Disk Start            0000 (0)\n+65534 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65536 Ext File Attributes   00000000 (0)\n+6553A Local Header Offset   0002BEE2 (179938)\n+6553E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6553E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65599 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6559B   Length              0005 (5)\n+6559D   Flags               01 (1) 'Modification'\n+6559E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+655A2 CENTRAL HEADER #79    02014B50 (33639248)\n+655A6 Created Zip Spec      14 (20) '2.0'\n+655A7 Created OS            00 (0) 'MS-DOS'\n+655A8 Extract Zip Spec      14 (20) '2.0'\n+655A9 Extract OS            00 (0) 'MS-DOS'\n+655AA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+655AC Compression Method    0000 (0) 'Stored'\n+655AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+655B2 CRC                   3A65F954 (979761492)\n+655B6 Compressed Size       000016FC (5884)\n+655BA Uncompressed Size     000016FC (5884)\n+655BE Filename Length       003F (63)\n+655C0 Extra Length          0009 (9)\n+655C2 Comment Length        0000 (0)\n+655C4 Disk Start            0000 (0)\n+655C6 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+655C8 Ext File Attributes   00000000 (0)\n+655CC Local Header Offset   0002C7C3 (182211)\n+655D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x655D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6560F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65611   Length              0005 (5)\n+65613   Flags               01 (1) 'Modification'\n+65614   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65618 CENTRAL HEADER #80    02014B50 (33639248)\n+6561C Created Zip Spec      14 (20) '2.0'\n+6561D Created OS            00 (0) 'MS-DOS'\n+6561E Extract Zip Spec      14 (20) '2.0'\n+6561F Extract OS            00 (0) 'MS-DOS'\n+65620 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65622 Compression Method    0000 (0) 'Stored'\n+65624 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65628 CRC                   66FAA47E (1727702142)\n+6562C Compressed Size       00000A2E (2606)\n+65630 Uncompressed Size     00000A2E (2606)\n+65634 Filename Length       003D (61)\n+65636 Extra Length          0009 (9)\n+65638 Comment Length        0000 (0)\n+6563A Disk Start            0000 (0)\n+6563C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6563E Ext File Attributes   00000000 (0)\n+65642 Local Header Offset   0002DF35 (188213)\n+65646 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65646: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65683 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65685   Length              0005 (5)\n+65687   Flags               01 (1) 'Modification'\n+65688   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6568C CENTRAL HEADER #81    02014B50 (33639248)\n+65690 Created Zip Spec      14 (20) '2.0'\n+65691 Created OS            00 (0) 'MS-DOS'\n+65692 Extract Zip Spec      14 (20) '2.0'\n+65693 Extract OS            00 (0) 'MS-DOS'\n+65694 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65696 Compression Method    0000 (0) 'Stored'\n+65698 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6569C CRC                   1836791F (406223135)\n+656A0 Compressed Size       00000822 (2082)\n+656A4 Uncompressed Size     00000822 (2082)\n+656A8 Filename Length       005B (91)\n+656AA Extra Length          0009 (9)\n+656AC Comment Length        0000 (0)\n+656AE Disk Start            0000 (0)\n+656B0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+656B2 Ext File Attributes   00000000 (0)\n+656B6 Local Header Offset   0002E9D7 (190935)\n+656BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x656BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65715 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65717   Length              0005 (5)\n+65719   Flags               01 (1) 'Modification'\n+6571A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6571E CENTRAL HEADER #82    02014B50 (33639248)\n+65722 Created Zip Spec      14 (20) '2.0'\n+65723 Created OS            00 (0) 'MS-DOS'\n+65724 Extract Zip Spec      14 (20) '2.0'\n+65725 Extract OS            00 (0) 'MS-DOS'\n+65726 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65728 Compression Method    0000 (0) 'Stored'\n+6572A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6572E CRC                   24E9C6CA (619300554)\n+65732 Compressed Size       000007C7 (1991)\n+65736 Uncompressed Size     000007C7 (1991)\n+6573A Filename Length       0038 (56)\n+6573C Extra Length          0009 (9)\n+6573E Comment Length        0000 (0)\n+65740 Disk Start            0000 (0)\n+65742 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65744 Ext File Attributes   00000000 (0)\n+65748 Local Header Offset   0002F28B (193163)\n+6574C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6574C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65784 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65786   Length              0005 (5)\n+65788   Flags               01 (1) 'Modification'\n+65789   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6578D CENTRAL HEADER #83    02014B50 (33639248)\n+65791 Created Zip Spec      14 (20) '2.0'\n+65792 Created OS            00 (0) 'MS-DOS'\n+65793 Extract Zip Spec      14 (20) '2.0'\n+65794 Extract OS            00 (0) 'MS-DOS'\n+65795 General Purpose Flag  0000 (0)\n+65797 Compression Method    0000 (0) 'Stored'\n+65799 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6579D CRC                   00000000 (0)\n+657A1 Compressed Size       00000000 (0)\n+657A5 Uncompressed Size     00000000 (0)\n+657A9 Filename Length       0020 (32)\n+657AB Extra Length          0009 (9)\n+657AD Comment Length        0000 (0)\n+657AF Disk Start            0000 (0)\n+657B1 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+657B3 Ext File Attributes   00000000 (0)\n+657B7 Local Header Offset   0002FAC1 (195265)\n+657BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x657BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+657DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+657DD   Length              0005 (5)\n+657DF   Flags               01 (1) 'Modification'\n+657E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+657E4 CENTRAL HEADER #84    02014B50 (33639248)\n+657E8 Created Zip Spec      14 (20) '2.0'\n+657E9 Created OS            00 (0) 'MS-DOS'\n+657EA Extract Zip Spec      14 (20) '2.0'\n+657EB Extract OS            00 (0) 'MS-DOS'\n+657EC General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+657EE Compression Method    0000 (0) 'Stored'\n+657F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+657F4 CRC                   528FA981 (1385146753)\n+657F8 Compressed Size       00000AE2 (2786)\n+657FC Uncompressed Size     00000AE2 (2786)\n+65800 Filename Length       0033 (51)\n+65802 Extra Length          0009 (9)\n+65804 Comment Length        0000 (0)\n+65806 Disk Start            0000 (0)\n+65808 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6580A Ext File Attributes   00000000 (0)\n+6580E Local Header Offset   0002FB08 (195336)\n+65812 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65812: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65845 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65847   Length              0005 (5)\n+65849   Flags               01 (1) 'Modification'\n+6584A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6584E CENTRAL HEADER #85    02014B50 (33639248)\n+65852 Created Zip Spec      14 (20) '2.0'\n+65853 Created OS            00 (0) 'MS-DOS'\n+65854 Extract Zip Spec      14 (20) '2.0'\n+65855 Extract OS            00 (0) 'MS-DOS'\n+65856 General Purpose Flag  0000 (0)\n+65858 Compression Method    0000 (0) 'Stored'\n+6585A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6585E CRC                   00000000 (0)\n+65862 Compressed Size       00000000 (0)\n+65866 Uncompressed Size     00000000 (0)\n+6586A Filename Length       0020 (32)\n+6586C Extra Length          0009 (9)\n+6586E Comment Length        0000 (0)\n+65870 Disk Start            0000 (0)\n+65872 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65874 Ext File Attributes   00000000 (0)\n+65878 Local Header Offset   00030654 (198228)\n+6587C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6587C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6589C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6589E   Length              0005 (5)\n+658A0   Flags               01 (1) 'Modification'\n+658A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+658A5 CENTRAL HEADER #86    02014B50 (33639248)\n+658A9 Created Zip Spec      14 (20) '2.0'\n+658AA Created OS            00 (0) 'MS-DOS'\n+658AB Extract Zip Spec      14 (20) '2.0'\n+658AC Extract OS            00 (0) 'MS-DOS'\n+658AD General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+658AF Compression Method    0000 (0) 'Stored'\n+658B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+658B5 CRC                   15D75F6D (366436205)\n+658B9 Compressed Size       00000540 (1344)\n+658BD Uncompressed Size     00000540 (1344)\n+658C1 Filename Length       0051 (81)\n+658C3 Extra Length          0009 (9)\n+658C5 Comment Length        0000 (0)\n+658C7 Disk Start            0000 (0)\n+658C9 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+658CB Ext File Attributes   00000000 (0)\n+658CF Local Header Offset   0003069B (198299)\n+658D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x658D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65924 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65926   Length              0005 (5)\n+65928   Flags               01 (1) 'Modification'\n+65929   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6592D CENTRAL HEADER #87    02014B50 (33639248)\n+65931 Created Zip Spec      14 (20) '2.0'\n+65932 Created OS            00 (0) 'MS-DOS'\n+65933 Extract Zip Spec      14 (20) '2.0'\n+65934 Extract OS            00 (0) 'MS-DOS'\n+65935 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65937 Compression Method    0000 (0) 'Stored'\n+65939 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6593D CRC                   4661EC65 (1180822629)\n+65941 Compressed Size       00000D32 (3378)\n+65945 Uncompressed Size     00000D32 (3378)\n+65949 Filename Length       004B (75)\n+6594B Extra Length          0009 (9)\n+6594D Comment Length        0000 (0)\n+6594F Disk Start            0000 (0)\n+65951 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65953 Ext File Attributes   00000000 (0)\n+65957 Local Header Offset   00030C63 (199779)\n+6595B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6595B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+659A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+659A8   Length              0005 (5)\n+659AA   Flags               01 (1) 'Modification'\n+659AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+659AF CENTRAL HEADER #88    02014B50 (33639248)\n+659B3 Created Zip Spec      14 (20) '2.0'\n+659B4 Created OS            00 (0) 'MS-DOS'\n+659B5 Extract Zip Spec      14 (20) '2.0'\n+659B6 Extract OS            00 (0) 'MS-DOS'\n+659B7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+659B9 Compression Method    0000 (0) 'Stored'\n+659BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+659BF CRC                   A3928BCE (2744290254)\n+659C3 Compressed Size       00000F8E (3982)\n+659C7 Uncompressed Size     00000F8E (3982)\n+659CB Filename Length       0038 (56)\n+659CD Extra Length          0009 (9)\n+659CF Comment Length        0000 (0)\n+659D1 Disk Start            0000 (0)\n+659D3 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+659D5 Ext File Attributes   00000000 (0)\n+659D9 Local Header Offset   00031A17 (203287)\n+659DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x659DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65A15 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65A17   Length              0005 (5)\n+65A19   Flags               01 (1) 'Modification'\n+65A1A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65A1E CENTRAL HEADER #89    02014B50 (33639248)\n+65A22 Created Zip Spec      14 (20) '2.0'\n+65A23 Created OS            00 (0) 'MS-DOS'\n+65A24 Extract Zip Spec      14 (20) '2.0'\n+65A25 Extract OS            00 (0) 'MS-DOS'\n+65A26 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65A28 Compression Method    0000 (0) 'Stored'\n+65A2A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65A2E CRC                   6943170E (1766004494)\n+65A32 Compressed Size       00000356 (854)\n+65A36 Uncompressed Size     00000356 (854)\n+65A3A Filename Length       0060 (96)\n+65A3C Extra Length          0009 (9)\n+65A3E Comment Length        0000 (0)\n+65A40 Disk Start            0000 (0)\n+65A42 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65A44 Ext File Attributes   00000000 (0)\n+65A48 Local Header Offset   00032A14 (207380)\n+65A4C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65A4C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65AAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65AAE   Length              0005 (5)\n+65AB0   Flags               01 (1) 'Modification'\n+65AB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65AB5 CENTRAL HEADER #90    02014B50 (33639248)\n+65AB9 Created Zip Spec      14 (20) '2.0'\n+65ABA Created OS            00 (0) 'MS-DOS'\n+65ABB Extract Zip Spec      14 (20) '2.0'\n+65ABC Extract OS            00 (0) 'MS-DOS'\n+65ABD General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65ABF Compression Method    0000 (0) 'Stored'\n+65AC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65AC5 CRC                   B9E3821A (3118694938)\n+65AC9 Compressed Size       0000068B (1675)\n+65ACD Uncompressed Size     0000068B (1675)\n+65AD1 Filename Length       003D (61)\n+65AD3 Extra Length          0009 (9)\n+65AD5 Comment Length        0000 (0)\n+65AD7 Disk Start            0000 (0)\n+65AD9 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65ADB Ext File Attributes   00000000 (0)\n+65ADF Local Header Offset   00032E01 (208385)\n+65AE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65AE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65B20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65B22   Length              0005 (5)\n+65B24   Flags               01 (1) 'Modification'\n+65B25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65B29 CENTRAL HEADER #91    02014B50 (33639248)\n+65B2D Created Zip Spec      14 (20) '2.0'\n+65B2E Created OS            00 (0) 'MS-DOS'\n+65B2F Extract Zip Spec      14 (20) '2.0'\n+65B30 Extract OS            00 (0) 'MS-DOS'\n+65B31 General Purpose Flag  0000 (0)\n+65B33 Compression Method    0000 (0) 'Stored'\n+65B35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65B39 CRC                   00000000 (0)\n+65B3D Compressed Size       00000000 (0)\n+65B41 Uncompressed Size     00000000 (0)\n+65B45 Filename Length       001C (28)\n+65B47 Extra Length          0009 (9)\n+65B49 Comment Length        0000 (0)\n+65B4B Disk Start            0000 (0)\n+65B4D Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65B4F Ext File Attributes   00000000 (0)\n+65B53 Local Header Offset   00033500 (210176)\n+65B57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65B57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65B73 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65B75   Length              0005 (5)\n+65B77   Flags               01 (1) 'Modification'\n+65B78   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65B7C CENTRAL HEADER #92    02014B50 (33639248)\n+65B80 Created Zip Spec      14 (20) '2.0'\n+65B81 Created OS            00 (0) 'MS-DOS'\n+65B82 Extract Zip Spec      14 (20) '2.0'\n+65B83 Extract OS            00 (0) 'MS-DOS'\n+65B84 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65B86 Compression Method    0000 (0) 'Stored'\n+65B88 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65B8C CRC                   1D0FCAE9 (487574249)\n+65B90 Compressed Size       00000411 (1041)\n+65B94 Uncompressed Size     00000411 (1041)\n+65B98 Filename Length       0040 (64)\n+65B9A Extra Length          0009 (9)\n+65B9C Comment Length        0000 (0)\n+65B9E Disk Start            0000 (0)\n+65BA0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65BA2 Ext File Attributes   00000000 (0)\n+65BA6 Local Header Offset   00033543 (210243)\n+65BAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65BAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65BEA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65BEC   Length              0005 (5)\n+65BEE   Flags               01 (1) 'Modification'\n+65BEF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65BF3 CENTRAL HEADER #93    02014B50 (33639248)\n+65BF7 Created Zip Spec      14 (20) '2.0'\n+65BF8 Created OS            00 (0) 'MS-DOS'\n+65BF9 Extract Zip Spec      14 (20) '2.0'\n+65BFA Extract OS            00 (0) 'MS-DOS'\n+65BFB General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65BFD Compression Method    0000 (0) 'Stored'\n+65BFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65C03 CRC                   B9B8CEE2 (3115896546)\n+65C07 Compressed Size       000010DD (4317)\n+65C0B Uncompressed Size     000010DD (4317)\n+65C0F Filename Length       0030 (48)\n+65C11 Extra Length          0009 (9)\n+65C13 Comment Length        0000 (0)\n+65C15 Disk Start            0000 (0)\n+65C17 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65C19 Ext File Attributes   00000000 (0)\n+65C1D Local Header Offset   000339CB (211403)\n+65C21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65C21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65C51 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65C53   Length              0005 (5)\n+65C55   Flags               01 (1) 'Modification'\n+65C56   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65C5A CENTRAL HEADER #94    02014B50 (33639248)\n+65C5E Created Zip Spec      14 (20) '2.0'\n+65C5F Created OS            00 (0) 'MS-DOS'\n+65C60 Extract Zip Spec      14 (20) '2.0'\n+65C61 Extract OS            00 (0) 'MS-DOS'\n+65C62 General Purpose Flag  0000 (0)\n+65C64 Compression Method    0000 (0) 'Stored'\n+65C66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65C6A CRC                   00000000 (0)\n+65C6E Compressed Size       00000000 (0)\n+65C72 Uncompressed Size     00000000 (0)\n+65C76 Filename Length       001C (28)\n+65C78 Extra Length          0009 (9)\n+65C7A Comment Length        0000 (0)\n+65C7C Disk Start            0000 (0)\n+65C7E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65C80 Ext File Attributes   00000000 (0)\n+65C84 Local Header Offset   00034B0F (215823)\n+65C88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65C88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65CA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65CA6   Length              0005 (5)\n+65CA8   Flags               01 (1) 'Modification'\n+65CA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65CAD CENTRAL HEADER #95    02014B50 (33639248)\n+65CB1 Created Zip Spec      14 (20) '2.0'\n+65CB2 Created OS            00 (0) 'MS-DOS'\n+65CB3 Extract Zip Spec      14 (20) '2.0'\n+65CB4 Extract OS            00 (0) 'MS-DOS'\n+65CB5 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65CB7 Compression Method    0000 (0) 'Stored'\n+65CB9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65CBD CRC                   629F1B01 (1654594305)\n+65CC1 Compressed Size       00001C1F (7199)\n+65CC5 Uncompressed Size     00001C1F (7199)\n+65CC9 Filename Length       0034 (52)\n+65CCB Extra Length          0009 (9)\n+65CCD Comment Length        0000 (0)\n+65CCF Disk Start            0000 (0)\n+65CD1 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65CD3 Ext File Attributes   00000000 (0)\n+65CD7 Local Header Offset   00034B52 (215890)\n+65CDB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65CDB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65D0F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65D11   Length              0005 (5)\n+65D13   Flags               01 (1) 'Modification'\n+65D14   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65D18 CENTRAL HEADER #96    02014B50 (33639248)\n+65D1C Created Zip Spec      14 (20) '2.0'\n+65D1D Created OS            00 (0) 'MS-DOS'\n+65D1E Extract Zip Spec      14 (20) '2.0'\n+65D1F Extract OS            00 (0) 'MS-DOS'\n+65D20 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65D22 Compression Method    0000 (0) 'Stored'\n+65D24 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65D28 CRC                   CE6B5057 (3463139415)\n+65D2C Compressed Size       00000E7F (3711)\n+65D30 Uncompressed Size     00000E7F (3711)\n+65D34 Filename Length       002C (44)\n+65D36 Extra Length          0009 (9)\n+65D38 Comment Length        0000 (0)\n+65D3A Disk Start            0000 (0)\n+65D3C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65D3E Ext File Attributes   00000000 (0)\n+65D42 Local Header Offset   000367DC (223196)\n+65D46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65D46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65D72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65D74   Length              0005 (5)\n+65D76   Flags               01 (1) 'Modification'\n+65D77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65D7B CENTRAL HEADER #97    02014B50 (33639248)\n+65D7F Created Zip Spec      14 (20) '2.0'\n+65D80 Created OS            00 (0) 'MS-DOS'\n+65D81 Extract Zip Spec      14 (20) '2.0'\n+65D82 Extract OS            00 (0) 'MS-DOS'\n+65D83 General Purpose Flag  0000 (0)\n+65D85 Compression Method    0000 (0) 'Stored'\n+65D87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65D8B CRC                   00000000 (0)\n+65D8F Compressed Size       00000000 (0)\n+65D93 Uncompressed Size     00000000 (0)\n+65D97 Filename Length       0027 (39)\n+65D99 Extra Length          0009 (9)\n+65D9B Comment Length        0000 (0)\n+65D9D Disk Start            0000 (0)\n+65D9F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65DA1 Ext File Attributes   00000000 (0)\n+65DA5 Local Header Offset   000376BE (227006)\n+65DA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65DA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65DD0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65DD2   Length              0005 (5)\n+65DD4   Flags               01 (1) 'Modification'\n+65DD5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65DD9 CENTRAL HEADER #98    02014B50 (33639248)\n+65DDD Created Zip Spec      14 (20) '2.0'\n+65DDE Created OS            00 (0) 'MS-DOS'\n+65DDF Extract Zip Spec      14 (20) '2.0'\n+65DE0 Extract OS            00 (0) 'MS-DOS'\n+65DE1 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65DE3 Compression Method    0000 (0) 'Stored'\n+65DE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65DE9 CRC                   C2DA5AAE (3269089966)\n+65DED Compressed Size       0000031C (796)\n+65DF1 Uncompressed Size     0000031C (796)\n+65DF5 Filename Length       005C (92)\n+65DF7 Extra Length          0009 (9)\n+65DF9 Comment Length        0000 (0)\n+65DFB Disk Start            0000 (0)\n+65DFD Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65DFF Ext File Attributes   00000000 (0)\n+65E03 Local Header Offset   0003770C (227084)\n+65E07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65E07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65E63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65E65   Length              0005 (5)\n+65E67   Flags               01 (1) 'Modification'\n+65E68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65E6C CENTRAL HEADER #99    02014B50 (33639248)\n+65E70 Created Zip Spec      14 (20) '2.0'\n+65E71 Created OS            00 (0) 'MS-DOS'\n+65E72 Extract Zip Spec      14 (20) '2.0'\n+65E73 Extract OS            00 (0) 'MS-DOS'\n+65E74 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65E76 Compression Method    0000 (0) 'Stored'\n+65E78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65E7C CRC                   F511A1A1 (4111573409)\n+65E80 Compressed Size       0000030E (782)\n+65E84 Uncompressed Size     0000030E (782)\n+65E88 Filename Length       0058 (88)\n+65E8A Extra Length          0009 (9)\n+65E8C Comment Length        0000 (0)\n+65E8E Disk Start            0000 (0)\n+65E90 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65E92 Ext File Attributes   00000000 (0)\n+65E96 Local Header Offset   00037ABB (228027)\n+65E9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65E9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65EF2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65EF4   Length              0005 (5)\n+65EF6   Flags               01 (1) 'Modification'\n+65EF7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65EFB CENTRAL HEADER #100   02014B50 (33639248)\n+65EFF Created Zip Spec      14 (20) '2.0'\n+65F00 Created OS            00 (0) 'MS-DOS'\n+65F01 Extract Zip Spec      14 (20) '2.0'\n+65F02 Extract OS            00 (0) 'MS-DOS'\n+65F03 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65F05 Compression Method    0000 (0) 'Stored'\n+65F07 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65F0B CRC                   5CF570C5 (1559589061)\n+65F0F Compressed Size       00000E4B (3659)\n+65F13 Uncompressed Size     00000E4B (3659)\n+65F17 Filename Length       004F (79)\n+65F19 Extra Length          0009 (9)\n+65F1B Comment Length        0000 (0)\n+65F1D Disk Start            0000 (0)\n+65F1F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65F21 Ext File Attributes   00000000 (0)\n+65F25 Local Header Offset   00037E58 (228952)\n+65F29 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65F29: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65F78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65F7A   Length              0005 (5)\n+65F7C   Flags               01 (1) 'Modification'\n+65F7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65F81 CENTRAL HEADER #101   02014B50 (33639248)\n+65F85 Created Zip Spec      14 (20) '2.0'\n+65F86 Created OS            00 (0) 'MS-DOS'\n+65F87 Extract Zip Spec      14 (20) '2.0'\n+65F88 Extract OS            00 (0) 'MS-DOS'\n+65F89 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+65F8B Compression Method    0000 (0) 'Stored'\n+65F8D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65F91 CRC                   4D0E0F19 (1292767001)\n+65F95 Compressed Size       000003A3 (931)\n+65F99 Uncompressed Size     000003A3 (931)\n+65F9D Filename Length       0053 (83)\n+65F9F Extra Length          0009 (9)\n+65FA1 Comment Length        0000 (0)\n+65FA3 Disk Start            0000 (0)\n+65FA5 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+65FA7 Ext File Attributes   00000000 (0)\n+65FAB Local Header Offset   00038D29 (232745)\n+65FAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65FAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66002 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66004   Length              0005 (5)\n+66006   Flags               01 (1) 'Modification'\n+66007   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6600B CENTRAL HEADER #102   02014B50 (33639248)\n+6600F Created Zip Spec      14 (20) '2.0'\n+66010 Created OS            00 (0) 'MS-DOS'\n+66011 Extract Zip Spec      14 (20) '2.0'\n+66012 Extract OS            00 (0) 'MS-DOS'\n+66013 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66015 Compression Method    0000 (0) 'Stored'\n+66017 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6601B CRC                   C8A5CF53 (3366309715)\n+6601F Compressed Size       00000641 (1601)\n+66023 Uncompressed Size     00000641 (1601)\n+66027 Filename Length       0059 (89)\n+66029 Extra Length          0009 (9)\n+6602B Comment Length        0000 (0)\n+6602D Disk Start            0000 (0)\n+6602F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66031 Ext File Attributes   00000000 (0)\n+66035 Local Header Offset   00039156 (233814)\n+66039 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66039: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66092 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66094   Length              0005 (5)\n+66096   Flags               01 (1) 'Modification'\n+66097   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6609B CENTRAL HEADER #103   02014B50 (33639248)\n+6609F Created Zip Spec      14 (20) '2.0'\n+660A0 Created OS            00 (0) 'MS-DOS'\n+660A1 Extract Zip Spec      14 (20) '2.0'\n+660A2 Extract OS            00 (0) 'MS-DOS'\n+660A3 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+660A5 Compression Method    0000 (0) 'Stored'\n+660A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+660AB CRC                   AFFC006A (2952527978)\n+660AF Compressed Size       00000724 (1828)\n+660B3 Uncompressed Size     00000724 (1828)\n+660B7 Filename Length       0059 (89)\n+660B9 Extra Length          0009 (9)\n+660BB Comment Length        0000 (0)\n+660BD Disk Start            0000 (0)\n+660BF Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+660C1 Ext File Attributes   00000000 (0)\n+660C5 Local Header Offset   00039827 (235559)\n+660C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x660C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66122 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66124   Length              0005 (5)\n+66126   Flags               01 (1) 'Modification'\n+66127   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6612B CENTRAL HEADER #104   02014B50 (33639248)\n+6612F Created Zip Spec      14 (20) '2.0'\n+66130 Created OS            00 (0) 'MS-DOS'\n+66131 Extract Zip Spec      14 (20) '2.0'\n+66132 Extract OS            00 (0) 'MS-DOS'\n+66133 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66135 Compression Method    0000 (0) 'Stored'\n+66137 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6613B CRC                   D2854DE7 (3531951591)\n+6613F Compressed Size       00000E9A (3738)\n+66143 Uncompressed Size     00000E9A (3738)\n+66147 Filename Length       004A (74)\n+66149 Extra Length          0009 (9)\n+6614B Comment Length        0000 (0)\n+6614D Disk Start            0000 (0)\n+6614F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66151 Ext File Attributes   00000000 (0)\n+66155 Local Header Offset   00039FDB (237531)\n+66159 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66159: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+661A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+661A5   Length              0005 (5)\n+661A7   Flags               01 (1) 'Modification'\n+661A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+661AC CENTRAL HEADER #105   02014B50 (33639248)\n+661B0 Created Zip Spec      14 (20) '2.0'\n+661B1 Created OS            00 (0) 'MS-DOS'\n+661B2 Extract Zip Spec      14 (20) '2.0'\n+661B3 Extract OS            00 (0) 'MS-DOS'\n+661B4 General Purpose Flag  0000 (0)\n+661B6 Compression Method    0000 (0) 'Stored'\n+661B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+661BC CRC                   00000000 (0)\n+661C0 Compressed Size       00000000 (0)\n+661C4 Uncompressed Size     00000000 (0)\n+661C8 Filename Length       001F (31)\n+661CA Extra Length          0009 (9)\n+661CC Comment Length        0000 (0)\n+661CE Disk Start            0000 (0)\n+661D0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+661D2 Ext File Attributes   00000000 (0)\n+661D6 Local Header Offset   0003AEF6 (241398)\n+661DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x661DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+661F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+661FB   Length              0005 (5)\n+661FD   Flags               01 (1) 'Modification'\n+661FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66202 CENTRAL HEADER #106   02014B50 (33639248)\n+66206 Created Zip Spec      14 (20) '2.0'\n+66207 Created OS            00 (0) 'MS-DOS'\n+66208 Extract Zip Spec      14 (20) '2.0'\n+66209 Extract OS            00 (0) 'MS-DOS'\n+6620A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6620C Compression Method    0000 (0) 'Stored'\n+6620E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66212 CRC                   E773172B (3883079467)\n+66216 Compressed Size       00000378 (888)\n+6621A Uncompressed Size     00000378 (888)\n+6621E Filename Length       0048 (72)\n+66220 Extra Length          0009 (9)\n+66222 Comment Length        0000 (0)\n+66224 Disk Start            0000 (0)\n+66226 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66228 Ext File Attributes   00000000 (0)\n+6622C Local Header Offset   0003AF3C (241468)\n+66230 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66230: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66278 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6627A   Length              0005 (5)\n+6627C   Flags               01 (1) 'Modification'\n+6627D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66281 CENTRAL HEADER #107   02014B50 (33639248)\n+66285 Created Zip Spec      14 (20) '2.0'\n+66286 Created OS            00 (0) 'MS-DOS'\n+66287 Extract Zip Spec      14 (20) '2.0'\n+66288 Extract OS            00 (0) 'MS-DOS'\n+66289 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6628B Compression Method    0000 (0) 'Stored'\n+6628D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66291 CRC                   C301E408 (3271681032)\n+66295 Compressed Size       0000052C (1324)\n+66299 Uncompressed Size     0000052C (1324)\n+6629D Filename Length       0036 (54)\n+6629F Extra Length          0009 (9)\n+662A1 Comment Length        0000 (0)\n+662A3 Disk Start            0000 (0)\n+662A5 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+662A7 Ext File Attributes   00000000 (0)\n+662AB Local Header Offset   0003B333 (242483)\n+662AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x662AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+662E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+662E7   Length              0005 (5)\n+662E9   Flags               01 (1) 'Modification'\n+662EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+662EE CENTRAL HEADER #108   02014B50 (33639248)\n+662F2 Created Zip Spec      14 (20) '2.0'\n+662F3 Created OS            00 (0) 'MS-DOS'\n+662F4 Extract Zip Spec      14 (20) '2.0'\n+662F5 Extract OS            00 (0) 'MS-DOS'\n+662F6 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+662F8 Compression Method    0000 (0) 'Stored'\n+662FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+662FE CRC                   9791011C (2542862620)\n+66302 Compressed Size       000005F9 (1529)\n+66306 Uncompressed Size     000005F9 (1529)\n+6630A Filename Length       004E (78)\n+6630C Extra Length          0009 (9)\n+6630E Comment Length        0000 (0)\n+66310 Disk Start            0000 (0)\n+66312 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66314 Ext File Attributes   00000000 (0)\n+66318 Local Header Offset   0003B8CC (243916)\n+6631C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6631C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6636A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6636C   Length              0005 (5)\n+6636E   Flags               01 (1) 'Modification'\n+6636F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66373 CENTRAL HEADER #109   02014B50 (33639248)\n+66377 Created Zip Spec      14 (20) '2.0'\n+66378 Created OS            00 (0) 'MS-DOS'\n+66379 Extract Zip Spec      14 (20) '2.0'\n+6637A Extract OS            00 (0) 'MS-DOS'\n+6637B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6637D Compression Method    0000 (0) 'Stored'\n+6637F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66383 CRC                   9CD13806 (2630957062)\n+66387 Compressed Size       0000050F (1295)\n+6638B Uncompressed Size     0000050F (1295)\n+6638F Filename Length       005A (90)\n+66391 Extra Length          0009 (9)\n+66393 Comment Length        0000 (0)\n+66395 Disk Start            0000 (0)\n+66397 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66399 Ext File Attributes   00000000 (0)\n+6639D Local Header Offset   0003BF4A (245578)\n+663A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x663A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+663FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+663FD   Length              0005 (5)\n+663FF   Flags               01 (1) 'Modification'\n+66400   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66404 CENTRAL HEADER #110   02014B50 (33639248)\n+66408 Created Zip Spec      14 (20) '2.0'\n+66409 Created OS            00 (0) 'MS-DOS'\n+6640A Extract Zip Spec      14 (20) '2.0'\n+6640B Extract OS            00 (0) 'MS-DOS'\n+6640C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6640E Compression Method    0000 (0) 'Stored'\n+66410 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66414 CRC                   D5104923 (3574614307)\n+66418 Compressed Size       00000705 (1797)\n+6641C Uncompressed Size     00000705 (1797)\n+66420 Filename Length       003F (63)\n+66422 Extra Length          0009 (9)\n+66424 Comment Length        0000 (0)\n+66426 Disk Start            0000 (0)\n+66428 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6642A Ext File Attributes   00000000 (0)\n+6642E Local Header Offset   0003C4EA (247018)\n+66432 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66432: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66471 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66473   Length              0005 (5)\n+66475   Flags               01 (1) 'Modification'\n+66476   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6647A CENTRAL HEADER #111   02014B50 (33639248)\n+6647E Created Zip Spec      14 (20) '2.0'\n+6647F Created OS            00 (0) 'MS-DOS'\n+66480 Extract Zip Spec      14 (20) '2.0'\n+66481 Extract OS            00 (0) 'MS-DOS'\n+66482 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66484 Compression Method    0000 (0) 'Stored'\n+66486 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6648A CRC                   D020F6E1 (3491821281)\n+6648E Compressed Size       00000352 (850)\n+66492 Uncompressed Size     00000352 (850)\n+66496 Filename Length       005F (95)\n+66498 Extra Length          0009 (9)\n+6649A Comment Length        0000 (0)\n+6649C Disk Start            0000 (0)\n+6649E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+664A0 Ext File Attributes   00000000 (0)\n+664A4 Local Header Offset   0003CC65 (248933)\n+664A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x664A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66507 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66509   Length              0005 (5)\n+6650B   Flags               01 (1) 'Modification'\n+6650C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66510 CENTRAL HEADER #112   02014B50 (33639248)\n+66514 Created Zip Spec      14 (20) '2.0'\n+66515 Created OS            00 (0) 'MS-DOS'\n+66516 Extract Zip Spec      14 (20) '2.0'\n+66517 Extract OS            00 (0) 'MS-DOS'\n+66518 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6651A Compression Method    0000 (0) 'Stored'\n+6651C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66520 CRC                   622C2643 (1647060547)\n+66524 Compressed Size       000005A8 (1448)\n+66528 Uncompressed Size     000005A8 (1448)\n+6652C Filename Length       003C (60)\n+6652E Extra Length          0009 (9)\n+66530 Comment Length        0000 (0)\n+66532 Disk Start            0000 (0)\n+66534 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66536 Ext File Attributes   00000000 (0)\n+6653A Local Header Offset   0003D04D (249933)\n+6653E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6653E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6657A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6657C   Length              0005 (5)\n+6657E   Flags               01 (1) 'Modification'\n+6657F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66583 CENTRAL HEADER #113   02014B50 (33639248)\n+66587 Created Zip Spec      14 (20) '2.0'\n+66588 Created OS            00 (0) 'MS-DOS'\n+66589 Extract Zip Spec      14 (20) '2.0'\n+6658A Extract OS            00 (0) 'MS-DOS'\n+6658B General Purpose Flag  0000 (0)\n+6658D Compression Method    0000 (0) 'Stored'\n+6658F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66593 CRC                   00000000 (0)\n+66597 Compressed Size       00000000 (0)\n+6659B Uncompressed Size     00000000 (0)\n+6659F Filename Length       0021 (33)\n+665A1 Extra Length          0009 (9)\n+665A3 Comment Length        0000 (0)\n+665A5 Disk Start            0000 (0)\n+665A7 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+665A9 Ext File Attributes   00000000 (0)\n+665AD Local Header Offset   0003D668 (251496)\n+665B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x665B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+665D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+665D4   Length              0005 (5)\n+665D6   Flags               01 (1) 'Modification'\n+665D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+665DB CENTRAL HEADER #114   02014B50 (33639248)\n+665DF Created Zip Spec      14 (20) '2.0'\n+665E0 Created OS            00 (0) 'MS-DOS'\n+665E1 Extract Zip Spec      14 (20) '2.0'\n+665E2 Extract OS            00 (0) 'MS-DOS'\n+665E3 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+665E5 Compression Method    0000 (0) 'Stored'\n+665E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+665EB CRC                   050EDC10 (84859920)\n+665EF Compressed Size       000006A4 (1700)\n+665F3 Uncompressed Size     000006A4 (1700)\n+665F7 Filename Length       004E (78)\n+665F9 Extra Length          0009 (9)\n+665FB Comment Length        0000 (0)\n+665FD Disk Start            0000 (0)\n+665FF Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66601 Ext File Attributes   00000000 (0)\n+66605 Local Header Offset   0003D6B0 (251568)\n+66609 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66609: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66657 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66659   Length              0005 (5)\n+6665B   Flags               01 (1) 'Modification'\n+6665C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66660 CENTRAL HEADER #115   02014B50 (33639248)\n+66664 Created Zip Spec      14 (20) '2.0'\n+66665 Created OS            00 (0) 'MS-DOS'\n+66666 Extract Zip Spec      14 (20) '2.0'\n+66667 Extract OS            00 (0) 'MS-DOS'\n+66668 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6666A Compression Method    0000 (0) 'Stored'\n+6666C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66670 CRC                   ED6F5732 (3983497010)\n+66674 Compressed Size       000009FC (2556)\n+66678 Uncompressed Size     000009FC (2556)\n+6667C Filename Length       003A (58)\n+6667E Extra Length          0009 (9)\n+66680 Comment Length        0000 (0)\n+66682 Disk Start            0000 (0)\n+66684 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66686 Ext File Attributes   00000000 (0)\n+6668A Local Header Offset   0003DDD9 (253401)\n+6668E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6668E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+666C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+666CA   Length              0005 (5)\n+666CC   Flags               01 (1) 'Modification'\n+666CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+666D1 CENTRAL HEADER #116   02014B50 (33639248)\n+666D5 Created Zip Spec      14 (20) '2.0'\n+666D6 Created OS            00 (0) 'MS-DOS'\n+666D7 Extract Zip Spec      14 (20) '2.0'\n+666D8 Extract OS            00 (0) 'MS-DOS'\n+666D9 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+666DB Compression Method    0000 (0) 'Stored'\n+666DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+666E1 CRC                   88B5410C (2293580044)\n+666E5 Compressed Size       00000A59 (2649)\n+666E9 Uncompressed Size     00000A59 (2649)\n+666ED Filename Length       0035 (53)\n+666EF Extra Length          0009 (9)\n+666F1 Comment Length        0000 (0)\n+666F3 Disk Start            0000 (0)\n+666F5 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+666F7 Ext File Attributes   00000000 (0)\n+666FB Local Header Offset   0003E846 (256070)\n+666FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x666FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66734 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66736   Length              0005 (5)\n+66738   Flags               01 (1) 'Modification'\n+66739   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6673D CENTRAL HEADER #117   02014B50 (33639248)\n+66741 Created Zip Spec      14 (20) '2.0'\n+66742 Created OS            00 (0) 'MS-DOS'\n+66743 Extract Zip Spec      14 (20) '2.0'\n+66744 Extract OS            00 (0) 'MS-DOS'\n+66745 General Purpose Flag  0000 (0)\n+66747 Compression Method    0000 (0) 'Stored'\n+66749 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6674D CRC                   00000000 (0)\n+66751 Compressed Size       00000000 (0)\n+66755 Uncompressed Size     00000000 (0)\n+66759 Filename Length       001D (29)\n+6675B Extra Length          0009 (9)\n+6675D Comment Length        0000 (0)\n+6675F Disk Start            0000 (0)\n+66761 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66763 Ext File Attributes   00000000 (0)\n+66767 Local Header Offset   0003F30B (258827)\n+6676B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6676B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66788 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6678A   Length              0005 (5)\n+6678C   Flags               01 (1) 'Modification'\n+6678D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66791 CENTRAL HEADER #118   02014B50 (33639248)\n+66795 Created Zip Spec      14 (20) '2.0'\n+66796 Created OS            00 (0) 'MS-DOS'\n+66797 Extract Zip Spec      14 (20) '2.0'\n+66798 Extract OS            00 (0) 'MS-DOS'\n+66799 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6679B Compression Method    0000 (0) 'Stored'\n+6679D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+667A1 CRC                   174CA276 (390898294)\n+667A5 Compressed Size       00001009 (4105)\n+667A9 Uncompressed Size     00001009 (4105)\n+667AD Filename Length       002F (47)\n+667AF Extra Length          0009 (9)\n+667B1 Comment Length        0000 (0)\n+667B3 Disk Start            0000 (0)\n+667B5 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+667B7 Ext File Attributes   00000000 (0)\n+667BB Local Header Offset   0003F34F (258895)\n+667BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x667BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+667EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+667F0   Length              0005 (5)\n+667F2   Flags               01 (1) 'Modification'\n+667F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+667F7 CENTRAL HEADER #119   02014B50 (33639248)\n+667FB Created Zip Spec      14 (20) '2.0'\n+667FC Created OS            00 (0) 'MS-DOS'\n+667FD Extract Zip Spec      14 (20) '2.0'\n+667FE Extract OS            00 (0) 'MS-DOS'\n+667FF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66801 Compression Method    0000 (0) 'Stored'\n+66803 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66807 CRC                   94B09EEF (2494602991)\n+6680B Compressed Size       00000C43 (3139)\n+6680F Uncompressed Size     00000C43 (3139)\n+66813 Filename Length       0031 (49)\n+66815 Extra Length          0009 (9)\n+66817 Comment Length        0000 (0)\n+66819 Disk Start            0000 (0)\n+6681B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6681D Ext File Attributes   00000000 (0)\n+66821 Local Header Offset   000403BE (263102)\n+66825 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66825: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66856 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66858   Length              0005 (5)\n+6685A   Flags               01 (1) 'Modification'\n+6685B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6685F CENTRAL HEADER #120   02014B50 (33639248)\n+66863 Created Zip Spec      14 (20) '2.0'\n+66864 Created OS            00 (0) 'MS-DOS'\n+66865 Extract Zip Spec      14 (20) '2.0'\n+66866 Extract OS            00 (0) 'MS-DOS'\n+66867 General Purpose Flag  0000 (0)\n+66869 Compression Method    0000 (0) 'Stored'\n+6686B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6686F CRC                   00000000 (0)\n+66873 Compressed Size       00000000 (0)\n+66877 Uncompressed Size     00000000 (0)\n+6687B Filename Length       001E (30)\n+6687D Extra Length          0009 (9)\n+6687F Comment Length        0000 (0)\n+66881 Disk Start            0000 (0)\n+66883 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66885 Ext File Attributes   00000000 (0)\n+66889 Local Header Offset   00041069 (266345)\n+6688D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6688D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+668AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+668AD   Length              0005 (5)\n+668AF   Flags               01 (1) 'Modification'\n+668B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+668B4 CENTRAL HEADER #121   02014B50 (33639248)\n+668B8 Created Zip Spec      14 (20) '2.0'\n+668B9 Created OS            00 (0) 'MS-DOS'\n+668BA Extract Zip Spec      14 (20) '2.0'\n+668BB Extract OS            00 (0) 'MS-DOS'\n+668BC General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+668BE Compression Method    0000 (0) 'Stored'\n+668C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+668C4 CRC                   6122871F (1629652767)\n+668C8 Compressed Size       00000533 (1331)\n+668CC Uncompressed Size     00000533 (1331)\n+668D0 Filename Length       0045 (69)\n+668D2 Extra Length          0009 (9)\n+668D4 Comment Length        0000 (0)\n+668D6 Disk Start            0000 (0)\n+668D8 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+668DA Ext File Attributes   00000000 (0)\n+668DE Local Header Offset   000410AE (266414)\n+668E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x668E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66927 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66929   Length              0005 (5)\n+6692B   Flags               01 (1) 'Modification'\n+6692C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66930 CENTRAL HEADER #122   02014B50 (33639248)\n+66934 Created Zip Spec      14 (20) '2.0'\n+66935 Created OS            00 (0) 'MS-DOS'\n+66936 Extract Zip Spec      14 (20) '2.0'\n+66937 Extract OS            00 (0) 'MS-DOS'\n+66938 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6693A Compression Method    0000 (0) 'Stored'\n+6693C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66940 CRC                   282A38DD (673855709)\n+66944 Compressed Size       000007CA (1994)\n+66948 Uncompressed Size     000007CA (1994)\n+6694C Filename Length       0034 (52)\n+6694E Extra Length          0009 (9)\n+66950 Comment Length        0000 (0)\n+66952 Disk Start            0000 (0)\n+66954 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66956 Ext File Attributes   00000000 (0)\n+6695A Local Header Offset   0004165D (267869)\n+6695E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6695E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66992 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66994   Length              0005 (5)\n+66996   Flags               01 (1) 'Modification'\n+66997   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6699B CENTRAL HEADER #123   02014B50 (33639248)\n+6699F Created Zip Spec      14 (20) '2.0'\n+669A0 Created OS            00 (0) 'MS-DOS'\n+669A1 Extract Zip Spec      14 (20) '2.0'\n+669A2 Extract OS            00 (0) 'MS-DOS'\n+669A3 General Purpose Flag  0000 (0)\n+669A5 Compression Method    0000 (0) 'Stored'\n+669A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+669AB CRC                   00000000 (0)\n+669AF Compressed Size       00000000 (0)\n+669B3 Uncompressed Size     00000000 (0)\n+669B7 Filename Length       0014 (20)\n+669B9 Extra Length          0009 (9)\n+669BB Comment Length        0000 (0)\n+669BD Disk Start            0000 (0)\n+669BF Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+669C1 Ext File Attributes   00000000 (0)\n+669C5 Local Header Offset   00041E92 (269970)\n+669C9 Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x669C9: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+669DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+669DF   Length              0005 (5)\n+669E1   Flags               01 (1) 'Modification'\n+669E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+669E6 CENTRAL HEADER #124   02014B50 (33639248)\n+669EA Created Zip Spec      14 (20) '2.0'\n+669EB Created OS            00 (0) 'MS-DOS'\n+669EC Extract Zip Spec      14 (20) '2.0'\n+669ED Extract OS            00 (0) 'MS-DOS'\n+669EE General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+669F0 Compression Method    0000 (0) 'Stored'\n+669F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+669F6 CRC                   FF2E8B5A (4281240410)\n+669FA Compressed Size       000008AA (2218)\n+669FE Uncompressed Size     000008AA (2218)\n+66A02 Filename Length       004D (77)\n+66A04 Extra Length          0009 (9)\n+66A06 Comment Length        0000 (0)\n+66A08 Disk Start            0000 (0)\n+66A0A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66A0C Ext File Attributes   00000000 (0)\n+66A10 Local Header Offset   00041ECD (270029)\n+66A14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66A14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66A61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66A63   Length              0005 (5)\n+66A65   Flags               01 (1) 'Modification'\n+66A66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66A6A CENTRAL HEADER #125   02014B50 (33639248)\n+66A6E Created Zip Spec      14 (20) '2.0'\n+66A6F Created OS            00 (0) 'MS-DOS'\n+66A70 Extract Zip Spec      14 (20) '2.0'\n+66A71 Extract OS            00 (0) 'MS-DOS'\n+66A72 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66A74 Compression Method    0000 (0) 'Stored'\n+66A76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66A7A CRC                   F19E88D6 (4053698774)\n+66A7E Compressed Size       00000AD0 (2768)\n+66A82 Uncompressed Size     00000AD0 (2768)\n+66A86 Filename Length       004B (75)\n+66A88 Extra Length          0009 (9)\n+66A8A Comment Length        0000 (0)\n+66A8C Disk Start            0000 (0)\n+66A8E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66A90 Ext File Attributes   00000000 (0)\n+66A94 Local Header Offset   000427FB (272379)\n+66A98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66A98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66AE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66AE5   Length              0005 (5)\n+66AE7   Flags               01 (1) 'Modification'\n+66AE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66AEC CENTRAL HEADER #126   02014B50 (33639248)\n+66AF0 Created Zip Spec      14 (20) '2.0'\n+66AF1 Created OS            00 (0) 'MS-DOS'\n+66AF2 Extract Zip Spec      14 (20) '2.0'\n+66AF3 Extract OS            00 (0) 'MS-DOS'\n+66AF4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66AF6 Compression Method    0000 (0) 'Stored'\n+66AF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66AFC CRC                   194A0EFC (424283900)\n+66B00 Compressed Size       0000048C (1164)\n+66B04 Uncompressed Size     0000048C (1164)\n+66B08 Filename Length       004C (76)\n+66B0A Extra Length          0009 (9)\n+66B0C Comment Length        0000 (0)\n+66B0E Disk Start            0000 (0)\n+66B10 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66B12 Ext File Attributes   00000000 (0)\n+66B16 Local Header Offset   0004334D (275277)\n+66B1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66B1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66B66 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66B68   Length              0005 (5)\n+66B6A   Flags               01 (1) 'Modification'\n+66B6B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66B6F CENTRAL HEADER #127   02014B50 (33639248)\n+66B73 Created Zip Spec      14 (20) '2.0'\n+66B74 Created OS            00 (0) 'MS-DOS'\n+66B75 Extract Zip Spec      14 (20) '2.0'\n+66B76 Extract OS            00 (0) 'MS-DOS'\n+66B77 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66B79 Compression Method    0000 (0) 'Stored'\n+66B7B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66B7F CRC                   38071647 (939988551)\n+66B83 Compressed Size       00000488 (1160)\n+66B87 Uncompressed Size     00000488 (1160)\n+66B8B Filename Length       004C (76)\n+66B8D Extra Length          0009 (9)\n+66B8F Comment Length        0000 (0)\n+66B91 Disk Start            0000 (0)\n+66B93 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66B95 Ext File Attributes   00000000 (0)\n+66B99 Local Header Offset   0004385C (276572)\n+66B9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66B9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66BE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66BEB   Length              0005 (5)\n+66BED   Flags               01 (1) 'Modification'\n+66BEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66BF2 CENTRAL HEADER #128   02014B50 (33639248)\n+66BF6 Created Zip Spec      14 (20) '2.0'\n+66BF7 Created OS            00 (0) 'MS-DOS'\n+66BF8 Extract Zip Spec      14 (20) '2.0'\n+66BF9 Extract OS            00 (0) 'MS-DOS'\n+66BFA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66BFC Compression Method    0000 (0) 'Stored'\n+66BFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66C02 CRC                   B6D3D669 (3067336297)\n+66C06 Compressed Size       00001D23 (7459)\n+66C0A Uncompressed Size     00001D23 (7459)\n+66C0E Filename Length       0037 (55)\n+66C10 Extra Length          0009 (9)\n+66C12 Comment Length        0000 (0)\n+66C14 Disk Start            0000 (0)\n+66C16 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66C18 Ext File Attributes   00000000 (0)\n+66C1C Local Header Offset   00043D67 (277863)\n+66C20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66C20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66C57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66C59   Length              0005 (5)\n+66C5B   Flags               01 (1) 'Modification'\n+66C5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66C60 CENTRAL HEADER #129   02014B50 (33639248)\n+66C64 Created Zip Spec      14 (20) '2.0'\n+66C65 Created OS            00 (0) 'MS-DOS'\n+66C66 Extract Zip Spec      14 (20) '2.0'\n+66C67 Extract OS            00 (0) 'MS-DOS'\n+66C68 General Purpose Flag  0000 (0)\n+66C6A Compression Method    0000 (0) 'Stored'\n+66C6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66C70 CRC                   00000000 (0)\n+66C74 Compressed Size       00000000 (0)\n+66C78 Uncompressed Size     00000000 (0)\n+66C7C Filename Length       001C (28)\n+66C7E Extra Length          0009 (9)\n+66C80 Comment Length        0000 (0)\n+66C82 Disk Start            0000 (0)\n+66C84 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66C86 Ext File Attributes   00000000 (0)\n+66C8A Local Header Offset   00045AF8 (285432)\n+66C8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66C8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66CAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66CAC   Length              0005 (5)\n+66CAE   Flags               01 (1) 'Modification'\n+66CAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66CB3 CENTRAL HEADER #130   02014B50 (33639248)\n+66CB7 Created Zip Spec      14 (20) '2.0'\n+66CB8 Created OS            00 (0) 'MS-DOS'\n+66CB9 Extract Zip Spec      14 (20) '2.0'\n+66CBA Extract OS            00 (0) 'MS-DOS'\n+66CBB General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66CBD Compression Method    0000 (0) 'Stored'\n+66CBF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66CC3 CRC                   85F37191 (2247324049)\n+66CC7 Compressed Size       000008CC (2252)\n+66CCB Uncompressed Size     000008CC (2252)\n+66CCF Filename Length       002D (45)\n+66CD1 Extra Length          0009 (9)\n+66CD3 Comment Length        0000 (0)\n+66CD5 Disk Start            0000 (0)\n+66CD7 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66CD9 Ext File Attributes   00000000 (0)\n+66CDD Local Header Offset   00045B3B (285499)\n+66CE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66CE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66D0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66D10   Length              0005 (5)\n+66D12   Flags               01 (1) 'Modification'\n+66D13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66D17 CENTRAL HEADER #131   02014B50 (33639248)\n+66D1B Created Zip Spec      14 (20) '2.0'\n+66D1C Created OS            00 (0) 'MS-DOS'\n+66D1D Extract Zip Spec      14 (20) '2.0'\n+66D1E Extract OS            00 (0) 'MS-DOS'\n+66D1F General Purpose Flag  0000 (0)\n+66D21 Compression Method    0000 (0) 'Stored'\n+66D23 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66D27 CRC                   00000000 (0)\n+66D2B Compressed Size       00000000 (0)\n+66D2F Uncompressed Size     00000000 (0)\n+66D33 Filename Length       0027 (39)\n+66D35 Extra Length          0009 (9)\n+66D37 Comment Length        0000 (0)\n+66D39 Disk Start            0000 (0)\n+66D3B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66D3D Ext File Attributes   00000000 (0)\n+66D41 Local Header Offset   0004646B (287851)\n+66D45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66D45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66D6C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66D6E   Length              0005 (5)\n+66D70   Flags               01 (1) 'Modification'\n+66D71   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66D75 CENTRAL HEADER #132   02014B50 (33639248)\n+66D79 Created Zip Spec      14 (20) '2.0'\n+66D7A Created OS            00 (0) 'MS-DOS'\n+66D7B Extract Zip Spec      14 (20) '2.0'\n+66D7C Extract OS            00 (0) 'MS-DOS'\n+66D7D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66D7F Compression Method    0000 (0) 'Stored'\n+66D81 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66D85 CRC                   420B2988 (1108027784)\n+66D89 Compressed Size       00001265 (4709)\n+66D8D Uncompressed Size     00001265 (4709)\n+66D91 Filename Length       0049 (73)\n+66D93 Extra Length          0009 (9)\n+66D95 Comment Length        0000 (0)\n+66D97 Disk Start            0000 (0)\n+66D99 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66D9B Ext File Attributes   00000000 (0)\n+66D9F Local Header Offset   000464B9 (287929)\n+66DA3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66DA3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66DEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66DEE   Length              0005 (5)\n+66DF0   Flags               01 (1) 'Modification'\n+66DF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66DF5 CENTRAL HEADER #133   02014B50 (33639248)\n+66DF9 Created Zip Spec      14 (20) '2.0'\n+66DFA Created OS            00 (0) 'MS-DOS'\n+66DFB Extract Zip Spec      14 (20) '2.0'\n+66DFC Extract OS            00 (0) 'MS-DOS'\n+66DFD General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66DFF Compression Method    0000 (0) 'Stored'\n+66E01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66E05 CRC                   09B0AEF3 (162574067)\n+66E09 Compressed Size       0000264B (9803)\n+66E0D Uncompressed Size     0000264B (9803)\n+66E11 Filename Length       004B (75)\n+66E13 Extra Length          0009 (9)\n+66E15 Comment Length        0000 (0)\n+66E17 Disk Start            0000 (0)\n+66E19 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66E1B Ext File Attributes   00000000 (0)\n+66E1F Local Header Offset   0004779E (292766)\n+66E23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66E23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66E6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66E70   Length              0005 (5)\n+66E72   Flags               01 (1) 'Modification'\n+66E73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66E77 CENTRAL HEADER #134   02014B50 (33639248)\n+66E7B Created Zip Spec      14 (20) '2.0'\n+66E7C Created OS            00 (0) 'MS-DOS'\n+66E7D Extract Zip Spec      14 (20) '2.0'\n+66E7E Extract OS            00 (0) 'MS-DOS'\n+66E7F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66E81 Compression Method    0000 (0) 'Stored'\n+66E83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66E87 CRC                   42ED27DC (1122838492)\n+66E8B Compressed Size       00000FB2 (4018)\n+66E8F Uncompressed Size     00000FB2 (4018)\n+66E93 Filename Length       0044 (68)\n+66E95 Extra Length          0009 (9)\n+66E97 Comment Length        0000 (0)\n+66E99 Disk Start            0000 (0)\n+66E9B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66E9D Ext File Attributes   00000000 (0)\n+66EA1 Local Header Offset   00049E6B (302699)\n+66EA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66EA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66EE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66EEB   Length              0005 (5)\n+66EED   Flags               01 (1) 'Modification'\n+66EEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66EF2 CENTRAL HEADER #135   02014B50 (33639248)\n+66EF6 Created Zip Spec      14 (20) '2.0'\n+66EF7 Created OS            00 (0) 'MS-DOS'\n+66EF8 Extract Zip Spec      14 (20) '2.0'\n+66EF9 Extract OS            00 (0) 'MS-DOS'\n+66EFA General Purpose Flag  0000 (0)\n+66EFC Compression Method    0000 (0) 'Stored'\n+66EFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66F02 CRC                   00000000 (0)\n+66F06 Compressed Size       00000000 (0)\n+66F0A Uncompressed Size     00000000 (0)\n+66F0E Filename Length       0025 (37)\n+66F10 Extra Length          0009 (9)\n+66F12 Comment Length        0000 (0)\n+66F14 Disk Start            0000 (0)\n+66F16 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66F18 Ext File Attributes   00000000 (0)\n+66F1C Local Header Offset   0004AE98 (306840)\n+66F20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66F20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66F45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66F47   Length              0005 (5)\n+66F49   Flags               01 (1) 'Modification'\n+66F4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66F4E CENTRAL HEADER #136   02014B50 (33639248)\n+66F52 Created Zip Spec      14 (20) '2.0'\n+66F53 Created OS            00 (0) 'MS-DOS'\n+66F54 Extract Zip Spec      14 (20) '2.0'\n+66F55 Extract OS            00 (0) 'MS-DOS'\n+66F56 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+66F58 Compression Method    0000 (0) 'Stored'\n+66F5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66F5E CRC                   0EC4C090 (247775376)\n+66F62 Compressed Size       000020CB (8395)\n+66F66 Uncompressed Size     000020CB (8395)\n+66F6A Filename Length       0045 (69)\n+66F6C Extra Length          0009 (9)\n+66F6E Comment Length        0000 (0)\n+66F70 Disk Start            0000 (0)\n+66F72 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66F74 Ext File Attributes   00000000 (0)\n+66F78 Local Header Offset   0004AEE4 (306916)\n+66F7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66F7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66FC1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66FC3   Length              0005 (5)\n+66FC5   Flags               01 (1) 'Modification'\n+66FC6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+66FCA CENTRAL HEADER #137   02014B50 (33639248)\n+66FCE Created Zip Spec      14 (20) '2.0'\n+66FCF Created OS            00 (0) 'MS-DOS'\n+66FD0 Extract Zip Spec      14 (20) '2.0'\n+66FD1 Extract OS            00 (0) 'MS-DOS'\n+66FD2 General Purpose Flag  0000 (0)\n+66FD4 Compression Method    0000 (0) 'Stored'\n+66FD6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66FDA CRC                   00000000 (0)\n+66FDE Compressed Size       00000000 (0)\n+66FE2 Uncompressed Size     00000000 (0)\n+66FE6 Filename Length       0026 (38)\n+66FE8 Extra Length          0009 (9)\n+66FEA Comment Length        0000 (0)\n+66FEC Disk Start            0000 (0)\n+66FEE Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+66FF0 Ext File Attributes   00000000 (0)\n+66FF4 Local Header Offset   0004D02B (315435)\n+66FF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66FF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6701E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67020   Length              0005 (5)\n+67022   Flags               01 (1) 'Modification'\n+67023   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67027 CENTRAL HEADER #138   02014B50 (33639248)\n+6702B Created Zip Spec      14 (20) '2.0'\n+6702C Created OS            00 (0) 'MS-DOS'\n+6702D Extract Zip Spec      14 (20) '2.0'\n+6702E Extract OS            00 (0) 'MS-DOS'\n+6702F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67031 Compression Method    0000 (0) 'Stored'\n+67033 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67037 CRC                   0D328151 (221413713)\n+6703B Compressed Size       00001FC8 (8136)\n+6703F Uncompressed Size     00001FC8 (8136)\n+67043 Filename Length       004E (78)\n+67045 Extra Length          0009 (9)\n+67047 Comment Length        0000 (0)\n+67049 Disk Start            0000 (0)\n+6704B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6704D Ext File Attributes   00000000 (0)\n+67051 Local Header Offset   0004D078 (315512)\n+67055 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67055: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+670A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+670A5   Length              0005 (5)\n+670A7   Flags               01 (1) 'Modification'\n+670A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+670AC CENTRAL HEADER #139   02014B50 (33639248)\n+670B0 Created Zip Spec      14 (20) '2.0'\n+670B1 Created OS            00 (0) 'MS-DOS'\n+670B2 Extract Zip Spec      14 (20) '2.0'\n+670B3 Extract OS            00 (0) 'MS-DOS'\n+670B4 General Purpose Flag  0000 (0)\n+670B6 Compression Method    0000 (0) 'Stored'\n+670B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+670BC CRC                   00000000 (0)\n+670C0 Compressed Size       00000000 (0)\n+670C4 Uncompressed Size     00000000 (0)\n+670C8 Filename Length       001A (26)\n+670CA Extra Length          0009 (9)\n+670CC Comment Length        0000 (0)\n+670CE Disk Start            0000 (0)\n+670D0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+670D2 Ext File Attributes   00000000 (0)\n+670D6 Local Header Offset   0004F0C5 (323781)\n+670DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x670DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+670F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+670F6   Length              0005 (5)\n+670F8   Flags               01 (1) 'Modification'\n+670F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+670FD CENTRAL HEADER #140   02014B50 (33639248)\n+67101 Created Zip Spec      14 (20) '2.0'\n+67102 Created OS            00 (0) 'MS-DOS'\n+67103 Extract Zip Spec      14 (20) '2.0'\n+67104 Extract OS            00 (0) 'MS-DOS'\n+67105 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67107 Compression Method    0000 (0) 'Stored'\n+67109 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6710D CRC                   918F8FDE (2442104798)\n+67111 Compressed Size       00000D39 (3385)\n+67115 Uncompressed Size     00000D39 (3385)\n+67119 Filename Length       002C (44)\n+6711B Extra Length          0009 (9)\n+6711D Comment Length        0000 (0)\n+6711F Disk Start            0000 (0)\n+67121 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67123 Ext File Attributes   00000000 (0)\n+67127 Local Header Offset   0004F106 (323846)\n+6712B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6712B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67157 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67159   Length              0005 (5)\n+6715B   Flags               01 (1) 'Modification'\n+6715C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67160 CENTRAL HEADER #141   02014B50 (33639248)\n+67164 Created Zip Spec      14 (20) '2.0'\n+67165 Created OS            00 (0) 'MS-DOS'\n+67166 Extract Zip Spec      14 (20) '2.0'\n+67167 Extract OS            00 (0) 'MS-DOS'\n+67168 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6716A Compression Method    0000 (0) 'Stored'\n+6716C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67170 CRC                   0D442AC7 (222571207)\n+67174 Compressed Size       00000DA9 (3497)\n+67178 Uncompressed Size     00000DA9 (3497)\n+6717C Filename Length       0029 (41)\n+6717E Extra Length          0009 (9)\n+67180 Comment Length        0000 (0)\n+67182 Disk Start            0000 (0)\n+67184 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67186 Ext File Attributes   00000000 (0)\n+6718A Local Header Offset   0004FEA2 (327330)\n+6718E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6718E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+671B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+671B9   Length              0005 (5)\n+671BB   Flags               01 (1) 'Modification'\n+671BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+671C0 CENTRAL HEADER #142   02014B50 (33639248)\n+671C4 Created Zip Spec      14 (20) '2.0'\n+671C5 Created OS            00 (0) 'MS-DOS'\n+671C6 Extract Zip Spec      14 (20) '2.0'\n+671C7 Extract OS            00 (0) 'MS-DOS'\n+671C8 General Purpose Flag  0000 (0)\n+671CA Compression Method    0000 (0) 'Stored'\n+671CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+671D0 CRC                   00000000 (0)\n+671D4 Compressed Size       00000000 (0)\n+671D8 Uncompressed Size     00000000 (0)\n+671DC Filename Length       0021 (33)\n+671DE Extra Length          0009 (9)\n+671E0 Comment Length        0000 (0)\n+671E2 Disk Start            0000 (0)\n+671E4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+671E6 Ext File Attributes   00000000 (0)\n+671EA Local Header Offset   00050CAB (330923)\n+671EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x671EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6720F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67211   Length              0005 (5)\n+67213   Flags               01 (1) 'Modification'\n+67214   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67218 CENTRAL HEADER #143   02014B50 (33639248)\n+6721C Created Zip Spec      14 (20) '2.0'\n+6721D Created OS            00 (0) 'MS-DOS'\n+6721E Extract Zip Spec      14 (20) '2.0'\n+6721F Extract OS            00 (0) 'MS-DOS'\n+67220 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67222 Compression Method    0000 (0) 'Stored'\n+67224 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67228 CRC                   78074190 (2013741456)\n+6722C Compressed Size       00000945 (2373)\n+67230 Uncompressed Size     00000945 (2373)\n+67234 Filename Length       003D (61)\n+67236 Extra Length          0009 (9)\n+67238 Comment Length        0000 (0)\n+6723A Disk Start            0000 (0)\n+6723C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6723E Ext File Attributes   00000000 (0)\n+67242 Local Header Offset   00050CF3 (330995)\n+67246 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67246: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67283 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67285   Length              0005 (5)\n+67287   Flags               01 (1) 'Modification'\n+67288   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6728C CENTRAL HEADER #144   02014B50 (33639248)\n+67290 Created Zip Spec      14 (20) '2.0'\n+67291 Created OS            00 (0) 'MS-DOS'\n+67292 Extract Zip Spec      14 (20) '2.0'\n+67293 Extract OS            00 (0) 'MS-DOS'\n+67294 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67296 Compression Method    0000 (0) 'Stored'\n+67298 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6729C CRC                   ECC02854 (3972016212)\n+672A0 Compressed Size       0000154C (5452)\n+672A4 Uncompressed Size     0000154C (5452)\n+672A8 Filename Length       0043 (67)\n+672AA Extra Length          0009 (9)\n+672AC Comment Length        0000 (0)\n+672AE Disk Start            0000 (0)\n+672B0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+672B2 Ext File Attributes   00000000 (0)\n+672B6 Local Header Offset   000516AC (333484)\n+672BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x672BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+672FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+672FF   Length              0005 (5)\n+67301   Flags               01 (1) 'Modification'\n+67302   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67306 CENTRAL HEADER #145   02014B50 (33639248)\n+6730A Created Zip Spec      14 (20) '2.0'\n+6730B Created OS            00 (0) 'MS-DOS'\n+6730C Extract Zip Spec      14 (20) '2.0'\n+6730D Extract OS            00 (0) 'MS-DOS'\n+6730E General Purpose Flag  0000 (0)\n+67310 Compression Method    0000 (0) 'Stored'\n+67312 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67316 CRC                   00000000 (0)\n+6731A Compressed Size       00000000 (0)\n+6731E Uncompressed Size     00000000 (0)\n+67322 Filename Length       0026 (38)\n+67324 Extra Length          0009 (9)\n+67326 Comment Length        0000 (0)\n+67328 Disk Start            0000 (0)\n+6732A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6732C Ext File Attributes   00000000 (0)\n+67330 Local Header Offset   00052C72 (339058)\n+67334 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67334: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6735A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6735C   Length              0005 (5)\n+6735E   Flags               01 (1) 'Modification'\n+6735F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67363 CENTRAL HEADER #146   02014B50 (33639248)\n+67367 Created Zip Spec      14 (20) '2.0'\n+67368 Created OS            00 (0) 'MS-DOS'\n+67369 Extract Zip Spec      14 (20) '2.0'\n+6736A Extract OS            00 (0) 'MS-DOS'\n+6736B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6736D Compression Method    0000 (0) 'Stored'\n+6736F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67373 CRC                   166728A8 (375859368)\n+67377 Compressed Size       00001C70 (7280)\n+6737B Uncompressed Size     00001C70 (7280)\n+6737F Filename Length       004B (75)\n+67381 Extra Length          0009 (9)\n+67383 Comment Length        0000 (0)\n+67385 Disk Start            0000 (0)\n+67387 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67389 Ext File Attributes   00000000 (0)\n+6738D Local Header Offset   00052CBF (339135)\n+67391 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67391: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+673DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+673DE   Length              0005 (5)\n+673E0   Flags               01 (1) 'Modification'\n+673E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+673E5 CENTRAL HEADER #147   02014B50 (33639248)\n+673E9 Created Zip Spec      14 (20) '2.0'\n+673EA Created OS            00 (0) 'MS-DOS'\n+673EB Extract Zip Spec      14 (20) '2.0'\n+673EC Extract OS            00 (0) 'MS-DOS'\n+673ED General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+673EF Compression Method    0000 (0) 'Stored'\n+673F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+673F5 CRC                   9A288CEF (2586348783)\n+673F9 Compressed Size       000005D1 (1489)\n+673FD Uncompressed Size     000005D1 (1489)\n+67401 Filename Length       0047 (71)\n+67403 Extra Length          0009 (9)\n+67405 Comment Length        0000 (0)\n+67407 Disk Start            0000 (0)\n+67409 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6740B Ext File Attributes   00000000 (0)\n+6740F Local Header Offset   000549B1 (346545)\n+67413 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67413: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6745A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6745C   Length              0005 (5)\n+6745E   Flags               01 (1) 'Modification'\n+6745F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67463 CENTRAL HEADER #148   02014B50 (33639248)\n+67467 Created Zip Spec      14 (20) '2.0'\n+67468 Created OS            00 (0) 'MS-DOS'\n+67469 Extract Zip Spec      14 (20) '2.0'\n+6746A Extract OS            00 (0) 'MS-DOS'\n+6746B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6746D Compression Method    0000 (0) 'Stored'\n+6746F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67473 CRC                   B054C9F9 (2958346745)\n+67477 Compressed Size       000013B7 (5047)\n+6747B Uncompressed Size     000013B7 (5047)\n+6747F Filename Length       0049 (73)\n+67481 Extra Length          0009 (9)\n+67483 Comment Length        0000 (0)\n+67485 Disk Start            0000 (0)\n+67487 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67489 Ext File Attributes   00000000 (0)\n+6748D Local Header Offset   00055000 (348160)\n+67491 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67491: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+674DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+674DC   Length              0005 (5)\n+674DE   Flags               01 (1) 'Modification'\n+674DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+674E3 CENTRAL HEADER #149   02014B50 (33639248)\n+674E7 Created Zip Spec      14 (20) '2.0'\n+674E8 Created OS            00 (0) 'MS-DOS'\n+674E9 Extract Zip Spec      14 (20) '2.0'\n+674EA Extract OS            00 (0) 'MS-DOS'\n+674EB General Purpose Flag  0000 (0)\n+674ED Compression Method    0000 (0) 'Stored'\n+674EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+674F3 CRC                   00000000 (0)\n+674F7 Compressed Size       00000000 (0)\n+674FB Uncompressed Size     00000000 (0)\n+674FF Filename Length       001A (26)\n+67501 Extra Length          0009 (9)\n+67503 Comment Length        0000 (0)\n+67505 Disk Start            0000 (0)\n+67507 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67509 Ext File Attributes   00000000 (0)\n+6750D Local Header Offset   00056437 (353335)\n+67511 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67511: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6752B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6752D   Length              0005 (5)\n+6752F   Flags               01 (1) 'Modification'\n+67530   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67534 CENTRAL HEADER #150   02014B50 (33639248)\n+67538 Created Zip Spec      14 (20) '2.0'\n+67539 Created OS            00 (0) 'MS-DOS'\n+6753A Extract Zip Spec      14 (20) '2.0'\n+6753B Extract OS            00 (0) 'MS-DOS'\n+6753C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6753E Compression Method    0000 (0) 'Stored'\n+67540 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67544 CRC                   F2EA4571 (4075439473)\n+67548 Compressed Size       00000383 (899)\n+6754C Uncompressed Size     00000383 (899)\n+67550 Filename Length       003B (59)\n+67552 Extra Length          0009 (9)\n+67554 Comment Length        0000 (0)\n+67556 Disk Start            0000 (0)\n+67558 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6755A Ext File Attributes   00000000 (0)\n+6755E Local Header Offset   00056478 (353400)\n+67562 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67562: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6759D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6759F   Length              0005 (5)\n+675A1   Flags               01 (1) 'Modification'\n+675A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+675A6 CENTRAL HEADER #151   02014B50 (33639248)\n+675AA Created Zip Spec      14 (20) '2.0'\n+675AB Created OS            00 (0) 'MS-DOS'\n+675AC Extract Zip Spec      14 (20) '2.0'\n+675AD Extract OS            00 (0) 'MS-DOS'\n+675AE General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+675B0 Compression Method    0000 (0) 'Stored'\n+675B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+675B6 CRC                   DB7483A7 (3681846183)\n+675BA Compressed Size       00000F5B (3931)\n+675BE Uncompressed Size     00000F5B (3931)\n+675C2 Filename Length       002D (45)\n+675C4 Extra Length          0009 (9)\n+675C6 Comment Length        0000 (0)\n+675C8 Disk Start            0000 (0)\n+675CA Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+675CC Ext File Attributes   00000000 (0)\n+675D0 Local Header Offset   0005686D (354413)\n+675D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x675D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67601 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67603   Length              0005 (5)\n+67605   Flags               01 (1) 'Modification'\n+67606   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6760A CENTRAL HEADER #152   02014B50 (33639248)\n+6760E Created Zip Spec      14 (20) '2.0'\n+6760F Created OS            00 (0) 'MS-DOS'\n+67610 Extract Zip Spec      14 (20) '2.0'\n+67611 Extract OS            00 (0) 'MS-DOS'\n+67612 General Purpose Flag  0000 (0)\n+67614 Compression Method    0000 (0) 'Stored'\n+67616 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6761A CRC                   00000000 (0)\n+6761E Compressed Size       00000000 (0)\n+67622 Uncompressed Size     00000000 (0)\n+67626 Filename Length       0014 (20)\n+67628 Extra Length          0009 (9)\n+6762A Comment Length        0000 (0)\n+6762C Disk Start            0000 (0)\n+6762E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67630 Ext File Attributes   00000000 (0)\n+67634 Local Header Offset   0005782C (358444)\n+67638 Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67638: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6764C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6764E   Length              0005 (5)\n+67650   Flags               01 (1) 'Modification'\n+67651   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67655 CENTRAL HEADER #153   02014B50 (33639248)\n+67659 Created Zip Spec      14 (20) '2.0'\n+6765A Created OS            00 (0) 'MS-DOS'\n+6765B Extract Zip Spec      14 (20) '2.0'\n+6765C Extract OS            00 (0) 'MS-DOS'\n+6765D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6765F Compression Method    0000 (0) 'Stored'\n+67661 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67665 CRC                   B365C78C (3009791884)\n+67669 Compressed Size       000000AE (174)\n+6766D Uncompressed Size     000000AE (174)\n+67671 Filename Length       0028 (40)\n+67673 Extra Length          0009 (9)\n+67675 Comment Length        0000 (0)\n+67677 Disk Start            0000 (0)\n+67679 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6767B Ext File Attributes   00000000 (0)\n+6767F Local Header Offset   00057867 (358503)\n+67683 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67683: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+676AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+676AD   Length              0005 (5)\n+676AF   Flags               01 (1) 'Modification'\n+676B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+676B4 CENTRAL HEADER #154   02014B50 (33639248)\n+676B8 Created Zip Spec      14 (20) '2.0'\n+676B9 Created OS            00 (0) 'MS-DOS'\n+676BA Extract Zip Spec      14 (20) '2.0'\n+676BB Extract OS            00 (0) 'MS-DOS'\n+676BC General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+676BE Compression Method    0000 (0) 'Stored'\n+676C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+676C4 CRC                   335AE0A4 (861593764)\n+676C8 Compressed Size       000001DF (479)\n+676CC Uncompressed Size     000001DF (479)\n+676D0 Filename Length       002F (47)\n+676D2 Extra Length          0009 (9)\n+676D4 Comment Length        0000 (0)\n+676D6 Disk Start            0000 (0)\n+676D8 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+676DA Ext File Attributes   00000000 (0)\n+676DE Local Header Offset   00057974 (358772)\n+676E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x676E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67711 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67713   Length              0005 (5)\n+67715   Flags               01 (1) 'Modification'\n+67716   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6771A CENTRAL HEADER #155   02014B50 (33639248)\n+6771E Created Zip Spec      14 (20) '2.0'\n+6771F Created OS            00 (0) 'MS-DOS'\n+67720 Extract Zip Spec      14 (20) '2.0'\n+67721 Extract OS            00 (0) 'MS-DOS'\n+67722 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67724 Compression Method    0000 (0) 'Stored'\n+67726 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6772A CRC                   686AC919 (1751828761)\n+6772E Compressed Size       000001D7 (471)\n+67732 Uncompressed Size     000001D7 (471)\n+67736 Filename Length       002D (45)\n+67738 Extra Length          0009 (9)\n+6773A Comment Length        0000 (0)\n+6773C Disk Start            0000 (0)\n+6773E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67740 Ext File Attributes   00000000 (0)\n+67744 Local Header Offset   00057BB9 (359353)\n+67748 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67748: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67775 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67777   Length              0005 (5)\n+67779   Flags               01 (1) 'Modification'\n+6777A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6777E CENTRAL HEADER #156   02014B50 (33639248)\n+67782 Created Zip Spec      14 (20) '2.0'\n+67783 Created OS            00 (0) 'MS-DOS'\n+67784 Extract Zip Spec      14 (20) '2.0'\n+67785 Extract OS            00 (0) 'MS-DOS'\n+67786 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67788 Compression Method    0000 (0) 'Stored'\n+6778A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6778E CRC                   40AFB79D (1085257629)\n+67792 Compressed Size       000002AC (684)\n+67796 Uncompressed Size     000002AC (684)\n+6779A Filename Length       0049 (73)\n+6779C Extra Length          0009 (9)\n+6779E Comment Length        0000 (0)\n+677A0 Disk Start            0000 (0)\n+677A2 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+677A4 Ext File Attributes   00000000 (0)\n+677A8 Local Header Offset   00057DF4 (359924)\n+677AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x677AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+677F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+677F7   Length              0005 (5)\n+677F9   Flags               01 (1) 'Modification'\n+677FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+677FE CENTRAL HEADER #157   02014B50 (33639248)\n+67802 Created Zip Spec      14 (20) '2.0'\n+67803 Created OS            00 (0) 'MS-DOS'\n+67804 Extract Zip Spec      14 (20) '2.0'\n+67805 Extract OS            00 (0) 'MS-DOS'\n+67806 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67808 Compression Method    0000 (0) 'Stored'\n+6780A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6780E CRC                   EC08D15D (3960000861)\n+67812 Compressed Size       00000128 (296)\n+67816 Uncompressed Size     00000128 (296)\n+6781A Filename Length       0042 (66)\n+6781C Extra Length          0009 (9)\n+6781E Comment Length        0000 (0)\n+67820 Disk Start            0000 (0)\n+67822 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67824 Ext File Attributes   00000000 (0)\n+67828 Local Header Offset   00058120 (360736)\n+6782C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6782C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6786E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67870   Length              0005 (5)\n+67872   Flags               01 (1) 'Modification'\n+67873   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67877 CENTRAL HEADER #158   02014B50 (33639248)\n+6787B Created Zip Spec      14 (20) '2.0'\n+6787C Created OS            00 (0) 'MS-DOS'\n+6787D Extract Zip Spec      14 (20) '2.0'\n+6787E Extract OS            00 (0) 'MS-DOS'\n+6787F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67881 Compression Method    0000 (0) 'Stored'\n+67883 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67887 CRC                   04F7DEEE (83353326)\n+6788B Compressed Size       000013F0 (5104)\n+6788F Uncompressed Size     000013F0 (5104)\n+67893 Filename Length       002B (43)\n+67895 Extra Length          0009 (9)\n+67897 Comment Length        0000 (0)\n+67899 Disk Start            0000 (0)\n+6789B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6789D Ext File Attributes   00000000 (0)\n+678A1 Local Header Offset   000582C1 (361153)\n+678A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x678A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+678D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+678D2   Length              0005 (5)\n+678D4   Flags               01 (1) 'Modification'\n+678D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+678D9 CENTRAL HEADER #159   02014B50 (33639248)\n+678DD Created Zip Spec      14 (20) '2.0'\n+678DE Created OS            00 (0) 'MS-DOS'\n+678DF Extract Zip Spec      14 (20) '2.0'\n+678E0 Extract OS            00 (0) 'MS-DOS'\n+678E1 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+678E3 Compression Method    0000 (0) 'Stored'\n+678E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+678E9 CRC                   81F8F5BE (2180576702)\n+678ED Compressed Size       00000100 (256)\n+678F1 Uncompressed Size     00000100 (256)\n+678F5 Filename Length       0029 (41)\n+678F7 Extra Length          0009 (9)\n+678F9 Comment Length        0000 (0)\n+678FB Disk Start            0000 (0)\n+678FD Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+678FF Ext File Attributes   00000000 (0)\n+67903 Local Header Offset   00059713 (366355)\n+67907 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67907: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67930 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67932   Length              0005 (5)\n+67934   Flags               01 (1) 'Modification'\n+67935   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67939 CENTRAL HEADER #160   02014B50 (33639248)\n+6793D Created Zip Spec      14 (20) '2.0'\n+6793E Created OS            00 (0) 'MS-DOS'\n+6793F Extract Zip Spec      14 (20) '2.0'\n+67940 Extract OS            00 (0) 'MS-DOS'\n+67941 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67943 Compression Method    0000 (0) 'Stored'\n+67945 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67949 CRC                   444DEB39 (1145957177)\n+6794D Compressed Size       00000235 (565)\n+67951 Uncompressed Size     00000235 (565)\n+67955 Filename Length       002D (45)\n+67957 Extra Length          0009 (9)\n+67959 Comment Length        0000 (0)\n+6795B Disk Start            0000 (0)\n+6795D Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6795F Ext File Attributes   00000000 (0)\n+67963 Local Header Offset   00059873 (366707)\n+67967 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67967: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67994 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67996   Length              0005 (5)\n+67998   Flags               01 (1) 'Modification'\n+67999   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6799D CENTRAL HEADER #161   02014B50 (33639248)\n+679A1 Created Zip Spec      14 (20) '2.0'\n+679A2 Created OS            00 (0) 'MS-DOS'\n+679A3 Extract Zip Spec      14 (20) '2.0'\n+679A4 Extract OS            00 (0) 'MS-DOS'\n+679A5 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+679A7 Compression Method    0000 (0) 'Stored'\n+679A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+679AD CRC                   4D79ACBE (1299819710)\n+679B1 Compressed Size       00000110 (272)\n+679B5 Uncompressed Size     00000110 (272)\n+679B9 Filename Length       0031 (49)\n+679BB Extra Length          0009 (9)\n+679BD Comment Length        0000 (0)\n+679BF Disk Start            0000 (0)\n+679C1 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+679C3 Ext File Attributes   00000000 (0)\n+679C7 Local Header Offset   00059B0C (367372)\n+679CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x679CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+679FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+679FE   Length              0005 (5)\n+67A00   Flags               01 (1) 'Modification'\n+67A01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67A05 CENTRAL HEADER #162   02014B50 (33639248)\n+67A09 Created Zip Spec      14 (20) '2.0'\n+67A0A Created OS            00 (0) 'MS-DOS'\n+67A0B Extract Zip Spec      14 (20) '2.0'\n+67A0C Extract OS            00 (0) 'MS-DOS'\n+67A0D General Purpose Flag  0000 (0)\n+67A0F Compression Method    0000 (0) 'Stored'\n+67A11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67A15 CRC                   00000000 (0)\n+67A19 Compressed Size       00000000 (0)\n+67A1D Uncompressed Size     00000000 (0)\n+67A21 Filename Length       001B (27)\n+67A23 Extra Length          0009 (9)\n+67A25 Comment Length        0000 (0)\n+67A27 Disk Start            0000 (0)\n+67A29 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67A2B Ext File Attributes   00000000 (0)\n+67A2F Local Header Offset   00059C84 (367748)\n+67A33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67A33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67A4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67A50   Length              0005 (5)\n+67A52   Flags               01 (1) 'Modification'\n+67A53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67A57 CENTRAL HEADER #163   02014B50 (33639248)\n+67A5B Created Zip Spec      14 (20) '2.0'\n+67A5C Created OS            00 (0) 'MS-DOS'\n+67A5D Extract Zip Spec      14 (20) '2.0'\n+67A5E Extract OS            00 (0) 'MS-DOS'\n+67A5F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67A61 Compression Method    0000 (0) 'Stored'\n+67A63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67A67 CRC                   2A016775 (704735093)\n+67A6B Compressed Size       00000644 (1604)\n+67A6F Uncompressed Size     00000644 (1604)\n+67A73 Filename Length       003A (58)\n+67A75 Extra Length          0009 (9)\n+67A77 Comment Length        0000 (0)\n+67A79 Disk Start            0000 (0)\n+67A7B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67A7D Ext File Attributes   00000000 (0)\n+67A81 Local Header Offset   00059CC6 (367814)\n+67A85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67A85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67ABF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67AC1   Length              0005 (5)\n+67AC3   Flags               01 (1) 'Modification'\n+67AC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67AC8 CENTRAL HEADER #164   02014B50 (33639248)\n+67ACC Created Zip Spec      14 (20) '2.0'\n+67ACD Created OS            00 (0) 'MS-DOS'\n+67ACE Extract Zip Spec      14 (20) '2.0'\n+67ACF Extract OS            00 (0) 'MS-DOS'\n+67AD0 General Purpose Flag  0000 (0)\n+67AD2 Compression Method    0000 (0) 'Stored'\n+67AD4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67AD8 CRC                   00000000 (0)\n+67ADC Compressed Size       00000000 (0)\n+67AE0 Uncompressed Size     00000000 (0)\n+67AE4 Filename Length       0016 (22)\n+67AE6 Extra Length          0009 (9)\n+67AE8 Comment Length        0000 (0)\n+67AEA Disk Start            0000 (0)\n+67AEC Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67AEE Ext File Attributes   00000000 (0)\n+67AF2 Local Header Offset   0005A37B (369531)\n+67AF6 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67AF6: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67B0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67B0E   Length              0005 (5)\n+67B10   Flags               01 (1) 'Modification'\n+67B11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67B15 CENTRAL HEADER #165   02014B50 (33639248)\n+67B19 Created Zip Spec      14 (20) '2.0'\n+67B1A Created OS            00 (0) 'MS-DOS'\n+67B1B Extract Zip Spec      14 (20) '2.0'\n+67B1C Extract OS            00 (0) 'MS-DOS'\n+67B1D General Purpose Flag  0000 (0)\n+67B1F Compression Method    0000 (0) 'Stored'\n+67B21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67B25 CRC                   00000000 (0)\n+67B29 Compressed Size       00000000 (0)\n+67B2D Uncompressed Size     00000000 (0)\n+67B31 Filename Length       0020 (32)\n+67B33 Extra Length          0009 (9)\n+67B35 Comment Length        0000 (0)\n+67B37 Disk Start            0000 (0)\n+67B39 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67B3B Ext File Attributes   00000000 (0)\n+67B3F Local Header Offset   0005A3B8 (369592)\n+67B43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67B43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67B63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67B65   Length              0005 (5)\n+67B67   Flags               01 (1) 'Modification'\n+67B68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67B6C CENTRAL HEADER #166   02014B50 (33639248)\n+67B70 Created Zip Spec      14 (20) '2.0'\n+67B71 Created OS            00 (0) 'MS-DOS'\n+67B72 Extract Zip Spec      14 (20) '2.0'\n+67B73 Extract OS            00 (0) 'MS-DOS'\n+67B74 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67B76 Compression Method    0000 (0) 'Stored'\n+67B78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67B7C CRC                   200C4CF6 (537677046)\n+67B80 Compressed Size       00000D92 (3474)\n+67B84 Uncompressed Size     00000D92 (3474)\n+67B88 Filename Length       003A (58)\n+67B8A Extra Length          0009 (9)\n+67B8C Comment Length        0000 (0)\n+67B8E Disk Start            0000 (0)\n+67B90 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67B92 Ext File Attributes   00000000 (0)\n+67B96 Local Header Offset   0005A3FF (369663)\n+67B9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67B9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67BD4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67BD6   Length              0005 (5)\n+67BD8   Flags               01 (1) 'Modification'\n+67BD9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67BDD CENTRAL HEADER #167   02014B50 (33639248)\n+67BE1 Created Zip Spec      14 (20) '2.0'\n+67BE2 Created OS            00 (0) 'MS-DOS'\n+67BE3 Extract Zip Spec      14 (20) '2.0'\n+67BE4 Extract OS            00 (0) 'MS-DOS'\n+67BE5 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67BE7 Compression Method    0000 (0) 'Stored'\n+67BE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67BED CRC                   BE79378C (3195615116)\n+67BF1 Compressed Size       00000B8D (2957)\n+67BF5 Uncompressed Size     00000B8D (2957)\n+67BF9 Filename Length       0038 (56)\n+67BFB Extra Length          0009 (9)\n+67BFD Comment Length        0000 (0)\n+67BFF Disk Start            0000 (0)\n+67C01 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67C03 Ext File Attributes   00000000 (0)\n+67C07 Local Header Offset   0005B202 (373250)\n+67C0B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67C0B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67C43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67C45   Length              0005 (5)\n+67C47   Flags               01 (1) 'Modification'\n+67C48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67C4C CENTRAL HEADER #168   02014B50 (33639248)\n+67C50 Created Zip Spec      14 (20) '2.0'\n+67C51 Created OS            00 (0) 'MS-DOS'\n+67C52 Extract Zip Spec      14 (20) '2.0'\n+67C53 Extract OS            00 (0) 'MS-DOS'\n+67C54 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67C56 Compression Method    0000 (0) 'Stored'\n+67C58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67C5C CRC                   44308AEF (1144031983)\n+67C60 Compressed Size       00000EC2 (3778)\n+67C64 Uncompressed Size     00000EC2 (3778)\n+67C68 Filename Length       0036 (54)\n+67C6A Extra Length          0009 (9)\n+67C6C Comment Length        0000 (0)\n+67C6E Disk Start            0000 (0)\n+67C70 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67C72 Ext File Attributes   00000000 (0)\n+67C76 Local Header Offset   0005BDFE (376318)\n+67C7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67C7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67CB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67CB2   Length              0005 (5)\n+67CB4   Flags               01 (1) 'Modification'\n+67CB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67CB9 CENTRAL HEADER #169   02014B50 (33639248)\n+67CBD Created Zip Spec      14 (20) '2.0'\n+67CBE Created OS            00 (0) 'MS-DOS'\n+67CBF Extract Zip Spec      14 (20) '2.0'\n+67CC0 Extract OS            00 (0) 'MS-DOS'\n+67CC1 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67CC3 Compression Method    0000 (0) 'Stored'\n+67CC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67CC9 CRC                   45818429 (1166115881)\n+67CCD Compressed Size       00001930 (6448)\n+67CD1 Uncompressed Size     00001930 (6448)\n+67CD5 Filename Length       0040 (64)\n+67CD7 Extra Length          0009 (9)\n+67CD9 Comment Length        0000 (0)\n+67CDB Disk Start            0000 (0)\n+67CDD Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67CDF Ext File Attributes   00000000 (0)\n+67CE3 Local Header Offset   0005CD2D (380205)\n+67CE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67CE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67D27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67D29   Length              0005 (5)\n+67D2B   Flags               01 (1) 'Modification'\n+67D2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67D30 CENTRAL HEADER #170   02014B50 (33639248)\n+67D34 Created Zip Spec      14 (20) '2.0'\n+67D35 Created OS            00 (0) 'MS-DOS'\n+67D36 Extract Zip Spec      14 (20) '2.0'\n+67D37 Extract OS            00 (0) 'MS-DOS'\n+67D38 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67D3A Compression Method    0000 (0) 'Stored'\n+67D3C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67D40 CRC                   1EE41C12 (518265874)\n+67D44 Compressed Size       00000756 (1878)\n+67D48 Uncompressed Size     00000756 (1878)\n+67D4C Filename Length       004F (79)\n+67D4E Extra Length          0009 (9)\n+67D50 Comment Length        0000 (0)\n+67D52 Disk Start            0000 (0)\n+67D54 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67D56 Ext File Attributes   00000000 (0)\n+67D5A Local Header Offset   0005E6D4 (386772)\n+67D5E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67D5E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67DAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67DAF   Length              0005 (5)\n+67DB1   Flags               01 (1) 'Modification'\n+67DB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67DB6 CENTRAL HEADER #171   02014B50 (33639248)\n+67DBA Created Zip Spec      14 (20) '2.0'\n+67DBB Created OS            00 (0) 'MS-DOS'\n+67DBC Extract Zip Spec      14 (20) '2.0'\n+67DBD Extract OS            00 (0) 'MS-DOS'\n+67DBE General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67DC0 Compression Method    0000 (0) 'Stored'\n+67DC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67DC6 CRC                   C9942CBF (3381931199)\n+67DCA Compressed Size       00000C6F (3183)\n+67DCE Uncompressed Size     00000C6F (3183)\n+67DD2 Filename Length       004E (78)\n+67DD4 Extra Length          0009 (9)\n+67DD6 Comment Length        0000 (0)\n+67DD8 Disk Start            0000 (0)\n+67DDA Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67DDC Ext File Attributes   00000000 (0)\n+67DE0 Local Header Offset   0005EEB0 (388784)\n+67DE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67DE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67E32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67E34   Length              0005 (5)\n+67E36   Flags               01 (1) 'Modification'\n+67E37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67E3B CENTRAL HEADER #172   02014B50 (33639248)\n+67E3F Created Zip Spec      14 (20) '2.0'\n+67E40 Created OS            00 (0) 'MS-DOS'\n+67E41 Extract Zip Spec      14 (20) '2.0'\n+67E42 Extract OS            00 (0) 'MS-DOS'\n+67E43 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67E45 Compression Method    0000 (0) 'Stored'\n+67E47 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67E4B CRC                   45171DCC (1159142860)\n+67E4F Compressed Size       00000E47 (3655)\n+67E53 Uncompressed Size     00000E47 (3655)\n+67E57 Filename Length       0038 (56)\n+67E59 Extra Length          0009 (9)\n+67E5B Comment Length        0000 (0)\n+67E5D Disk Start            0000 (0)\n+67E5F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67E61 Ext File Attributes   00000000 (0)\n+67E65 Local Header Offset   0005FBA4 (392100)\n+67E69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67E69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67EA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67EA3   Length              0005 (5)\n+67EA5   Flags               01 (1) 'Modification'\n+67EA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67EAA CENTRAL HEADER #173   02014B50 (33639248)\n+67EAE Created Zip Spec      14 (20) '2.0'\n+67EAF Created OS            00 (0) 'MS-DOS'\n+67EB0 Extract Zip Spec      14 (20) '2.0'\n+67EB1 Extract OS            00 (0) 'MS-DOS'\n+67EB2 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67EB4 Compression Method    0000 (0) 'Stored'\n+67EB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67EBA CRC                   A7ECACA5 (2817305765)\n+67EBE Compressed Size       0000205E (8286)\n+67EC2 Uncompressed Size     0000205E (8286)\n+67EC6 Filename Length       0045 (69)\n+67EC8 Extra Length          0009 (9)\n+67ECA Comment Length        0000 (0)\n+67ECC Disk Start            0000 (0)\n+67ECE Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67ED0 Ext File Attributes   00000000 (0)\n+67ED4 Local Header Offset   00060A5A (395866)\n+67ED8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67ED8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67F1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67F1F   Length              0005 (5)\n+67F21   Flags               01 (1) 'Modification'\n+67F22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67F26 CENTRAL HEADER #174   02014B50 (33639248)\n+67F2A Created Zip Spec      14 (20) '2.0'\n+67F2B Created OS            00 (0) 'MS-DOS'\n+67F2C Extract Zip Spec      14 (20) '2.0'\n+67F2D Extract OS            00 (0) 'MS-DOS'\n+67F2E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+67F30 Compression Method    0000 (0) 'Stored'\n+67F32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67F36 CRC                   0A993007 (177811463)\n+67F3A Compressed Size       00000363 (867)\n+67F3E Uncompressed Size     00000363 (867)\n+67F42 Filename Length       0038 (56)\n+67F44 Extra Length          0009 (9)\n+67F46 Comment Length        0000 (0)\n+67F48 Disk Start            0000 (0)\n+67F4A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67F4C Ext File Attributes   00000000 (0)\n+67F50 Local Header Offset   00062B34 (404276)\n+67F54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67F54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67F8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67F8E   Length              0005 (5)\n+67F90   Flags               01 (1) 'Modification'\n+67F91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67F95 CENTRAL HEADER #175   02014B50 (33639248)\n+67F99 Created Zip Spec      14 (20) '2.0'\n+67F9A Created OS            00 (0) 'MS-DOS'\n+67F9B Extract Zip Spec      14 (20) '2.0'\n+67F9C Extract OS            00 (0) 'MS-DOS'\n+67F9D General Purpose Flag  0000 (0)\n+67F9F Compression Method    0000 (0) 'Stored'\n+67FA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67FA5 CRC                   00000000 (0)\n+67FA9 Compressed Size       00000000 (0)\n+67FAD Uncompressed Size     00000000 (0)\n+67FB1 Filename Length       001D (29)\n+67FB3 Extra Length          0009 (9)\n+67FB5 Comment Length        0000 (0)\n+67FB7 Disk Start            0000 (0)\n+67FB9 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+67FBB Ext File Attributes   00000000 (0)\n+67FBF Local Header Offset   00062F06 (405254)\n+67FC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67FC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67FE0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67FE2   Length              0005 (5)\n+67FE4   Flags               01 (1) 'Modification'\n+67FE5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67FE9 CENTRAL HEADER #176   02014B50 (33639248)\n+67FED Created Zip Spec      14 (20) '2.0'\n+67FEE Created OS            00 (0) 'MS-DOS'\n+67FEF Extract Zip Spec      14 (20) '2.0'\n+67FF0 Extract OS            00 (0) 'MS-DOS'\n+67FF1 General Purpose Flag  0000 (0)\n+67FF3 Compression Method    0000 (0) 'Stored'\n+67FF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67FF9 CRC                   00000000 (0)\n+67FFD Compressed Size       00000000 (0)\n+68001 Uncompressed Size     00000000 (0)\n+68005 Filename Length       0022 (34)\n+68007 Extra Length          0009 (9)\n+68009 Comment Length        0000 (0)\n+6800B Disk Start            0000 (0)\n+6800D Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+6800F Ext File Attributes   00000000 (0)\n+68013 Local Header Offset   00062F4A (405322)\n+68017 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68017: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+68039 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6803B   Length              0005 (5)\n+6803D   Flags               01 (1) 'Modification'\n+6803E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+68042 CENTRAL HEADER #177   02014B50 (33639248)\n+68046 Created Zip Spec      14 (20) '2.0'\n+68047 Created OS            00 (0) 'MS-DOS'\n+68048 Extract Zip Spec      14 (20) '2.0'\n+68049 Extract OS            00 (0) 'MS-DOS'\n+6804A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+6804C Compression Method    0000 (0) 'Stored'\n+6804E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68052 CRC                   9122B4D3 (2434970835)\n+68056 Compressed Size       00000612 (1554)\n+6805A Uncompressed Size     00000612 (1554)\n+6805E Filename Length       0043 (67)\n+68060 Extra Length          0009 (9)\n+68062 Comment Length        0000 (0)\n+68064 Disk Start            0000 (0)\n+68066 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+68068 Ext File Attributes   00000000 (0)\n+6806C Local Header Offset   00062F93 (405395)\n+68070 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68070: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+680B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+680B5   Length              0005 (5)\n+680B7   Flags               01 (1) 'Modification'\n+680B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+680BC END CENTRAL HEADER    06054B50 (101010256)\n+680C0 Number of this disk   0000 (0)\n+680C2 Central Dir Disk no   0000 (0)\n+680C4 Entries in this disk  00B1 (177)\n+680C6 Total Entries         00B1 (177)\n+680C8 Size of Central Dir   00004A9D (19101)\n+680CC Offset to Central Dir 0006361F (407071)\n+680D0 Comment Length        0000 (0)\n #\n # Warning Count: 354\n #\n # Done\n"}, {"source1": "dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.class", "source2": "dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -9,10 +9,10 @@\n     public static EnumTest valueOf(final String name) {\n         return Enum.valueOf(EnumTest.class, name);\n     }\n     \n     static {\n         EnumTest.VALUE1 = new EnumTest(\"VALUE1\", 0);\n         EnumTest.VALUE2 = new EnumTest(\"VALUE2\", 1);\n-        EnumTest.$VALUES = new EnumTest[] { EnumTest.VALUE1, EnumTest.VALUE2 };\n+        EnumTest.$VALUES = $values();\n     }\n }\n"}]}, {"source1": "dev/langchain4j/agent/tool/JsonSchemaPropertyTest.class", "source2": "dev/langchain4j/agent/tool/JsonSchemaPropertyTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,274 +1,274 @@\n-  SHA-256 checksum 7df9e10daba1edb8d2c2ed38622068c916880f42d6e66ac86a3709fd8939ac47\n+  SHA-256 checksum a544aa50445ec8b493cf66b40755e9991de6e23ffac5b08f0705f938979d39bc\n   Compiled from \"JsonSchemaPropertyTest.java\"\n class dev.langchain4j.agent.tool.JsonSchemaPropertyTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #68                         // dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n-  super_class: #27                        // java/lang/Object\n+  this_class: #14                         // dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 12, attributes: 3\n Constant pool:\n-    #1 = Methodref          #27.#104      // java/lang/Object.\"<init>\":()V\n-    #2 = Fieldref           #19.#105      // dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-    #3 = Methodref          #68.#106      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-    #4 = String             #107          // string\n-    #5 = Methodref          #19.#108      // dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-    #6 = Methodref          #26.#109      // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-    #7 = Fieldref           #19.#110      // dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-    #8 = String             #111          // integer\n-    #9 = Fieldref           #19.#112      // dev/langchain4j/agent/tool/JsonSchemaProperty.NUMBER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #10 = String             #113          // number\n-   #11 = Fieldref           #19.#114      // dev/langchain4j/agent/tool/JsonSchemaProperty.OBJECT:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #12 = String             #115          // object\n-   #13 = Fieldref           #19.#116      // dev/langchain4j/agent/tool/JsonSchemaProperty.ARRAY:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #14 = String             #117          // array\n-   #15 = Fieldref           #19.#118      // dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #16 = String             #119          // boolean\n-   #17 = Fieldref           #19.#120      // dev/langchain4j/agent/tool/JsonSchemaProperty.NULL:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #18 = String             #121          // null\n-   #19 = Class              #122          // dev/langchain4j/agent/tool/JsonSchemaProperty\n-   #20 = String             #123          // key\n-   #21 = String             #124          // value\n-   #22 = Methodref          #19.#125      // dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n-   #23 = Methodref          #67.#126      // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #24 = String             #127          // abc\n-   #25 = Methodref          #26.#128      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Class              #129          // org/assertj/core/api/ObjectAssert\n-   #27 = Class              #130          // java/lang/Object\n-   #28 = Methodref          #26.#131      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #29 = Methodref          #26.#132      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #30 = Class              #133          // java/lang/String\n-   #31 = String             #134          // value1\n-   #32 = String             #135          // value2\n-   #33 = Methodref          #19.#136      // dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #34 = Methodref          #19.#137      // dev/langchain4j/agent/tool/JsonSchemaProperty.toString:()Ljava/lang/String;\n-   #35 = Methodref          #68.#138      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #36 = String             #139          // JsonSchemaProperty { key = \\\"key\\\", value = value }\n-   #37 = Methodref          #140.#141     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #38 = String             #142          // JsonSchemaProperty { key = \\\"enum\\\", value = [value1, value2] }\n-   #39 = Methodref          #19.#143      // dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-   #40 = String             #144          // type\n-   #41 = Methodref          #19.#145      // dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-   #42 = Methodref          #19.#146      // dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #43 = Methodref          #19.#147      // dev/langchain4j/agent/tool/JsonSchemaProperty.property:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #44 = Methodref          #19.#148      // dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #45 = String             #149          // description\n-   #46 = String             #150          // enum\n-   #47 = Class              #151          // \"[Ljava/lang/String;\"\n-   #48 = Methodref          #152.#153     // java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n-   #49 = Methodref          #68.#154      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #50 = Methodref          #155.#156     // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #51 = Fieldref           #55.#157      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-   #52 = Fieldref           #55.#158      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-   #53 = Methodref          #19.#159      // dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #54 = Class              #160          // \"[Ljava/lang/Object;\"\n-   #55 = Class              #161          // dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n-   #56 = Methodref          #19.#162      // dev/langchain4j/agent/tool/JsonSchemaProperty.enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #57 = Class              #163          // java/lang/RuntimeException\n-   #58 = Methodref          #68.#164      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #59 = InvokeDynamic      #0:#169       // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #60 = Methodref          #170.#171     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #61 = String             #172          // should be enum\n-   #62 = Methodref          #173.#174     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #63 = InvokeDynamic      #1:#169       // #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #64 = Methodref          #19.#176      // dev/langchain4j/agent/tool/JsonSchemaProperty.items:(Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #65 = String             #177          // items\n-   #66 = Methodref          #178.#179     // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #67 = Class              #180          // java/lang/Integer\n-   #68 = Class              #181          // dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n-   #69 = Class              #182          // org/assertj/core/api/WithAssertions\n-   #70 = Utf8               EnumTest\n-   #71 = Utf8               InnerClasses\n-   #72 = Utf8               <init>\n-   #73 = Utf8               ()V\n-   #74 = Utf8               Code\n-   #75 = Utf8               LineNumberTable\n-   #76 = Utf8               LocalVariableTable\n-   #77 = Utf8               this\n-   #78 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n-   #79 = Utf8               test_common\n-   #80 = Utf8               RuntimeVisibleAnnotations\n-   #81 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #82 = Utf8               test_equals_hash\n-   #83 = Utf8               enum1\n-   #84 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #85 = Utf8               enum2\n-   #86 = Utf8               prop1\n-   #87 = Utf8               prop2\n-   #88 = Utf8               prop3\n-   #89 = Utf8               prop4\n-   #90 = Utf8               test_toString\n-   #91 = Utf8               prop\n-   #92 = Utf8               test_type\n-   #93 = Utf8               test_from\n-   #94 = Utf8               test_property\n-   #95 = Utf8               test_description\n-   #96 = Utf8               test_enums\n-   #97 = Utf8               test_items\n-   #98 = Utf8               lambda$test_enums$1\n-   #99 = Utf8               Exceptions\n-  #100 = Class              #183          // java/lang/Throwable\n-  #101 = Utf8               lambda$test_enums$0\n-  #102 = Utf8               SourceFile\n-  #103 = Utf8               JsonSchemaPropertyTest.java\n-  #104 = NameAndType        #72:#73       // \"<init>\":()V\n-  #105 = NameAndType        #184:#84      // STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #106 = NameAndType        #185:#186     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #107 = Utf8               string\n-  #108 = NameAndType        #144:#187     // type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #109 = NameAndType        #188:#189     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #110 = NameAndType        #190:#84      // INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #111 = Utf8               integer\n-  #112 = NameAndType        #191:#84      // NUMBER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #113 = Utf8               number\n-  #114 = NameAndType        #192:#84      // OBJECT:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #115 = Utf8               object\n-  #116 = NameAndType        #193:#84      // ARRAY:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #117 = Utf8               array\n-  #118 = NameAndType        #194:#84      // BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #119 = Utf8               boolean\n-  #120 = NameAndType        #195:#84      // NULL:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #121 = Utf8               null\n-  #122 = Utf8               dev/langchain4j/agent/tool/JsonSchemaProperty\n-  #123 = Utf8               key\n-  #124 = Utf8               value\n-  #125 = NameAndType        #72:#196      // \"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n-  #126 = NameAndType        #197:#198     // valueOf:(I)Ljava/lang/Integer;\n-  #127 = Utf8               abc\n-  #128 = NameAndType        #199:#189     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #129 = Utf8               org/assertj/core/api/ObjectAssert\n-  #130 = Utf8               java/lang/Object\n-  #131 = NameAndType        #200:#189     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #132 = NameAndType        #201:#189     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #133 = Utf8               java/lang/String\n-  #134 = Utf8               value1\n-  #135 = Utf8               value2\n-  #136 = NameAndType        #202:#203     // enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #137 = NameAndType        #204:#205     // toString:()Ljava/lang/String;\n-  #138 = NameAndType        #185:#206     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #139 = Utf8               JsonSchemaProperty { key = \\\"key\\\", value = value }\n-  #140 = Class              #207          // org/assertj/core/api/AbstractStringAssert\n-  #141 = NameAndType        #188:#206     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #142 = Utf8               JsonSchemaProperty { key = \\\"enum\\\", value = [value1, value2] }\n-  #143 = NameAndType        #123:#205     // key:()Ljava/lang/String;\n-  #144 = Utf8               type\n-  #145 = NameAndType        #124:#208     // value:()Ljava/lang/Object;\n-  #146 = NameAndType        #209:#210     // from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #147 = NameAndType        #211:#210     // property:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #148 = NameAndType        #149:#187     // description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #149 = Utf8               description\n-  #150 = Utf8               enum\n-  #151 = Utf8               [Ljava/lang/String;\n-  #152 = Class              #212          // java/util/Arrays\n-  #153 = NameAndType        #213:#214     // equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n-  #154 = NameAndType        #185:#215     // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #155 = Class              #216          // org/assertj/core/api/AbstractBooleanAssert\n-  #156 = NameAndType        #217:#218     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #157 = NameAndType        #219:#220     // VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-  #158 = NameAndType        #221:#220     // VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-  #159 = NameAndType        #202:#222     // enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #160 = Utf8               [Ljava/lang/Object;\n-  #161 = Utf8               dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n-  #162 = NameAndType        #202:#223     // enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #163 = Utf8               java/lang/RuntimeException\n-  #164 = NameAndType        #224:#225     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #165 = Utf8               BootstrapMethods\n-  #166 = MethodHandle       6:#226        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #167 = MethodType         #73           //  ()V\n-  #168 = MethodHandle       6:#227        // REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$0:()V\n-  #169 = NameAndType        #228:#231     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #170 = Class              #232          // org/assertj/core/api/ThrowableTypeAssert\n-  #171 = NameAndType        #233:#234     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #172 = Utf8               should be enum\n-  #173 = Class              #235          // org/assertj/core/api/ThrowableAssertAlternative\n-  #174 = NameAndType        #236:#237     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #175 = MethodHandle       6:#238        // REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$1:()V\n-  #176 = NameAndType        #177:#239     // items:(Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #177 = Utf8               items\n-  #178 = Class              #240          // java/util/Collections\n-  #179 = NameAndType        #241:#242     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #180 = Utf8               java/lang/Integer\n-  #181 = Utf8               dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n-  #182 = Utf8               org/assertj/core/api/WithAssertions\n-  #183 = Utf8               java/lang/Throwable\n-  #184 = Utf8               STRING\n-  #185 = Utf8               assertThat\n-  #186 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #187 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #188 = Utf8               isEqualTo\n-  #189 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #190 = Utf8               INTEGER\n-  #191 = Utf8               NUMBER\n-  #192 = Utf8               OBJECT\n-  #193 = Utf8               ARRAY\n-  #194 = Utf8               BOOLEAN\n-  #195 = Utf8               NULL\n-  #196 = Utf8               (Ljava/lang/String;Ljava/lang/Object;)V\n-  #197 = Utf8               valueOf\n-  #198 = Utf8               (I)Ljava/lang/Integer;\n-  #199 = Utf8               isNotEqualTo\n-  #200 = Utf8               hasSameHashCodeAs\n-  #201 = Utf8               doesNotHaveSameHashCodeAs\n-  #202 = Utf8               enums\n-  #203 = Utf8               ([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #204 = Utf8               toString\n-  #205 = Utf8               ()Ljava/lang/String;\n-  #206 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #207 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #208 = Utf8               ()Ljava/lang/Object;\n-  #209 = Utf8               from\n-  #210 = Utf8               (Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #211 = Utf8               property\n-  #212 = Utf8               java/util/Arrays\n-  #213 = Utf8               equals\n-  #214 = Utf8               ([Ljava/lang/Object;[Ljava/lang/Object;)Z\n-  #215 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #216 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n-  #217 = Utf8               isTrue\n-  #218 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #219 = Utf8               VALUE1\n-  #220 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-  #221 = Utf8               VALUE2\n-  #222 = Utf8               ([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #223 = Utf8               (Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #224 = Utf8               assertThatExceptionOfType\n-  #225 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #226 = Methodref          #243.#244     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #227 = Methodref          #68.#245      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$0:()V\n-  #228 = Utf8               call\n-  #229 = Class              #247          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #230 = Utf8               ThrowingCallable\n-  #231 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #232 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #233 = Utf8               isThrownBy\n-  #234 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #235 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #236 = Utf8               withMessageContaining\n-  #237 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #238 = Methodref          #68.#248      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$1:()V\n-  #239 = Utf8               (Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #240 = Utf8               java/util/Collections\n-  #241 = Utf8               singletonMap\n-  #242 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #243 = Class              #249          // java/lang/invoke/LambdaMetafactory\n-  #244 = NameAndType        #250:#253     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #245 = NameAndType        #101:#73      // lambda$test_enums$0:()V\n-  #246 = Class              #254          // org/assertj/core/api/ThrowableAssert\n-  #247 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #248 = NameAndType        #98:#73       // lambda$test_enums$1:()V\n-  #249 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #250 = Utf8               metafactory\n-  #251 = Class              #256          // java/lang/invoke/MethodHandles$Lookup\n-  #252 = Utf8               Lookup\n-  #253 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #254 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #255 = Class              #257          // java/lang/invoke/MethodHandles\n-  #256 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #257 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Fieldref           #8.#9         // dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+    #8 = Class              #10           // dev/langchain4j/agent/tool/JsonSchemaProperty\n+    #9 = NameAndType        #11:#12       // STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #10 = Utf8               dev/langchain4j/agent/tool/JsonSchemaProperty\n+   #11 = Utf8               STRING\n+   #12 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #13 = Methodref          #14.#15       // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #14 = Class              #16           // dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n+   #15 = NameAndType        #17:#18       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #16 = Utf8               dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n+   #17 = Utf8               assertThat\n+   #18 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #19 = String             #20           // string\n+   #20 = Utf8               string\n+   #21 = Methodref          #8.#22        // dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #22 = NameAndType        #23:#24       // type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #23 = Utf8               type\n+   #24 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #25 = Methodref          #26.#27       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #26 = Class              #28           // org/assertj/core/api/ObjectAssert\n+   #27 = NameAndType        #29:#30       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #28 = Utf8               org/assertj/core/api/ObjectAssert\n+   #29 = Utf8               isEqualTo\n+   #30 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #31 = Fieldref           #8.#32        // dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #32 = NameAndType        #33:#12       // INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #33 = Utf8               INTEGER\n+   #34 = String             #35           // integer\n+   #35 = Utf8               integer\n+   #36 = Fieldref           #8.#37        // dev/langchain4j/agent/tool/JsonSchemaProperty.NUMBER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #37 = NameAndType        #38:#12       // NUMBER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #38 = Utf8               NUMBER\n+   #39 = String             #40           // number\n+   #40 = Utf8               number\n+   #41 = Fieldref           #8.#42        // dev/langchain4j/agent/tool/JsonSchemaProperty.OBJECT:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #42 = NameAndType        #43:#12       // OBJECT:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #43 = Utf8               OBJECT\n+   #44 = String             #45           // object\n+   #45 = Utf8               object\n+   #46 = Fieldref           #8.#47        // dev/langchain4j/agent/tool/JsonSchemaProperty.ARRAY:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #47 = NameAndType        #48:#12       // ARRAY:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #48 = Utf8               ARRAY\n+   #49 = String             #50           // array\n+   #50 = Utf8               array\n+   #51 = Fieldref           #8.#52        // dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #52 = NameAndType        #53:#12       // BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #53 = Utf8               BOOLEAN\n+   #54 = String             #55           // boolean\n+   #55 = Utf8               boolean\n+   #56 = Fieldref           #8.#57        // dev/langchain4j/agent/tool/JsonSchemaProperty.NULL:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #57 = NameAndType        #58:#12       // NULL:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #58 = Utf8               NULL\n+   #59 = String             #60           // null\n+   #60 = Utf8               null\n+   #61 = String             #62           // key\n+   #62 = Utf8               key\n+   #63 = String             #64           // value\n+   #64 = Utf8               value\n+   #65 = Methodref          #8.#66        // dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+   #66 = NameAndType        #5:#67        // \"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+   #67 = Utf8               (Ljava/lang/String;Ljava/lang/Object;)V\n+   #68 = Methodref          #69.#70       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #69 = Class              #71           // java/lang/Integer\n+   #70 = NameAndType        #72:#73       // valueOf:(I)Ljava/lang/Integer;\n+   #71 = Utf8               java/lang/Integer\n+   #72 = Utf8               valueOf\n+   #73 = Utf8               (I)Ljava/lang/Integer;\n+   #74 = String             #75           // abc\n+   #75 = Utf8               abc\n+   #76 = Methodref          #26.#77       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = NameAndType        #78:#30       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #78 = Utf8               isNotEqualTo\n+   #79 = Methodref          #26.#80       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #80 = NameAndType        #81:#30       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #81 = Utf8               hasSameHashCodeAs\n+   #82 = Methodref          #26.#83       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #83 = NameAndType        #84:#30       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #84 = Utf8               doesNotHaveSameHashCodeAs\n+   #85 = Class              #86           // java/lang/String\n+   #86 = Utf8               java/lang/String\n+   #87 = String             #88           // value1\n+   #88 = Utf8               value1\n+   #89 = String             #90           // value2\n+   #90 = Utf8               value2\n+   #91 = Methodref          #8.#92        // dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #92 = NameAndType        #93:#94       // enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #93 = Utf8               enums\n+   #94 = Utf8               ([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #95 = Methodref          #8.#96        // dev/langchain4j/agent/tool/JsonSchemaProperty.toString:()Ljava/lang/String;\n+   #96 = NameAndType        #97:#98       // toString:()Ljava/lang/String;\n+   #97 = Utf8               toString\n+   #98 = Utf8               ()Ljava/lang/String;\n+   #99 = Methodref          #14.#100      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #100 = NameAndType        #17:#101      // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #101 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #102 = String             #103          // JsonSchemaProperty { key = \\\"key\\\", value = value }\n+  #103 = Utf8               JsonSchemaProperty { key = \\\"key\\\", value = value }\n+  #104 = Methodref          #105.#106     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #105 = Class              #107          // org/assertj/core/api/AbstractStringAssert\n+  #106 = NameAndType        #29:#101      // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #107 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #108 = String             #109          // JsonSchemaProperty { key = \\\"enum\\\", value = [value1, value2] }\n+  #109 = Utf8               JsonSchemaProperty { key = \\\"enum\\\", value = [value1, value2] }\n+  #110 = Methodref          #8.#111       // dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+  #111 = NameAndType        #62:#98       // key:()Ljava/lang/String;\n+  #112 = String             #23           // type\n+  #113 = Methodref          #8.#114       // dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+  #114 = NameAndType        #64:#115      // value:()Ljava/lang/Object;\n+  #115 = Utf8               ()Ljava/lang/Object;\n+  #116 = Methodref          #8.#117       // dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #117 = NameAndType        #118:#119     // from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #118 = Utf8               from\n+  #119 = Utf8               (Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #120 = Methodref          #8.#121       // dev/langchain4j/agent/tool/JsonSchemaProperty.property:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #121 = NameAndType        #122:#119     // property:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #122 = Utf8               property\n+  #123 = Methodref          #8.#124       // dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #124 = NameAndType        #125:#24      // description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #125 = Utf8               description\n+  #126 = String             #125          // description\n+  #127 = String             #128          // enum\n+  #128 = Utf8               enum\n+  #129 = Class              #130          // \"[Ljava/lang/String;\"\n+  #130 = Utf8               [Ljava/lang/String;\n+  #131 = Methodref          #132.#133     // java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n+  #132 = Class              #134          // java/util/Arrays\n+  #133 = NameAndType        #135:#136     // equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n+  #134 = Utf8               java/util/Arrays\n+  #135 = Utf8               equals\n+  #136 = Utf8               ([Ljava/lang/Object;[Ljava/lang/Object;)Z\n+  #137 = Methodref          #14.#138      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #138 = NameAndType        #17:#139      // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #139 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #140 = Methodref          #141.#142     // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #141 = Class              #143          // org/assertj/core/api/AbstractBooleanAssert\n+  #142 = NameAndType        #144:#145     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #143 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n+  #144 = Utf8               isTrue\n+  #145 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #146 = Fieldref           #147.#148     // dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+  #147 = Class              #149          // dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n+  #148 = NameAndType        #150:#151     // VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+  #149 = Utf8               dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n+  #150 = Utf8               VALUE1\n+  #151 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+  #152 = Fieldref           #147.#153     // dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+  #153 = NameAndType        #154:#151     // VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+  #154 = Utf8               VALUE2\n+  #155 = Methodref          #8.#156       // dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #156 = NameAndType        #93:#157      // enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #157 = Utf8               ([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #158 = Class              #159          // \"[Ljava/lang/Object;\"\n+  #159 = Utf8               [Ljava/lang/Object;\n+  #160 = Methodref          #8.#161       // dev/langchain4j/agent/tool/JsonSchemaProperty.enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #161 = NameAndType        #93:#162      // enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #162 = Utf8               (Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #163 = Class              #164          // java/lang/RuntimeException\n+  #164 = Utf8               java/lang/RuntimeException\n+  #165 = Methodref          #14.#166      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #166 = NameAndType        #167:#168     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #167 = Utf8               assertThatExceptionOfType\n+  #168 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #169 = InvokeDynamic      #0:#170       // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #170 = NameAndType        #171:#172     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #171 = Utf8               call\n+  #172 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #173 = Methodref          #174.#175     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #174 = Class              #176          // org/assertj/core/api/ThrowableTypeAssert\n+  #175 = NameAndType        #177:#178     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #176 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+  #177 = Utf8               isThrownBy\n+  #178 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #179 = String             #180          // should be enum\n+  #180 = Utf8               should be enum\n+  #181 = Methodref          #182.#183     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #182 = Class              #184          // org/assertj/core/api/ThrowableAssertAlternative\n+  #183 = NameAndType        #185:#186     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #184 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+  #185 = Utf8               withMessageContaining\n+  #186 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #187 = InvokeDynamic      #1:#170       // #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #188 = Methodref          #8.#189       // dev/langchain4j/agent/tool/JsonSchemaProperty.items:(Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #189 = NameAndType        #190:#191     // items:(Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #190 = Utf8               items\n+  #191 = Utf8               (Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #192 = String             #190          // items\n+  #193 = Methodref          #194.#195     // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+  #194 = Class              #196          // java/util/Collections\n+  #195 = NameAndType        #197:#198     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+  #196 = Utf8               java/util/Collections\n+  #197 = Utf8               singletonMap\n+  #198 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+  #199 = Class              #200          // org/assertj/core/api/WithAssertions\n+  #200 = Utf8               org/assertj/core/api/WithAssertions\n+  #201 = Utf8               Code\n+  #202 = Utf8               LineNumberTable\n+  #203 = Utf8               LocalVariableTable\n+  #204 = Utf8               this\n+  #205 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n+  #206 = Utf8               test_common\n+  #207 = Utf8               RuntimeVisibleAnnotations\n+  #208 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #209 = Utf8               test_equals_hash\n+  #210 = Utf8               enum1\n+  #211 = Utf8               enum2\n+  #212 = Utf8               prop1\n+  #213 = Utf8               prop2\n+  #214 = Utf8               prop3\n+  #215 = Utf8               prop4\n+  #216 = Utf8               test_toString\n+  #217 = Utf8               prop\n+  #218 = Utf8               test_type\n+  #219 = Utf8               test_from\n+  #220 = Utf8               test_property\n+  #221 = Utf8               test_description\n+  #222 = Utf8               test_enums\n+  #223 = Utf8               test_items\n+  #224 = Utf8               lambda$test_enums$1\n+  #225 = Utf8               Exceptions\n+  #226 = Class              #227          // java/lang/Throwable\n+  #227 = Utf8               java/lang/Throwable\n+  #228 = Utf8               lambda$test_enums$0\n+  #229 = Utf8               SourceFile\n+  #230 = Utf8               JsonSchemaPropertyTest.java\n+  #231 = Utf8               BootstrapMethods\n+  #232 = MethodHandle       6:#233        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #233 = Methodref          #234.#235     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #234 = Class              #236          // java/lang/invoke/LambdaMetafactory\n+  #235 = NameAndType        #237:#238     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #236 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #237 = Utf8               metafactory\n+  #238 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #239 = MethodType         #6            //  ()V\n+  #240 = MethodHandle       6:#241        // REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$0:()V\n+  #241 = Methodref          #14.#242      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$0:()V\n+  #242 = NameAndType        #228:#6       // lambda$test_enums$0:()V\n+  #243 = MethodHandle       6:#244        // REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$1:()V\n+  #244 = Methodref          #14.#245      // dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$1:()V\n+  #245 = NameAndType        #224:#6       // lambda$test_enums$1:()V\n+  #246 = Utf8               InnerClasses\n+  #247 = Utf8               EnumTest\n+  #248 = Class              #249          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #249 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #250 = Class              #251          // org/assertj/core/api/ThrowableAssert\n+  #251 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #252 = Utf8               ThrowingCallable\n+  #253 = Class              #254          // java/lang/invoke/MethodHandles$Lookup\n+  #254 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #255 = Class              #256          // java/lang/invoke/MethodHandles\n+  #256 = Utf8               java/lang/invoke/MethodHandles\n+  #257 = Utf8               Lookup\n {\n   dev.langchain4j.agent.tool.JsonSchemaPropertyTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -282,61 +282,61 @@\n \n   public void test_common();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: getstatic     #2                  // Field dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-         4: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-         7: ldc           #4                  // String string\n-         9: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        12: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         1: getstatic     #7                  // Field dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         4: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+         7: ldc           #19                 // String string\n+         9: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        12: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         15: pop\n         16: aload_0\n-        17: getstatic     #7                  // Field dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        20: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        23: ldc           #8                  // String integer\n-        25: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        28: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        17: getstatic     #31                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        20: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        23: ldc           #34                 // String integer\n+        25: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        28: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         31: pop\n         32: aload_0\n-        33: getstatic     #9                  // Field dev/langchain4j/agent/tool/JsonSchemaProperty.NUMBER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        36: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        39: ldc           #10                 // String number\n-        41: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        44: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        33: getstatic     #36                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.NUMBER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        36: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        39: ldc           #39                 // String number\n+        41: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        44: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         47: pop\n         48: aload_0\n-        49: getstatic     #11                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.OBJECT:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        52: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        55: ldc           #12                 // String object\n-        57: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        60: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        49: getstatic     #41                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.OBJECT:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        52: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        55: ldc           #44                 // String object\n+        57: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        60: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         63: pop\n         64: aload_0\n-        65: getstatic     #13                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.ARRAY:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        68: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        71: ldc           #14                 // String array\n-        73: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        76: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        65: getstatic     #46                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.ARRAY:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        68: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        71: ldc           #49                 // String array\n+        73: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        76: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         79: pop\n         80: aload_0\n-        81: getstatic     #15                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        84: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        87: ldc           #16                 // String boolean\n-        89: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        92: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        81: getstatic     #51                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        84: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        87: ldc           #54                 // String boolean\n+        89: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        92: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         95: pop\n         96: aload_0\n-        97: getstatic     #17                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.NULL:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-       100: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       103: ldc           #18                 // String null\n-       105: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-       108: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        97: getstatic     #56                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.NULL:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+       100: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       103: ldc           #59                 // String null\n+       105: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+       108: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        111: pop\n        112: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 9\n         line 15: 16\n         line 16: 25\n@@ -351,120 +351,120 @@\n         line 25: 96\n         line 26: 105\n         line 27: 112\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     113     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=7, args_size=1\n-         0: new           #19                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+         0: new           #8                  // class dev/langchain4j/agent/tool/JsonSchemaProperty\n          3: dup\n-         4: ldc           #20                 // String key\n-         6: ldc           #21                 // String value\n-         8: invokespecial #22                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+         4: ldc           #61                 // String key\n+         6: ldc           #63                 // String value\n+         8: invokespecial #65                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n         11: astore_1\n-        12: new           #19                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+        12: new           #8                  // class dev/langchain4j/agent/tool/JsonSchemaProperty\n         15: dup\n-        16: ldc           #20                 // String key\n-        18: ldc           #21                 // String value\n-        20: invokespecial #22                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+        16: ldc           #61                 // String key\n+        18: ldc           #63                 // String value\n+        20: invokespecial #65                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n         23: astore_2\n-        24: new           #19                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+        24: new           #8                  // class dev/langchain4j/agent/tool/JsonSchemaProperty\n         27: dup\n-        28: ldc           #20                 // String key\n+        28: ldc           #61                 // String key\n         30: bipush        12\n-        32: invokestatic  #23                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        35: invokespecial #22                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+        32: invokestatic  #68                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        35: invokespecial #65                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n         38: astore_3\n-        39: new           #19                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+        39: new           #8                  // class dev/langchain4j/agent/tool/JsonSchemaProperty\n         42: dup\n-        43: ldc           #24                 // String abc\n-        45: ldc           #21                 // String value\n-        47: invokespecial #22                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+        43: ldc           #74                 // String abc\n+        45: ldc           #63                 // String value\n+        47: invokespecial #65                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n         50: astore        4\n         52: aload_0\n         53: aload_1\n-        54: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        54: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         57: aconst_null\n-        58: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        58: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         61: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n-        64: new           #27                 // class java/lang/Object\n+        64: new           #2                  // class java/lang/Object\n         67: dup\n         68: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        71: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        71: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         74: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n         77: aload_2\n-        78: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        78: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         81: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n         84: aload_2\n-        85: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        85: invokevirtual #79                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         88: pop\n         89: aload_0\n         90: aload_1\n-        91: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        91: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         94: aload_3\n-        95: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        95: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         98: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n        101: aload_3\n-       102: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       102: invokevirtual #82                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        105: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n        108: aload         4\n-       110: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       110: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        113: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n        116: aload         4\n-       118: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       118: invokevirtual #82                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        121: pop\n        122: aload_0\n        123: aload_3\n-       124: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       124: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        127: aload         4\n-       129: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       129: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        132: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n        135: aload         4\n-       137: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       137: invokevirtual #82                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        140: pop\n        141: iconst_2\n-       142: anewarray     #30                 // class java/lang/String\n+       142: anewarray     #85                 // class java/lang/String\n        145: dup\n        146: iconst_0\n-       147: ldc           #31                 // String value1\n+       147: ldc           #87                 // String value1\n        149: aastore\n        150: dup\n        151: iconst_1\n-       152: ldc           #32                 // String value2\n+       152: ldc           #89                 // String value2\n        154: aastore\n-       155: invokestatic  #33                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+       155: invokestatic  #91                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n        158: astore        5\n        160: iconst_2\n-       161: anewarray     #30                 // class java/lang/String\n+       161: anewarray     #85                 // class java/lang/String\n        164: dup\n        165: iconst_0\n-       166: ldc           #31                 // String value1\n+       166: ldc           #87                 // String value1\n        168: aastore\n        169: dup\n        170: iconst_1\n-       171: ldc           #32                 // String value2\n+       171: ldc           #89                 // String value2\n        173: aastore\n-       174: invokestatic  #33                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+       174: invokestatic  #91                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n        177: astore        6\n        179: aload_0\n        180: aload         5\n-       182: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       182: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        185: aload         6\n-       187: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       187: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        190: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n        193: aload         6\n-       195: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       195: invokevirtual #79                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        198: pop\n        199: return\n       LineNumberTable:\n         line 31: 0\n         line 32: 12\n         line 34: 24\n         line 35: 39\n@@ -493,432 +493,429 @@\n           179      20     6 enum2   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n             0     200     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n            12     188     1 prop1   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n            24     176     2 prop2   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n            39     161     3 prop3   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n            52     148     4 prop4   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_toString();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #19                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+         0: new           #8                  // class dev/langchain4j/agent/tool/JsonSchemaProperty\n          3: dup\n-         4: ldc           #20                 // String key\n-         6: ldc           #21                 // String value\n-         8: invokespecial #22                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n+         4: ldc           #61                 // String key\n+         6: ldc           #63                 // String value\n+         8: invokespecial #65                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.\"<init>\":(Ljava/lang/String;Ljava/lang/Object;)V\n         11: astore_1\n         12: aload_0\n         13: aload_1\n-        14: invokevirtual #34                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.toString:()Ljava/lang/String;\n-        17: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        20: ldc           #36                 // String JsonSchemaProperty { key = \\\"key\\\", value = value }\n-        22: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        14: invokevirtual #95                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.toString:()Ljava/lang/String;\n+        17: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        20: ldc           #102                // String JsonSchemaProperty { key = \\\"key\\\", value = value }\n+        22: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         25: pop\n         26: aload_0\n         27: iconst_2\n-        28: anewarray     #30                 // class java/lang/String\n+        28: anewarray     #85                 // class java/lang/String\n         31: dup\n         32: iconst_0\n-        33: ldc           #31                 // String value1\n+        33: ldc           #87                 // String value1\n         35: aastore\n         36: dup\n         37: iconst_1\n-        38: ldc           #32                 // String value2\n+        38: ldc           #89                 // String value2\n         40: aastore\n-        41: invokestatic  #33                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        44: invokevirtual #34                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.toString:()Ljava/lang/String;\n-        47: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        50: ldc           #38                 // String JsonSchemaProperty { key = \\\"enum\\\", value = [value1, value2] }\n-        52: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        41: invokestatic  #91                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        44: invokevirtual #95                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.toString:()Ljava/lang/String;\n+        47: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        50: ldc           #108                // String JsonSchemaProperty { key = \\\"enum\\\", value = [value1, value2] }\n+        52: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         55: pop\n         56: return\n       LineNumberTable:\n         line 65: 0\n         line 66: 12\n         line 67: 22\n         line 69: 26\n         line 70: 52\n         line 71: 56\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      57     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n            12      45     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_type();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: ldc           #4                  // String string\n-         2: invokestatic  #5                  // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         0: ldc           #19                 // String string\n+         2: invokestatic  #21                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n          5: astore_1\n          6: aload_0\n          7: aload_1\n-         8: invokevirtual #39                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-        11: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        14: ldc           #40                 // String type\n-        16: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         8: invokevirtual #110                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+        11: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        14: ldc           #112                // String type\n+        16: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         19: pop\n         20: aload_0\n         21: aload_1\n-        22: invokevirtual #41                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-        25: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        28: ldc           #4                  // String string\n-        30: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        22: invokevirtual #113                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+        25: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        28: ldc           #19                 // String string\n+        30: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         33: pop\n         34: return\n       LineNumberTable:\n         line 75: 0\n         line 76: 6\n         line 77: 20\n         line 78: 34\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      35     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n             6      29     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_from();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: ldc           #20                 // String key\n-         2: ldc           #21                 // String value\n-         4: invokestatic  #42                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         0: ldc           #61                 // String key\n+         2: ldc           #63                 // String value\n+         4: invokestatic  #116                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: invokevirtual #39                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-        13: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        16: ldc           #20                 // String key\n-        18: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        10: invokevirtual #110                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+        13: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        16: ldc           #61                 // String key\n+        18: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         21: pop\n         22: aload_0\n         23: aload_1\n-        24: invokevirtual #41                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-        27: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        30: ldc           #21                 // String value\n-        32: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        24: invokevirtual #113                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+        27: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        30: ldc           #63                 // String value\n+        32: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         35: pop\n         36: return\n       LineNumberTable:\n         line 82: 0\n         line 83: 8\n         line 84: 22\n         line 85: 36\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      37     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n             8      29     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_property();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #20                 // String key\n-         3: ldc           #21                 // String value\n-         5: invokestatic  #43                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.property:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-         8: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        11: ldc           #20                 // String key\n-        13: ldc           #21                 // String value\n-        15: invokestatic  #42                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        18: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         1: ldc           #61                 // String key\n+         3: ldc           #63                 // String value\n+         5: invokestatic  #120                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.property:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         8: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        11: ldc           #61                 // String key\n+        13: ldc           #63                 // String value\n+        15: invokestatic  #116                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        18: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         21: pop\n         22: return\n       LineNumberTable:\n         line 89: 0\n         line 90: 15\n         line 91: 22\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      23     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_description();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #21                 // String value\n-         3: invokestatic  #44                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-         6: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-         9: ldc           #45                 // String description\n-        11: ldc           #21                 // String value\n-        13: invokestatic  #42                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        16: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         1: ldc           #63                 // String value\n+         3: invokestatic  #123                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         6: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+         9: ldc           #126                // String description\n+        11: ldc           #63                 // String value\n+        13: invokestatic  #116                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        16: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         19: pop\n         20: return\n       LineNumberTable:\n         line 95: 0\n         line 96: 13\n         line 97: 20\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      21     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_enums();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=2, args_size=1\n          0: iconst_2\n-         1: anewarray     #30                 // class java/lang/String\n+         1: anewarray     #85                 // class java/lang/String\n          4: dup\n          5: iconst_0\n-         6: ldc           #31                 // String value1\n+         6: ldc           #87                 // String value1\n          8: aastore\n          9: dup\n         10: iconst_1\n-        11: ldc           #32                 // String value2\n+        11: ldc           #89                 // String value2\n         13: aastore\n-        14: invokestatic  #33                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        14: invokestatic  #91                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n         17: astore_1\n         18: aload_0\n         19: aload_1\n-        20: invokevirtual #39                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-        23: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        26: ldc           #46                 // String enum\n-        28: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        20: invokevirtual #110                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+        23: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        26: ldc           #127                // String enum\n+        28: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         31: pop\n         32: aload_0\n         33: aload_1\n-        34: invokevirtual #41                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-        37: checkcast     #47                 // class \"[Ljava/lang/String;\"\n-        40: checkcast     #47                 // class \"[Ljava/lang/String;\"\n-        43: iconst_2\n-        44: anewarray     #30                 // class java/lang/String\n-        47: dup\n-        48: iconst_0\n-        49: ldc           #31                 // String value1\n-        51: aastore\n-        52: dup\n-        53: iconst_1\n-        54: ldc           #32                 // String value2\n-        56: aastore\n-        57: invokestatic  #48                 // Method java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n-        60: invokevirtual #49                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        63: invokevirtual #50                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-        66: pop\n-        67: iconst_2\n-        68: anewarray     #27                 // class java/lang/Object\n-        71: dup\n-        72: iconst_0\n-        73: getstatic     #51                 // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-        76: aastore\n-        77: dup\n-        78: iconst_1\n-        79: getstatic     #52                 // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-        82: aastore\n-        83: invokestatic  #53                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-        86: astore_1\n-        87: aload_0\n-        88: aload_1\n-        89: invokevirtual #39                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-        92: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        95: ldc           #46                 // String enum\n-        97: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       100: pop\n-       101: aload_0\n-       102: aload_1\n-       103: invokevirtual #41                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-       106: checkcast     #54                 // class \"[Ljava/lang/Object;\"\n-       109: checkcast     #54                 // class \"[Ljava/lang/Object;\"\n-       112: iconst_2\n-       113: anewarray     #55                 // class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n+        34: invokevirtual #113                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+        37: checkcast     #129                // class \"[Ljava/lang/String;\"\n+        40: iconst_2\n+        41: anewarray     #85                 // class java/lang/String\n+        44: dup\n+        45: iconst_0\n+        46: ldc           #87                 // String value1\n+        48: aastore\n+        49: dup\n+        50: iconst_1\n+        51: ldc           #89                 // String value2\n+        53: aastore\n+        54: invokestatic  #131                // Method java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n+        57: invokevirtual #137                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        60: invokevirtual #140                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        63: pop\n+        64: iconst_2\n+        65: anewarray     #2                  // class java/lang/Object\n+        68: dup\n+        69: iconst_0\n+        70: getstatic     #146                // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+        73: aastore\n+        74: dup\n+        75: iconst_1\n+        76: getstatic     #152                // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+        79: aastore\n+        80: invokestatic  #155                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        83: astore_1\n+        84: aload_0\n+        85: aload_1\n+        86: invokevirtual #110                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+        89: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        92: ldc           #127                // String enum\n+        94: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        97: pop\n+        98: aload_0\n+        99: aload_1\n+       100: invokevirtual #113                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+       103: checkcast     #158                // class \"[Ljava/lang/Object;\"\n+       106: iconst_2\n+       107: anewarray     #147                // class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n+       110: dup\n+       111: iconst_0\n+       112: getstatic     #146                // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+       115: aastore\n        116: dup\n-       117: iconst_0\n-       118: getstatic     #51                 // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+       117: iconst_1\n+       118: getstatic     #152                // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n        121: aastore\n-       122: dup\n-       123: iconst_1\n-       124: getstatic     #52                 // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-       127: aastore\n-       128: invokestatic  #48                 // Method java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n-       131: invokevirtual #49                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       134: invokevirtual #50                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-       137: pop\n-       138: ldc           #55                 // class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n-       140: invokestatic  #56                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-       143: astore_1\n-       144: aload_0\n-       145: aload_1\n-       146: invokevirtual #39                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-       149: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       152: ldc           #46                 // String enum\n-       154: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       157: pop\n-       158: aload_0\n-       159: aload_1\n-       160: invokevirtual #41                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-       163: checkcast     #54                 // class \"[Ljava/lang/Object;\"\n-       166: checkcast     #54                 // class \"[Ljava/lang/Object;\"\n-       169: iconst_2\n-       170: anewarray     #55                 // class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n-       173: dup\n-       174: iconst_0\n-       175: getstatic     #51                 // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-       178: aastore\n-       179: dup\n-       180: iconst_1\n-       181: getstatic     #52                 // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n-       184: aastore\n-       185: invokestatic  #48                 // Method java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n-       188: invokevirtual #49                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       191: invokevirtual #50                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-       194: pop\n-       195: aload_0\n-       196: ldc           #57                 // class java/lang/RuntimeException\n-       198: invokevirtual #58                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-       201: invokedynamic #59,  0             // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-       206: invokevirtual #60                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       209: ldc           #61                 // String should be enum\n-       211: invokevirtual #62                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       214: pop\n-       215: aload_0\n-       216: ldc           #57                 // class java/lang/RuntimeException\n-       218: invokevirtual #58                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-       221: invokedynamic #63,  0             // InvokeDynamic #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-       226: invokevirtual #60                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       229: ldc           #61                 // String should be enum\n-       231: invokevirtual #62                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       234: pop\n-       235: return\n+       122: invokestatic  #131                // Method java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n+       125: invokevirtual #137                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       128: invokevirtual #140                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       131: pop\n+       132: ldc           #147                // class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n+       134: invokestatic  #160                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+       137: astore_1\n+       138: aload_0\n+       139: aload_1\n+       140: invokevirtual #110                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+       143: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       146: ldc           #127                // String enum\n+       148: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       151: pop\n+       152: aload_0\n+       153: aload_1\n+       154: invokevirtual #113                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+       157: checkcast     #158                // class \"[Ljava/lang/Object;\"\n+       160: iconst_2\n+       161: anewarray     #147                // class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest\n+       164: dup\n+       165: iconst_0\n+       166: getstatic     #146                // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE1:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+       169: aastore\n+       170: dup\n+       171: iconst_1\n+       172: getstatic     #152                // Field dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest.VALUE2:Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest;\n+       175: aastore\n+       176: invokestatic  #131                // Method java/util/Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z\n+       179: invokevirtual #137                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       182: invokevirtual #140                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       185: pop\n+       186: aload_0\n+       187: ldc           #163                // class java/lang/RuntimeException\n+       189: invokevirtual #165                // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+       192: invokedynamic #169,  0            // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+       197: invokevirtual #173                // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       200: ldc           #179                // String should be enum\n+       202: invokevirtual #181                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       205: pop\n+       206: aload_0\n+       207: ldc           #163                // class java/lang/RuntimeException\n+       209: invokevirtual #165                // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+       212: invokedynamic #187,  0            // InvokeDynamic #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+       217: invokevirtual #173                // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       220: ldc           #179                // String should be enum\n+       222: invokevirtual #181                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       225: pop\n+       226: return\n       LineNumberTable:\n         line 106: 0\n         line 107: 18\n         line 108: 32\n-        line 112: 67\n-        line 113: 87\n-        line 114: 101\n-        line 118: 138\n-        line 119: 144\n-        line 120: 158\n-        line 123: 195\n-        line 124: 206\n-        line 125: 211\n-        line 127: 215\n-        line 128: 226\n-        line 129: 231\n-        line 130: 235\n+        line 112: 64\n+        line 113: 84\n+        line 114: 98\n+        line 118: 132\n+        line 119: 138\n+        line 120: 152\n+        line 123: 186\n+        line 124: 197\n+        line 125: 202\n+        line 127: 206\n+        line 128: 217\n+        line 129: 222\n+        line 130: 226\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-           18      49     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-           87      51     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-          144      51     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-            0     236     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n+           18      46     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+           84      48     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+          138      48     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+            0     227     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   public void test_items();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=1\n-         0: getstatic     #2                  // Field dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-         3: invokestatic  #64                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.items:(Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         0: getstatic     #7                  // Field dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         3: invokestatic  #188                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.items:(Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n          6: astore_1\n          7: aload_0\n          8: aload_1\n-         9: invokevirtual #39                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n-        12: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        15: ldc           #65                 // String items\n-        17: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         9: invokevirtual #110                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.key:()Ljava/lang/String;\n+        12: invokevirtual #99                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        15: ldc           #192                // String items\n+        17: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         20: pop\n         21: aload_0\n         22: aload_1\n-        23: invokevirtual #41                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n-        26: invokevirtual #3                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        29: ldc           #40                 // String type\n-        31: ldc           #4                  // String string\n-        33: invokestatic  #66                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        36: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        23: invokevirtual #113                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.value:()Ljava/lang/Object;\n+        26: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        29: ldc           #112                // String type\n+        31: ldc           #19                 // String string\n+        33: invokestatic  #193                // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        36: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         39: pop\n         40: return\n       LineNumberTable:\n         line 134: 0\n         line 135: 7\n         line 136: 21\n         line 137: 40\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      41     0  this   Ldev/langchain4j/agent/tool/JsonSchemaPropertyTest;\n             7      34     1  prop   Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #208()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_enums$1() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #27                 // class java/lang/Object\n-         2: invokestatic  #56                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+         0: ldc           #2                  // class java/lang/Object\n+         2: invokestatic  #160                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:(Ljava/lang/Class;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n          5: pop\n          6: return\n       LineNumberTable:\n         line 128: 0\n     Exceptions:\n       throws java.lang.Throwable\n \n   private static void lambda$test_enums$0() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=0, args_size=0\n          0: iconst_2\n-         1: anewarray     #27                 // class java/lang/Object\n+         1: anewarray     #2                  // class java/lang/Object\n          4: dup\n          5: iconst_0\n-         6: ldc           #27                 // class java/lang/Object\n+         6: ldc           #2                  // class java/lang/Object\n          8: aastore\n          9: dup\n         10: iconst_1\n-        11: ldc           #67                 // class java/lang/Integer\n+        11: ldc           #69                 // class java/lang/Integer\n         13: aastore\n-        14: invokestatic  #53                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        14: invokestatic  #155                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.enums:([Ljava/lang/Object;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n         17: pop\n         18: return\n       LineNumberTable:\n         line 124: 0\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"JsonSchemaPropertyTest.java\"\n-InnerClasses:\n-  public static final #70= #55 of #68;    // EnumTest=class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest of class dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n-  public static #230= #229 of #246;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #252= #251 of #255; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #166 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #232 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #167 ()V\n-      #168 REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$0:()V\n-      #167 ()V\n-  1: #166 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #239 ()V\n+      #240 REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$0:()V\n+      #239 ()V\n+  1: #232 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #167 ()V\n-      #175 REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$1:()V\n-      #167 ()V\n+      #239 ()V\n+      #243 REF_invokeStatic dev/langchain4j/agent/tool/JsonSchemaPropertyTest.lambda$test_enums$1:()V\n+      #239 ()V\n+InnerClasses:\n+  public static final #247= #147 of #14;  // EnumTest=class dev/langchain4j/agent/tool/JsonSchemaPropertyTest$EnumTest of class dev/langchain4j/agent/tool/JsonSchemaPropertyTest\n+  public static #252= #248 of #250;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #257= #253 of #255; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolExecutionRequestTest.class", "source2": "dev/langchain4j/agent/tool/ToolExecutionRequestTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,114 +1,114 @@\n-  SHA-256 checksum baa19af22cbd4987441d71759b6240b2a45951629221f002e3a247c689d89c3e\n+  SHA-256 checksum 69a0a6929da6c20c09294ebb736e83054702cb67376aa3e97db288a90e557d6c\n   Compiled from \"ToolExecutionRequestTest.java\"\n class dev.langchain4j.agent.tool.ToolExecutionRequestTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #26                         // dev/langchain4j/agent/tool/ToolExecutionRequestTest\n-  super_class: #21                        // java/lang/Object\n+  this_class: #36                         // dev/langchain4j/agent/tool/ToolExecutionRequestTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-   #1 = Methodref          #21.#46        // java/lang/Object.\"<init>\":()V\n-   #2 = Methodref          #47.#48        // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #3 = String             #49            // id\n-   #4 = Methodref          #50.#51        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #5 = String             #52            // name\n-   #6 = Methodref          #50.#53        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #7 = String             #54            // arguments\n-   #8 = Methodref          #50.#55        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #9 = Methodref          #50.#56        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #10 = Methodref          #47.#57        // dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n-  #11 = Methodref          #26.#58        // dev/langchain4j/agent/tool/ToolExecutionRequestTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #12 = Methodref          #59.#60        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #13 = Methodref          #47.#61        // dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-  #14 = Methodref          #47.#62        // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-  #15 = Methodref          #26.#63        // dev/langchain4j/agent/tool/ToolExecutionRequestTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #16 = String             #64            // ToolExecutionRequest { id = \\\"id\\\", name = \\\"name\\\", arguments = \\\"arguments\\\" }\n-  #17 = Methodref          #19.#65        // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #18 = Methodref          #19.#66        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #19 = Class              #67            // org/assertj/core/api/ObjectAssert\n-  #20 = Methodref          #19.#68        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #21 = Class              #69            // java/lang/Object\n-  #22 = Methodref          #19.#70        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #23 = String             #71            // foo\n-  #24 = Methodref          #19.#72        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #25 = Methodref          #59.#73        // org/assertj/core/api/AbstractStringAssert.isNull:()V\n-  #26 = Class              #74            // dev/langchain4j/agent/tool/ToolExecutionRequestTest\n-  #27 = Class              #75            // org/assertj/core/api/WithAssertions\n-  #28 = Utf8               <init>\n-  #29 = Utf8               ()V\n-  #30 = Utf8               Code\n-  #31 = Utf8               LineNumberTable\n-  #32 = Utf8               LocalVariableTable\n-  #33 = Utf8               this\n-  #34 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequestTest;\n-  #35 = Utf8               test_builder\n-  #36 = Utf8               request\n-  #37 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #38 = Utf8               RuntimeVisibleAnnotations\n-  #39 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #40 = Utf8               test_equals_hash\n-  #41 = Utf8               req1\n-  #42 = Utf8               req2\n-  #43 = Utf8               test_allNull\n-  #44 = Utf8               SourceFile\n-  #45 = Utf8               ToolExecutionRequestTest.java\n-  #46 = NameAndType        #28:#29        // \"<init>\":()V\n-  #47 = Class              #76            // dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #48 = NameAndType        #77:#80        // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #49 = Utf8               id\n-  #50 = Class              #81            // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #51 = NameAndType        #49:#82        // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #52 = Utf8               name\n-  #53 = NameAndType        #52:#82        // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #54 = Utf8               arguments\n-  #55 = NameAndType        #54:#82        // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #56 = NameAndType        #83:#84        // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #57 = NameAndType        #49:#85        // id:()Ljava/lang/String;\n-  #58 = NameAndType        #86:#87        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #59 = Class              #88            // org/assertj/core/api/AbstractStringAssert\n-  #60 = NameAndType        #89:#87        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #61 = NameAndType        #52:#85        // name:()Ljava/lang/String;\n-  #62 = NameAndType        #54:#85        // arguments:()Ljava/lang/String;\n-  #63 = NameAndType        #86:#90        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #64 = Utf8               ToolExecutionRequest { id = \\\"id\\\", name = \\\"name\\\", arguments = \\\"arguments\\\" }\n-  #65 = NameAndType        #91:#92        // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #66 = NameAndType        #89:#93        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #67 = Utf8               org/assertj/core/api/ObjectAssert\n-  #68 = NameAndType        #94:#93        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #69 = Utf8               java/lang/Object\n-  #70 = NameAndType        #95:#93        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Methodref          #8.#9          // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #8 = Class              #10            // dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #9 = NameAndType        #11:#12        // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #10 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #11 = Utf8               builder\n+  #12 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #13 = String             #14            // id\n+  #14 = Utf8               id\n+  #15 = Methodref          #16.#17        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #16 = Class              #18            // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+  #17 = NameAndType        #14:#19        // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #18 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+  #19 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #20 = String             #21            // name\n+  #21 = Utf8               name\n+  #22 = Methodref          #16.#23        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #23 = NameAndType        #21:#19        // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #24 = String             #25            // arguments\n+  #25 = Utf8               arguments\n+  #26 = Methodref          #16.#27        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #27 = NameAndType        #25:#19        // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #28 = Methodref          #16.#29        // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #29 = NameAndType        #30:#31        // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #30 = Utf8               build\n+  #31 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #32 = Methodref          #8.#33         // dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n+  #33 = NameAndType        #14:#34        // id:()Ljava/lang/String;\n+  #34 = Utf8               ()Ljava/lang/String;\n+  #35 = Methodref          #36.#37        // dev/langchain4j/agent/tool/ToolExecutionRequestTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #36 = Class              #38            // dev/langchain4j/agent/tool/ToolExecutionRequestTest\n+  #37 = NameAndType        #39:#40        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #38 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequestTest\n+  #39 = Utf8               assertThat\n+  #40 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #41 = Methodref          #42.#43        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #42 = Class              #44            // org/assertj/core/api/AbstractStringAssert\n+  #43 = NameAndType        #45:#40        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #44 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #45 = Utf8               isEqualTo\n+  #46 = Methodref          #8.#47         // dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+  #47 = NameAndType        #21:#34        // name:()Ljava/lang/String;\n+  #48 = Methodref          #8.#49         // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+  #49 = NameAndType        #25:#34        // arguments:()Ljava/lang/String;\n+  #50 = Methodref          #36.#51        // dev/langchain4j/agent/tool/ToolExecutionRequestTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #51 = NameAndType        #39:#52        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #52 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #53 = String             #54            // ToolExecutionRequest { id = \\\"id\\\", name = \\\"name\\\", arguments = \\\"arguments\\\" }\n+  #54 = Utf8               ToolExecutionRequest { id = \\\"id\\\", name = \\\"name\\\", arguments = \\\"arguments\\\" }\n+  #55 = Methodref          #56.#57        // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #56 = Class              #58            // org/assertj/core/api/ObjectAssert\n+  #57 = NameAndType        #59:#60        // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #58 = Utf8               org/assertj/core/api/ObjectAssert\n+  #59 = Utf8               hasToString\n+  #60 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #61 = Methodref          #56.#62        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #62 = NameAndType        #45:#63        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #63 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #64 = Methodref          #56.#65        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #65 = NameAndType        #66:#63        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #66 = Utf8               isNotEqualTo\n+  #67 = Methodref          #56.#68        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #68 = NameAndType        #69:#63        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #69 = Utf8               hasSameHashCodeAs\n+  #70 = String             #71            // foo\n   #71 = Utf8               foo\n-  #72 = NameAndType        #96:#93        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #73 = NameAndType        #97:#29        // isNull:()V\n-  #74 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequestTest\n-  #75 = Utf8               org/assertj/core/api/WithAssertions\n-  #76 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #77 = Utf8               builder\n-  #78 = Utf8               Builder\n-  #79 = Utf8               InnerClasses\n-  #80 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #81 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #82 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #83 = Utf8               build\n-  #84 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #85 = Utf8               ()Ljava/lang/String;\n-  #86 = Utf8               assertThat\n-  #87 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #88 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #89 = Utf8               isEqualTo\n-  #90 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #91 = Utf8               hasToString\n-  #92 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #93 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #94 = Utf8               isNotEqualTo\n-  #95 = Utf8               hasSameHashCodeAs\n-  #96 = Utf8               doesNotHaveSameHashCodeAs\n-  #97 = Utf8               isNull\n+  #72 = Methodref          #56.#73        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #73 = NameAndType        #74:#63        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #74 = Utf8               doesNotHaveSameHashCodeAs\n+  #75 = Methodref          #42.#76        // org/assertj/core/api/AbstractStringAssert.isNull:()V\n+  #76 = NameAndType        #77:#6         // isNull:()V\n+  #77 = Utf8               isNull\n+  #78 = Class              #79            // org/assertj/core/api/WithAssertions\n+  #79 = Utf8               org/assertj/core/api/WithAssertions\n+  #80 = Utf8               Code\n+  #81 = Utf8               LineNumberTable\n+  #82 = Utf8               LocalVariableTable\n+  #83 = Utf8               this\n+  #84 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequestTest;\n+  #85 = Utf8               test_builder\n+  #86 = Utf8               request\n+  #87 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #88 = Utf8               RuntimeVisibleAnnotations\n+  #89 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #90 = Utf8               test_equals_hash\n+  #91 = Utf8               req1\n+  #92 = Utf8               req2\n+  #93 = Utf8               test_allNull\n+  #94 = Utf8               SourceFile\n+  #95 = Utf8               ToolExecutionRequestTest.java\n+  #96 = Utf8               InnerClasses\n+  #97 = Utf8               Builder\n {\n   dev.langchain4j.agent.tool.ToolExecutionRequestTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -121,49 +121,49 @@\n             0       5     0  this   Ldev/langchain4j/agent/tool/ToolExecutionRequestTest;\n \n   public void test_builder();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         3: ldc           #3                  // String id\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         8: ldc           #5                  // String name\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        13: ldc           #7                  // String arguments\n-        15: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        18: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         3: ldc           #13                 // String id\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         8: ldc           #20                 // String name\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        13: ldc           #24                 // String arguments\n+        15: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        18: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         21: astore_1\n         22: aload_0\n         23: aload_1\n-        24: invokevirtual #10                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n-        27: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        30: ldc           #3                  // String id\n-        32: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        24: invokevirtual #32                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n+        27: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        30: ldc           #13                 // String id\n+        32: invokevirtual #41                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         35: pop\n         36: aload_0\n         37: aload_1\n-        38: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-        41: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        44: ldc           #5                  // String name\n-        46: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        38: invokevirtual #46                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+        41: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        44: ldc           #20                 // String name\n+        46: invokevirtual #41                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         49: pop\n         50: aload_0\n         51: aload_1\n-        52: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        55: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        58: ldc           #7                  // String arguments\n-        60: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        52: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        55: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        58: ldc           #24                 // String arguments\n+        60: invokevirtual #41                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         63: pop\n         64: aload_0\n         65: aload_1\n-        66: invokevirtual #15                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        69: ldc           #16                 // String ToolExecutionRequest { id = \\\"id\\\", name = \\\"name\\\", arguments = \\\"arguments\\\" }\n-        71: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        66: invokevirtual #50                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        69: ldc           #53                 // String ToolExecutionRequest { id = \\\"id\\\", name = \\\"name\\\", arguments = \\\"arguments\\\" }\n+        71: invokevirtual #55                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         74: pop\n         75: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 5\n         line 11: 10\n         line 12: 15\n@@ -175,107 +175,107 @@\n         line 20: 71\n         line 22: 75\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      76     0  this   Ldev/langchain4j/agent/tool/ToolExecutionRequestTest;\n            22      54     1 request   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     RuntimeVisibleAnnotations:\n-      0: #39()\n+      0: #89()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         3: ldc           #3                  // String id\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         8: ldc           #5                  // String name\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        13: ldc           #7                  // String arguments\n-        15: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        18: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         3: ldc           #13                 // String id\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         8: ldc           #20                 // String name\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        13: ldc           #24                 // String arguments\n+        15: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        18: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         21: astore_1\n-        22: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        25: ldc           #3                  // String id\n-        27: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        30: ldc           #5                  // String name\n-        32: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        35: ldc           #7                  // String arguments\n-        37: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        40: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        22: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        25: ldc           #13                 // String id\n+        27: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        30: ldc           #20                 // String name\n+        32: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        35: ldc           #24                 // String arguments\n+        37: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        40: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         43: astore_2\n         44: aload_0\n         45: aload_1\n-        46: invokevirtual #15                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        46: invokevirtual #50                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         49: aload_1\n-        50: invokevirtual #18                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        53: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n+        50: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        53: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n         56: aconst_null\n-        57: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        60: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n-        63: new           #21                 // class java/lang/Object\n+        57: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        60: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n+        63: new           #2                  // class java/lang/Object\n         66: dup\n         67: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        70: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        73: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n+        70: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        73: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n         76: aload_2\n-        77: invokevirtual #18                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        80: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n+        77: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        80: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n         83: aload_2\n-        84: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        84: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         87: pop\n         88: aload_0\n-        89: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        92: ldc           #23                 // String foo\n-        94: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        97: ldc           #5                  // String name\n-        99: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       102: ldc           #7                  // String arguments\n-       104: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       107: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-       110: invokevirtual #15                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        89: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        92: ldc           #70                 // String foo\n+        94: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        97: ldc           #20                 // String name\n+        99: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       102: ldc           #24                 // String arguments\n+       104: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       107: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       110: invokevirtual #50                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        113: aload_1\n-       114: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       117: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n+       114: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       117: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n        120: aload_1\n-       121: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       121: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        124: pop\n        125: aload_0\n-       126: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       129: ldc           #3                  // String id\n-       131: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       134: ldc           #23                 // String foo\n-       136: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       139: ldc           #7                  // String arguments\n-       141: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       144: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-       147: invokevirtual #15                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       126: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       129: ldc           #13                 // String id\n+       131: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       134: ldc           #70                 // String foo\n+       136: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       139: ldc           #24                 // String arguments\n+       141: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       144: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       147: invokevirtual #50                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        150: aload_1\n-       151: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       154: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n+       151: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       154: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n        157: aload_1\n-       158: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       158: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        161: pop\n        162: aload_0\n-       163: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       166: ldc           #3                  // String id\n-       168: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       171: ldc           #5                  // String name\n-       173: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       176: ldc           #23                 // String foo\n-       178: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       181: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-       184: invokevirtual #15                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       163: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       166: ldc           #13                 // String id\n+       168: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       171: ldc           #20                 // String name\n+       173: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       176: ldc           #70                 // String foo\n+       178: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       181: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       184: invokevirtual #50                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        187: aload_1\n-       188: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       191: checkcast     #19                 // class org/assertj/core/api/ObjectAssert\n+       188: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       191: checkcast     #56                 // class org/assertj/core/api/ObjectAssert\n        194: aload_1\n-       195: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       195: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        198: pop\n        199: return\n       LineNumberTable:\n         line 26: 0\n         line 27: 5\n         line 28: 10\n         line 29: 15\n@@ -318,46 +318,46 @@\n         line 68: 199\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     200     0  this   Ldev/langchain4j/agent/tool/ToolExecutionRequestTest;\n            22     178     1  req1   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n            44     156     2  req2   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     RuntimeVisibleAnnotations:\n-      0: #39()\n+      0: #89()\n         org.junit.jupiter.api.Test\n \n   public void test_allNull();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         3: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         3: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n          6: astore_1\n          7: aload_0\n          8: aload_1\n-         9: invokevirtual #10                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n-        12: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        15: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+         9: invokevirtual #32                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n+        12: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        15: invokevirtual #75                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         18: aload_0\n         19: aload_1\n-        20: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-        23: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        26: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        20: invokevirtual #46                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+        23: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        26: invokevirtual #75                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         29: aload_0\n         30: aload_1\n-        31: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        34: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        37: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        31: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        34: invokevirtual #35                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        37: invokevirtual #75                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         40: aload_0\n         41: aload_1\n-        42: invokevirtual #15                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        45: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        48: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-        51: invokevirtual #18                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        42: invokevirtual #50                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        45: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        48: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        51: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         54: pop\n         55: return\n       LineNumberTable:\n         line 72: 0\n         line 73: 3\n         line 75: 7\n         line 76: 18\n@@ -366,13 +366,13 @@\n         line 80: 45\n         line 81: 55\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      56     0  this   Ldev/langchain4j/agent/tool/ToolExecutionRequestTest;\n             7      49     1 request   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     RuntimeVisibleAnnotations:\n-      0: #39()\n+      0: #89()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ToolExecutionRequestTest.java\"\n InnerClasses:\n-  public static final #78= #50 of #47;    // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static final #97= #16 of #8;     // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.class", "source2": "dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,123 +1,123 @@\n-  SHA-256 checksum 62cc141a71e2d804049a0a000544aaf9e84a7e04de17c79fafff520882a69c6a\n+  SHA-256 checksum 45f7469e0f44f5057361c3ff00a8f1cad807b14a4d26b6d71db4640b5141d835\n   Compiled from \"ToolExecutionRequestUtilTest.java\"\n class dev.langchain4j.agent.tool.ToolExecutionRequestUtilTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #28                         // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest\n-  super_class: #29                        // java/lang/Object\n+  this_class: #43                         // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-    #1 = Methodref          #29.#45       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #46.#47       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-    #3 = String             #48           // id\n-    #4 = Methodref          #49.#50       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-    #5 = String             #51           // name\n-    #6 = Methodref          #49.#52       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-    #7 = String             #53           // {\\\"foo\\\":\\\"bar\\\", \\\"qux\\\": 12}\n-    #8 = Methodref          #49.#54       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-    #9 = Methodref          #49.#55       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #10 = Methodref          #46.#56       // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-   #11 = Methodref          #57.#58       // dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argumentsAsMap:(Ljava/lang/String;)Ljava/util/Map;\n-   #12 = Methodref          #28.#59       // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #13 = String             #60           // foo\n-   #14 = String             #61           // bar\n-   #15 = Methodref          #16.#62       // org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-   #16 = Class              #63           // org/assertj/core/api/MapAssert\n-   #17 = String             #64           // qux\n-   #18 = Double             12.0d\n-   #20 = Methodref          #65.#66       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #21 = Methodref          #57.#67       // dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n-   #22 = Class              #68           // java/lang/String\n-   #23 = Methodref          #28.#69       // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #24 = Methodref          #70.#71       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #25 = Class              #72           // java/lang/Number\n-   #26 = Methodref          #28.#73       // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #27 = Methodref          #74.#75       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #28 = Class              #76           // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest\n-   #29 = Class              #77           // java/lang/Object\n-   #30 = Class              #78           // org/assertj/core/api/WithAssertions\n-   #31 = Utf8               <init>\n-   #32 = Utf8               ()V\n-   #33 = Utf8               Code\n-   #34 = Utf8               LineNumberTable\n-   #35 = Utf8               LocalVariableTable\n-   #36 = Utf8               this\n-   #37 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequestUtilTest;\n-   #38 = Utf8               test_argument\n-   #39 = Utf8               request\n-   #40 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #41 = Utf8               RuntimeVisibleAnnotations\n-   #42 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #43 = Utf8               SourceFile\n-   #44 = Utf8               ToolExecutionRequestUtilTest.java\n-   #45 = NameAndType        #31:#32       // \"<init>\":()V\n-   #46 = Class              #79           // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #47 = NameAndType        #80:#83       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #48 = Utf8               id\n-   #49 = Class              #84           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-   #50 = NameAndType        #48:#85       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #51 = Utf8               name\n-   #52 = NameAndType        #51:#85       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #53 = Utf8               {\\\"foo\\\":\\\"bar\\\", \\\"qux\\\": 12}\n-   #54 = NameAndType        #86:#85       // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #55 = NameAndType        #87:#88       // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #56 = NameAndType        #86:#89       // arguments:()Ljava/lang/String;\n-   #57 = Class              #90           // dev/langchain4j/agent/tool/ToolExecutionRequestUtil\n-   #58 = NameAndType        #91:#92       // argumentsAsMap:(Ljava/lang/String;)Ljava/util/Map;\n-   #59 = NameAndType        #93:#94       // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #60 = Utf8               foo\n-   #61 = Utf8               bar\n-   #62 = NameAndType        #95:#96       // containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-   #63 = Utf8               org/assertj/core/api/MapAssert\n-   #64 = Utf8               qux\n-   #65 = Class              #97           // java/lang/Double\n-   #66 = NameAndType        #98:#99       // valueOf:(D)Ljava/lang/Double;\n-   #67 = NameAndType        #100:#101     // argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n-   #68 = Utf8               java/lang/String\n-   #69 = NameAndType        #93:#102      // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #70 = Class              #103          // org/assertj/core/api/AbstractStringAssert\n-   #71 = NameAndType        #104:#102     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #72 = Utf8               java/lang/Number\n-   #73 = NameAndType        #93:#105      // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #74 = Class              #106          // org/assertj/core/api/ObjectAssert\n-   #75 = NameAndType        #104:#107     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #76 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest\n-   #77 = Utf8               java/lang/Object\n-   #78 = Utf8               org/assertj/core/api/WithAssertions\n-   #79 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #80 = Utf8               builder\n-   #81 = Utf8               Builder\n-   #82 = Utf8               InnerClasses\n-   #83 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #84 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-   #85 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #86 = Utf8               arguments\n-   #87 = Utf8               build\n-   #88 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #89 = Utf8               ()Ljava/lang/String;\n-   #90 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequestUtil\n-   #91 = Utf8               argumentsAsMap\n-   #92 = Utf8               (Ljava/lang/String;)Ljava/util/Map;\n-   #93 = Utf8               assertThat\n-   #94 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #95 = Utf8               containsEntry\n-   #96 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-   #97 = Utf8               java/lang/Double\n-   #98 = Utf8               valueOf\n-   #99 = Utf8               (D)Ljava/lang/Double;\n-  #100 = Utf8               argument\n-  #101 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n-  #102 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #103 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #104 = Utf8               isEqualTo\n-  #105 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #106 = Utf8               org/assertj/core/api/ObjectAssert\n-  #107 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+    #8 = Class              #10           // dev/langchain4j/agent/tool/ToolExecutionRequest\n+    #9 = NameAndType        #11:#12       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #10 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #11 = Utf8               builder\n+   #12 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #13 = String             #14           // id\n+   #14 = Utf8               id\n+   #15 = Methodref          #16.#17       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #16 = Class              #18           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #17 = NameAndType        #14:#19       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #18 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #19 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #20 = String             #21           // name\n+   #21 = Utf8               name\n+   #22 = Methodref          #16.#23       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #23 = NameAndType        #21:#19       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #24 = String             #25           // {\\\"foo\\\":\\\"bar\\\", \\\"qux\\\": 12}\n+   #25 = Utf8               {\\\"foo\\\":\\\"bar\\\", \\\"qux\\\": 12}\n+   #26 = Methodref          #16.#27       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #27 = NameAndType        #28:#19       // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #28 = Utf8               arguments\n+   #29 = Methodref          #16.#30       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #30 = NameAndType        #31:#32       // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #31 = Utf8               build\n+   #32 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #33 = Methodref          #8.#34        // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+   #34 = NameAndType        #28:#35       // arguments:()Ljava/lang/String;\n+   #35 = Utf8               ()Ljava/lang/String;\n+   #36 = Methodref          #37.#38       // dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argumentsAsMap:(Ljava/lang/String;)Ljava/util/Map;\n+   #37 = Class              #39           // dev/langchain4j/agent/tool/ToolExecutionRequestUtil\n+   #38 = NameAndType        #40:#41       // argumentsAsMap:(Ljava/lang/String;)Ljava/util/Map;\n+   #39 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequestUtil\n+   #40 = Utf8               argumentsAsMap\n+   #41 = Utf8               (Ljava/lang/String;)Ljava/util/Map;\n+   #42 = Methodref          #43.#44       // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #43 = Class              #45           // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest\n+   #44 = NameAndType        #46:#47       // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #45 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest\n+   #46 = Utf8               assertThat\n+   #47 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #48 = String             #49           // foo\n+   #49 = Utf8               foo\n+   #50 = String             #51           // bar\n+   #51 = Utf8               bar\n+   #52 = Methodref          #53.#54       // org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+   #53 = Class              #55           // org/assertj/core/api/MapAssert\n+   #54 = NameAndType        #56:#57       // containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+   #55 = Utf8               org/assertj/core/api/MapAssert\n+   #56 = Utf8               containsEntry\n+   #57 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+   #58 = String             #59           // qux\n+   #59 = Utf8               qux\n+   #60 = Double             12.0d\n+   #62 = Methodref          #63.#64       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #63 = Class              #65           // java/lang/Double\n+   #64 = NameAndType        #66:#67       // valueOf:(D)Ljava/lang/Double;\n+   #65 = Utf8               java/lang/Double\n+   #66 = Utf8               valueOf\n+   #67 = Utf8               (D)Ljava/lang/Double;\n+   #68 = Methodref          #37.#69       // dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n+   #69 = NameAndType        #70:#71       // argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n+   #70 = Utf8               argument\n+   #71 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n+   #72 = Class              #73           // java/lang/String\n+   #73 = Utf8               java/lang/String\n+   #74 = Methodref          #43.#75       // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #75 = NameAndType        #46:#76       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #76 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #77 = Methodref          #78.#79       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #78 = Class              #80           // org/assertj/core/api/AbstractStringAssert\n+   #79 = NameAndType        #81:#76       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #80 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #81 = Utf8               isEqualTo\n+   #82 = Class              #83           // java/lang/Number\n+   #83 = Utf8               java/lang/Number\n+   #84 = Methodref          #43.#85       // dev/langchain4j/agent/tool/ToolExecutionRequestUtilTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #85 = NameAndType        #46:#86       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #86 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #87 = Methodref          #88.#89       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #88 = Class              #90           // org/assertj/core/api/ObjectAssert\n+   #89 = NameAndType        #81:#91       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #90 = Utf8               org/assertj/core/api/ObjectAssert\n+   #91 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #92 = Class              #93           // org/assertj/core/api/WithAssertions\n+   #93 = Utf8               org/assertj/core/api/WithAssertions\n+   #94 = Utf8               Code\n+   #95 = Utf8               LineNumberTable\n+   #96 = Utf8               LocalVariableTable\n+   #97 = Utf8               this\n+   #98 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequestUtilTest;\n+   #99 = Utf8               test_argument\n+  #100 = Utf8               request\n+  #101 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #102 = Utf8               RuntimeVisibleAnnotations\n+  #103 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #104 = Utf8               SourceFile\n+  #105 = Utf8               ToolExecutionRequestUtilTest.java\n+  #106 = Utf8               InnerClasses\n+  #107 = Utf8               Builder\n {\n   dev.langchain4j.agent.tool.ToolExecutionRequestUtilTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -130,55 +130,55 @@\n             0       5     0  this   Ldev/langchain4j/agent/tool/ToolExecutionRequestUtilTest;\n \n   public void test_argument();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         3: ldc           #3                  // String id\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         8: ldc           #5                  // String name\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        13: ldc           #7                  // String {\\\"foo\\\":\\\"bar\\\", \\\"qux\\\": 12}\n-        15: invokevirtual #8                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        18: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         3: ldc           #13                 // String id\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         8: ldc           #20                 // String name\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        13: ldc           #24                 // String {\\\"foo\\\":\\\"bar\\\", \\\"qux\\\": 12}\n+        15: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        18: invokevirtual #29                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         21: astore_1\n         22: aload_0\n         23: aload_1\n-        24: invokevirtual #10                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        27: invokestatic  #11                 // Method dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argumentsAsMap:(Ljava/lang/String;)Ljava/util/Map;\n-        30: invokevirtual #12                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-        33: ldc           #13                 // String foo\n-        35: ldc           #14                 // String bar\n-        37: invokevirtual #15                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-        40: checkcast     #16                 // class org/assertj/core/api/MapAssert\n-        43: ldc           #17                 // String qux\n-        45: ldc2_w        #18                 // double 12.0d\n-        48: invokestatic  #20                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        51: invokevirtual #15                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+        24: invokevirtual #33                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        27: invokestatic  #36                 // Method dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argumentsAsMap:(Ljava/lang/String;)Ljava/util/Map;\n+        30: invokevirtual #42                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+        33: ldc           #48                 // String foo\n+        35: ldc           #50                 // String bar\n+        37: invokevirtual #52                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+        40: checkcast     #53                 // class org/assertj/core/api/MapAssert\n+        43: ldc           #58                 // String qux\n+        45: ldc2_w        #60                 // double 12.0d\n+        48: invokestatic  #62                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        51: invokevirtual #52                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n         54: pop\n         55: aload_0\n         56: aload_1\n-        57: ldc           #13                 // String foo\n-        59: invokestatic  #21                 // Method dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n-        62: checkcast     #22                 // class java/lang/String\n-        65: invokevirtual #23                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        68: ldc           #14                 // String bar\n-        70: invokevirtual #24                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        57: ldc           #48                 // String foo\n+        59: invokestatic  #68                 // Method dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n+        62: checkcast     #72                 // class java/lang/String\n+        65: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        68: ldc           #50                 // String bar\n+        70: invokevirtual #77                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         73: pop\n         74: aload_0\n         75: aload_1\n-        76: ldc           #17                 // String qux\n-        78: invokestatic  #21                 // Method dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n-        81: checkcast     #25                 // class java/lang/Number\n-        84: invokevirtual #26                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        87: ldc2_w        #18                 // double 12.0d\n-        90: invokestatic  #20                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        93: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        76: ldc           #58                 // String qux\n+        78: invokestatic  #68                 // Method dev/langchain4j/agent/tool/ToolExecutionRequestUtil.argument:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ljava/lang/Object;\n+        81: checkcast     #82                 // class java/lang/Number\n+        84: invokevirtual #84                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        87: ldc2_w        #60                 // double 12.0d\n+        90: invokestatic  #62                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        93: invokevirtual #87                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         96: pop\n         97: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 5\n         line 11: 10\n         line 12: 15\n@@ -192,13 +192,13 @@\n         line 22: 90\n         line 23: 97\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      98     0  this   Ldev/langchain4j/agent/tool/ToolExecutionRequestUtilTest;\n            22      76     1 request   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     RuntimeVisibleAnnotations:\n-      0: #42()\n+      0: #103()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ToolExecutionRequestUtilTest.java\"\n InnerClasses:\n-  public static final #81= #49 of #46;    // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static final #107= #16 of #8;    // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolParametersTest.class", "source2": "dev/langchain4j/agent/tool/ToolParametersTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,151 +1,151 @@\n-  SHA-256 checksum 0b7a72a9aa7eff89a8542b373fc215670791d72c6810712507d9dd7986ab9ac5\n+  SHA-256 checksum fe51bb8096eeb00b42d2fb325db801411aa12faf58e424c539051b3f9d3c071c\n   Compiled from \"ToolParametersTest.java\"\n class dev.langchain4j.agent.tool.ToolParametersTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #34                         // dev/langchain4j/agent/tool/ToolParametersTest\n-  super_class: #18                        // java/lang/Object\n+  this_class: #56                         // dev/langchain4j/agent/tool/ToolParametersTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-    #1 = Methodref          #18.#54       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #55.#56       // dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-    #3 = String             #57           // foo\n-    #4 = Methodref          #58.#59       // dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-    #5 = String             #60           // abc\n-    #6 = String             #61           // xyz\n-    #7 = Methodref          #62.#63       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-    #8 = Methodref          #64.#65       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-    #9 = Methodref          #58.#66       // dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #10 = String             #67           // jkl\n-   #11 = Methodref          #64.#68       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #12 = Methodref          #58.#69       // dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #13 = Methodref          #58.#70       // dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-   #14 = Methodref          #34.#71       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #15 = Methodref          #16.#72       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #16 = Class              #73           // org/assertj/core/api/ObjectAssert\n-   #17 = Methodref          #16.#74       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #18 = Class              #75           // java/lang/Object\n-   #19 = Methodref          #16.#76       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #20 = String             #77           // changed\n-   #21 = Methodref          #16.#78       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #22 = Methodref          #55.#79       // dev/langchain4j/agent/tool/ToolParameters.toString:()Ljava/lang/String;\n-   #23 = Methodref          #34.#80       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #24 = String             #81           // ToolParameters { type = \\\"foo\\\", properties = {abc={xyz=12}}, required = [jkl] }\n-   #25 = Methodref          #82.#83       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #26 = Methodref          #55.#84       // dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n-   #27 = String             #85           // object\n-   #28 = Methodref          #55.#86       // dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-   #29 = Methodref          #34.#87       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #30 = Methodref          #88.#89       // org/assertj/core/api/MapAssert.isEmpty:()V\n-   #31 = Methodref          #55.#90       // dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n-   #32 = Methodref          #34.#91       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #33 = Methodref          #92.#89       // org/assertj/core/api/ListAssert.isEmpty:()V\n-   #34 = Class              #93           // dev/langchain4j/agent/tool/ToolParametersTest\n-   #35 = Class              #94           // org/assertj/core/api/WithAssertions\n-   #36 = Utf8               <init>\n-   #37 = Utf8               ()V\n-   #38 = Utf8               Code\n-   #39 = Utf8               LineNumberTable\n-   #40 = Utf8               LocalVariableTable\n-   #41 = Utf8               this\n-   #42 = Utf8               Ldev/langchain4j/agent/tool/ToolParametersTest;\n-   #43 = Utf8               test_equals_hash\n-   #44 = Utf8               tp1\n-   #45 = Utf8               Ldev/langchain4j/agent/tool/ToolParameters;\n-   #46 = Utf8               tp2\n-   #47 = Utf8               RuntimeVisibleAnnotations\n-   #48 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #49 = Utf8               test_toString\n-   #50 = Utf8               parameters\n-   #51 = Utf8               test_builder\n-   #52 = Utf8               SourceFile\n-   #53 = Utf8               ToolParametersTest.java\n-   #54 = NameAndType        #36:#37       // \"<init>\":()V\n-   #55 = Class              #95           // dev/langchain4j/agent/tool/ToolParameters\n-   #56 = NameAndType        #96:#99       // builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #57 = Utf8               foo\n-   #58 = Class              #100          // dev/langchain4j/agent/tool/ToolParameters$Builder\n-   #59 = NameAndType        #101:#102     // type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #60 = Utf8               abc\n-   #61 = Utf8               xyz\n-   #62 = Class              #103          // java/lang/Integer\n-   #63 = NameAndType        #104:#105     // valueOf:(I)Ljava/lang/Integer;\n-   #64 = Class              #106          // java/util/Collections\n-   #65 = NameAndType        #107:#108     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #66 = NameAndType        #109:#110     // properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #67 = Utf8               jkl\n-   #68 = NameAndType        #111:#112     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #69 = NameAndType        #113:#114     // required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #70 = NameAndType        #115:#116     // build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-   #71 = NameAndType        #117:#118     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #72 = NameAndType        #119:#120     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #73 = Utf8               org/assertj/core/api/ObjectAssert\n-   #74 = NameAndType        #121:#120     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #75 = Utf8               java/lang/Object\n-   #76 = NameAndType        #122:#120     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #77 = Utf8               changed\n-   #78 = NameAndType        #123:#120     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #79 = NameAndType        #124:#125     // toString:()Ljava/lang/String;\n-   #80 = NameAndType        #117:#126     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #81 = Utf8               ToolParameters { type = \\\"foo\\\", properties = {abc={xyz=12}}, required = [jkl] }\n-   #82 = Class              #127          // org/assertj/core/api/AbstractStringAssert\n-   #83 = NameAndType        #119:#126     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #84 = NameAndType        #101:#125     // type:()Ljava/lang/String;\n-   #85 = Utf8               object\n-   #86 = NameAndType        #109:#128     // properties:()Ljava/util/Map;\n-   #87 = NameAndType        #117:#129     // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #88 = Class              #130          // org/assertj/core/api/MapAssert\n-   #89 = NameAndType        #131:#37      // isEmpty:()V\n-   #90 = NameAndType        #113:#132     // required:()Ljava/util/List;\n-   #91 = NameAndType        #117:#133     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #92 = Class              #134          // org/assertj/core/api/ListAssert\n-   #93 = Utf8               dev/langchain4j/agent/tool/ToolParametersTest\n-   #94 = Utf8               org/assertj/core/api/WithAssertions\n-   #95 = Utf8               dev/langchain4j/agent/tool/ToolParameters\n-   #96 = Utf8               builder\n-   #97 = Utf8               Builder\n-   #98 = Utf8               InnerClasses\n-   #99 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #100 = Utf8               dev/langchain4j/agent/tool/ToolParameters$Builder\n-  #101 = Utf8               type\n-  #102 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #103 = Utf8               java/lang/Integer\n-  #104 = Utf8               valueOf\n-  #105 = Utf8               (I)Ljava/lang/Integer;\n-  #106 = Utf8               java/util/Collections\n-  #107 = Utf8               singletonMap\n-  #108 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #109 = Utf8               properties\n-  #110 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #111 = Utf8               singletonList\n-  #112 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #113 = Utf8               required\n-  #114 = Utf8               (Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #115 = Utf8               build\n-  #116 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters;\n-  #117 = Utf8               assertThat\n-  #118 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #119 = Utf8               isEqualTo\n-  #120 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #121 = Utf8               isNotEqualTo\n-  #122 = Utf8               hasSameHashCodeAs\n-  #123 = Utf8               doesNotHaveSameHashCodeAs\n-  #124 = Utf8               toString\n-  #125 = Utf8               ()Ljava/lang/String;\n-  #126 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #127 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #128 = Utf8               ()Ljava/util/Map;\n-  #129 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #130 = Utf8               org/assertj/core/api/MapAssert\n-  #131 = Utf8               isEmpty\n-  #132 = Utf8               ()Ljava/util/List;\n-  #133 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #134 = Utf8               org/assertj/core/api/ListAssert\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+    #8 = Class              #10           // dev/langchain4j/agent/tool/ToolParameters\n+    #9 = NameAndType        #11:#12       // builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #10 = Utf8               dev/langchain4j/agent/tool/ToolParameters\n+   #11 = Utf8               builder\n+   #12 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #13 = String             #14           // foo\n+   #14 = Utf8               foo\n+   #15 = Methodref          #16.#17       // dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #16 = Class              #18           // dev/langchain4j/agent/tool/ToolParameters$Builder\n+   #17 = NameAndType        #19:#20       // type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #18 = Utf8               dev/langchain4j/agent/tool/ToolParameters$Builder\n+   #19 = Utf8               type\n+   #20 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #21 = String             #22           // abc\n+   #22 = Utf8               abc\n+   #23 = String             #24           // xyz\n+   #24 = Utf8               xyz\n+   #25 = Methodref          #26.#27       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #26 = Class              #28           // java/lang/Integer\n+   #27 = NameAndType        #29:#30       // valueOf:(I)Ljava/lang/Integer;\n+   #28 = Utf8               java/lang/Integer\n+   #29 = Utf8               valueOf\n+   #30 = Utf8               (I)Ljava/lang/Integer;\n+   #31 = Methodref          #32.#33       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #32 = Class              #34           // java/util/Collections\n+   #33 = NameAndType        #35:#36       // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #34 = Utf8               java/util/Collections\n+   #35 = Utf8               singletonMap\n+   #36 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #37 = Methodref          #16.#38       // dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #38 = NameAndType        #39:#40       // properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #39 = Utf8               properties\n+   #40 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #41 = String             #42           // jkl\n+   #42 = Utf8               jkl\n+   #43 = Methodref          #32.#44       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #44 = NameAndType        #45:#46       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #45 = Utf8               singletonList\n+   #46 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #47 = Methodref          #16.#48       // dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #48 = NameAndType        #49:#50       // required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #49 = Utf8               required\n+   #50 = Utf8               (Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #51 = Methodref          #16.#52       // dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #52 = NameAndType        #53:#54       // build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #53 = Utf8               build\n+   #54 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #55 = Methodref          #56.#57       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #56 = Class              #58           // dev/langchain4j/agent/tool/ToolParametersTest\n+   #57 = NameAndType        #59:#60       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #58 = Utf8               dev/langchain4j/agent/tool/ToolParametersTest\n+   #59 = Utf8               assertThat\n+   #60 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #61 = Methodref          #62.#63       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #62 = Class              #64           // org/assertj/core/api/ObjectAssert\n+   #63 = NameAndType        #65:#66       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #64 = Utf8               org/assertj/core/api/ObjectAssert\n+   #65 = Utf8               isEqualTo\n+   #66 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #67 = Methodref          #62.#68       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #68 = NameAndType        #69:#66       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #69 = Utf8               isNotEqualTo\n+   #70 = Methodref          #62.#71       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #71 = NameAndType        #72:#66       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #72 = Utf8               hasSameHashCodeAs\n+   #73 = String             #74           // changed\n+   #74 = Utf8               changed\n+   #75 = Methodref          #62.#76       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #76 = NameAndType        #77:#66       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = Utf8               doesNotHaveSameHashCodeAs\n+   #78 = Methodref          #8.#79        // dev/langchain4j/agent/tool/ToolParameters.toString:()Ljava/lang/String;\n+   #79 = NameAndType        #80:#81       // toString:()Ljava/lang/String;\n+   #80 = Utf8               toString\n+   #81 = Utf8               ()Ljava/lang/String;\n+   #82 = Methodref          #56.#83       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #83 = NameAndType        #59:#84       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #84 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #85 = String             #86           // ToolParameters { type = \\\"foo\\\", properties = {abc={xyz=12}}, required = [jkl] }\n+   #86 = Utf8               ToolParameters { type = \\\"foo\\\", properties = {abc={xyz=12}}, required = [jkl] }\n+   #87 = Methodref          #88.#89       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #88 = Class              #90           // org/assertj/core/api/AbstractStringAssert\n+   #89 = NameAndType        #65:#84       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #90 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #91 = Methodref          #8.#92        // dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n+   #92 = NameAndType        #19:#81       // type:()Ljava/lang/String;\n+   #93 = String             #94           // object\n+   #94 = Utf8               object\n+   #95 = Methodref          #8.#96        // dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+   #96 = NameAndType        #39:#97       // properties:()Ljava/util/Map;\n+   #97 = Utf8               ()Ljava/util/Map;\n+   #98 = Methodref          #56.#99       // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #99 = NameAndType        #59:#100      // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #100 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #101 = Methodref          #102.#103     // org/assertj/core/api/MapAssert.isEmpty:()V\n+  #102 = Class              #104          // org/assertj/core/api/MapAssert\n+  #103 = NameAndType        #105:#6       // isEmpty:()V\n+  #104 = Utf8               org/assertj/core/api/MapAssert\n+  #105 = Utf8               isEmpty\n+  #106 = Methodref          #8.#107       // dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n+  #107 = NameAndType        #49:#108      // required:()Ljava/util/List;\n+  #108 = Utf8               ()Ljava/util/List;\n+  #109 = Methodref          #56.#110      // dev/langchain4j/agent/tool/ToolParametersTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #110 = NameAndType        #59:#111      // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #111 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #112 = Methodref          #113.#103     // org/assertj/core/api/ListAssert.isEmpty:()V\n+  #113 = Class              #114          // org/assertj/core/api/ListAssert\n+  #114 = Utf8               org/assertj/core/api/ListAssert\n+  #115 = Class              #116          // org/assertj/core/api/WithAssertions\n+  #116 = Utf8               org/assertj/core/api/WithAssertions\n+  #117 = Utf8               Code\n+  #118 = Utf8               LineNumberTable\n+  #119 = Utf8               LocalVariableTable\n+  #120 = Utf8               this\n+  #121 = Utf8               Ldev/langchain4j/agent/tool/ToolParametersTest;\n+  #122 = Utf8               test_equals_hash\n+  #123 = Utf8               tp1\n+  #124 = Utf8               Ldev/langchain4j/agent/tool/ToolParameters;\n+  #125 = Utf8               tp2\n+  #126 = Utf8               RuntimeVisibleAnnotations\n+  #127 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #128 = Utf8               test_toString\n+  #129 = Utf8               parameters\n+  #130 = Utf8               test_builder\n+  #131 = Utf8               SourceFile\n+  #132 = Utf8               ToolParametersTest.java\n+  #133 = Utf8               InnerClasses\n+  #134 = Utf8               Builder\n {\n   dev.langchain4j.agent.tool.ToolParametersTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -158,128 +158,128 @@\n             0       5     0  this   Ldev/langchain4j/agent/tool/ToolParametersTest;\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=3, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-         3: ldc           #3                  // String foo\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-         8: ldc           #5                  // String abc\n-        10: ldc           #6                  // String xyz\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+         3: ldc           #13                 // String foo\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+         8: ldc           #21                 // String abc\n+        10: ldc           #23                 // String xyz\n         12: bipush        12\n-        14: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        17: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        20: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        23: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        26: ldc           #10                 // String jkl\n-        28: invokestatic  #11                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        31: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        34: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        14: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        17: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        20: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        23: invokevirtual #37                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        26: ldc           #41                 // String jkl\n+        28: invokestatic  #43                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        31: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        34: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n         37: astore_1\n-        38: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        41: ldc           #3                  // String foo\n-        43: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        46: ldc           #5                  // String abc\n-        48: ldc           #6                  // String xyz\n+        38: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        41: ldc           #13                 // String foo\n+        43: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        46: ldc           #21                 // String abc\n+        48: ldc           #23                 // String xyz\n         50: bipush        12\n-        52: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        55: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        58: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        61: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        64: ldc           #10                 // String jkl\n-        66: invokestatic  #11                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        69: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        72: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        52: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        55: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        58: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        61: invokevirtual #37                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        64: ldc           #41                 // String jkl\n+        66: invokestatic  #43                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        69: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        72: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n         75: astore_2\n         76: aload_0\n         77: aload_1\n-        78: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        78: invokevirtual #55                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         81: aload_1\n-        82: invokevirtual #15                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        85: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+        82: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        85: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n         88: aconst_null\n-        89: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        92: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n-        95: new           #18                 // class java/lang/Object\n+        89: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        92: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n+        95: new           #2                  // class java/lang/Object\n         98: dup\n         99: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-       102: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       105: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       102: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       105: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n        108: aload_2\n-       109: invokevirtual #15                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       112: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       109: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       112: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n        115: aload_2\n-       116: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       116: invokevirtual #70                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        119: pop\n        120: aload_0\n-       121: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       124: ldc           #20                 // String changed\n-       126: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       129: ldc           #5                  // String abc\n-       131: ldc           #6                  // String xyz\n+       121: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       124: ldc           #73                 // String changed\n+       126: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       129: ldc           #21                 // String abc\n+       131: ldc           #23                 // String xyz\n        133: bipush        12\n-       135: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       138: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       141: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       144: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       147: ldc           #10                 // String jkl\n-       149: invokestatic  #11                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       152: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       155: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       158: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       135: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       138: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       141: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       144: invokevirtual #37                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       147: ldc           #41                 // String jkl\n+       149: invokestatic  #43                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       152: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       155: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       158: invokevirtual #55                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        161: aload_1\n-       162: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       165: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       162: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       165: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n        168: aload_1\n-       169: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       169: invokevirtual #75                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        172: pop\n        173: aload_0\n-       174: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       177: ldc           #3                  // String foo\n-       179: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       182: ldc           #5                  // String abc\n-       184: ldc           #6                  // String xyz\n-       186: ldc           #20                 // String changed\n-       188: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       191: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       194: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       197: ldc           #10                 // String jkl\n-       199: invokestatic  #11                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       202: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       205: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       208: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       174: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       177: ldc           #13                 // String foo\n+       179: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       182: ldc           #21                 // String abc\n+       184: ldc           #23                 // String xyz\n+       186: ldc           #73                 // String changed\n+       188: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       191: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       194: invokevirtual #37                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       197: ldc           #41                 // String jkl\n+       199: invokestatic  #43                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       202: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       205: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       208: invokevirtual #55                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        211: aload_1\n-       212: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       215: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       212: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       215: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n        218: aload_1\n-       219: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       219: invokevirtual #75                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        222: pop\n        223: aload_0\n-       224: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       227: ldc           #3                  // String foo\n-       229: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       232: ldc           #5                  // String abc\n-       234: ldc           #6                  // String xyz\n+       224: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       227: ldc           #13                 // String foo\n+       229: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       232: ldc           #21                 // String abc\n+       234: ldc           #23                 // String xyz\n        236: bipush        12\n-       238: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       241: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       244: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       247: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       250: ldc           #20                 // String changed\n-       252: invokestatic  #11                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       255: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       258: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       261: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       238: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       241: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       244: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       247: invokevirtual #37                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       250: ldc           #73                 // String changed\n+       252: invokestatic  #43                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       255: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       258: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       261: invokevirtual #55                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        264: aload_1\n-       265: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       268: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       265: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       268: checkcast     #62                 // class org/assertj/core/api/ObjectAssert\n        271: aload_1\n-       272: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       272: invokevirtual #75                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        275: pop\n        276: return\n       LineNumberTable:\n         line 12: 0\n         line 13: 5\n         line 14: 14\n         line 15: 28\n@@ -322,43 +322,43 @@\n         line 53: 276\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     277     0  this   Ldev/langchain4j/agent/tool/ToolParametersTest;\n            38     239     1   tp1   Ldev/langchain4j/agent/tool/ToolParameters;\n            76     201     2   tp2   Ldev/langchain4j/agent/tool/ToolParameters;\n     RuntimeVisibleAnnotations:\n-      0: #48()\n+      0: #127()\n         org.junit.jupiter.api.Test\n \n   public void test_toString();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-         3: ldc           #3                  // String foo\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-         8: ldc           #5                  // String abc\n-        10: ldc           #6                  // String xyz\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+         3: ldc           #13                 // String foo\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+         8: ldc           #21                 // String abc\n+        10: ldc           #23                 // String xyz\n         12: bipush        12\n-        14: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        17: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        20: invokestatic  #8                  // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        23: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        26: ldc           #10                 // String jkl\n-        28: invokestatic  #11                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        31: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        34: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        14: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        17: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        20: invokestatic  #31                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        23: invokevirtual #37                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        26: ldc           #41                 // String jkl\n+        28: invokestatic  #43                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        31: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        34: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n         37: astore_1\n         38: aload_0\n         39: aload_1\n-        40: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolParameters.toString:()Ljava/lang/String;\n-        43: invokevirtual #23                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        46: ldc           #24                 // String ToolParameters { type = \\\"foo\\\", properties = {abc={xyz=12}}, required = [jkl] }\n-        48: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        40: invokevirtual #78                 // Method dev/langchain4j/agent/tool/ToolParameters.toString:()Ljava/lang/String;\n+        43: invokevirtual #82                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        46: ldc           #85                 // String ToolParameters { type = \\\"foo\\\", properties = {abc={xyz=12}}, required = [jkl] }\n+        48: invokevirtual #87                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         51: pop\n         52: return\n       LineNumberTable:\n         line 57: 0\n         line 58: 5\n         line 59: 14\n         line 60: 28\n@@ -366,53 +366,53 @@\n         line 62: 38\n         line 63: 52\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      53     0  this   Ldev/langchain4j/agent/tool/ToolParametersTest;\n            38      15     1 parameters   Ldev/langchain4j/agent/tool/ToolParameters;\n     RuntimeVisibleAnnotations:\n-      0: #48()\n+      0: #127()\n         org.junit.jupiter.api.Test\n \n   public void test_builder();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-         3: invokevirtual #13                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+         3: invokevirtual #51                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n          6: astore_1\n          7: aload_0\n          8: aload_1\n-         9: invokevirtual #26                 // Method dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n-        12: invokevirtual #23                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        15: ldc           #27                 // String object\n-        17: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         9: invokevirtual #91                 // Method dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n+        12: invokevirtual #82                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        15: ldc           #93                 // String object\n+        17: invokevirtual #87                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         20: pop\n         21: aload_0\n         22: aload_1\n-        23: invokevirtual #28                 // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-        26: invokevirtual #29                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-        29: invokevirtual #30                 // Method org/assertj/core/api/MapAssert.isEmpty:()V\n+        23: invokevirtual #95                 // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+        26: invokevirtual #98                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+        29: invokevirtual #101                // Method org/assertj/core/api/MapAssert.isEmpty:()V\n         32: aload_0\n         33: aload_1\n-        34: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n-        37: invokevirtual #32                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        40: invokevirtual #33                 // Method org/assertj/core/api/ListAssert.isEmpty:()V\n+        34: invokevirtual #106                // Method dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n+        37: invokevirtual #109                // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        40: invokevirtual #112                // Method org/assertj/core/api/ListAssert.isEmpty:()V\n         43: return\n       LineNumberTable:\n         line 69: 0\n         line 70: 7\n         line 71: 21\n         line 72: 32\n         line 74: 43\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             7      36     1 parameters   Ldev/langchain4j/agent/tool/ToolParameters;\n             0      44     0  this   Ldev/langchain4j/agent/tool/ToolParametersTest;\n     RuntimeVisibleAnnotations:\n-      0: #48()\n+      0: #127()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ToolParametersTest.java\"\n InnerClasses:\n-  public static final #97= #58 of #55;    // Builder=class dev/langchain4j/agent/tool/ToolParameters$Builder of class dev/langchain4j/agent/tool/ToolParameters\n+  public static final #134= #16 of #8;    // Builder=class dev/langchain4j/agent/tool/ToolParameters$Builder of class dev/langchain4j/agent/tool/ToolParameters\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolSpecificationTest.class", "source2": "dev/langchain4j/agent/tool/ToolSpecificationTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,216 +1,216 @@\n-  SHA-256 checksum 38ddadf3b769b166b71c86a18a10639fc141e5203eac42db3ec1cabbff7dae48\n+  SHA-256 checksum 06b188939b321c15608549f31baa907731f70e6dd5704ef2135083704f803a54\n   Compiled from \"ToolSpecificationTest.java\"\n class dev.langchain4j.agent.tool.ToolSpecificationTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #58                         // dev/langchain4j/agent/tool/ToolSpecificationTest\n-  super_class: #52                        // java/lang/Object\n+  this_class: #75                         // dev/langchain4j/agent/tool/ToolSpecificationTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 5, attributes: 2\n Constant pool:\n-    #1 = Methodref          #52.#79       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #80.#81       // dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-    #3 = String             #82           // name\n-    #4 = Methodref          #83.#84       // dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-    #5 = String             #85           // description\n-    #6 = Methodref          #83.#86       // dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-    #7 = Methodref          #87.#88       // dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-    #8 = String             #89           // type\n-    #9 = Methodref          #90.#91       // dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #10 = String             #92           // foo\n-   #11 = String             #93           // bar\n-   #12 = String             #94           // baz\n-   #13 = Methodref          #95.#96       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #14 = Methodref          #90.#97       // dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #15 = Methodref          #95.#98       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #16 = Methodref          #90.#99       // dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #17 = Methodref          #90.#100      // dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-   #18 = Methodref          #83.#101      // dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #19 = Methodref          #83.#102      // dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-   #20 = Methodref          #80.#103      // dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-   #21 = Methodref          #58.#104      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #22 = Methodref          #105.#106     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #23 = Methodref          #80.#107      // dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-   #24 = Methodref          #80.#108      // dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-   #25 = Methodref          #87.#109      // dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n-   #26 = String             #110          // req\n-   #27 = Class              #111          // dev/langchain4j/agent/tool/JsonSchemaProperty\n-   #28 = Fieldref           #27.#112      // dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #29 = Methodref          #83.#113      // dev/langchain4j/agent/tool/ToolSpecification$Builder.addParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #30 = Fieldref           #27.#114      // dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #31 = Methodref          #27.#115      // dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #32 = Methodref          #83.#116      // dev/langchain4j/agent/tool/ToolSpecification$Builder.addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #33 = Fieldref           #27.#117      // dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-   #34 = String             #118          // object\n-   #35 = Methodref          #87.#119      // dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-   #36 = InterfaceMethodref #37.#120      // java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #37 = Class              #121          // java/util/Map\n-   #38 = Methodref          #58.#122      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #39 = String             #123          // boolean\n-   #40 = Methodref          #42.#124      // org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-   #41 = String             #125          // string\n-   #42 = Class              #126          // org/assertj/core/api/MapAssert\n-   #43 = String             #127          // integer\n-   #44 = Methodref          #87.#128      // dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n-   #45 = Methodref          #58.#129      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #46 = Class              #130          // java/lang/String\n-   #47 = Methodref          #131.#132     // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #48 = Methodref          #58.#133      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #49 = Methodref          #50.#134      // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #50 = Class              #135          // org/assertj/core/api/ObjectAssert\n-   #51 = Methodref          #50.#136      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #52 = Class              #137          // java/lang/Object\n-   #53 = Methodref          #50.#138      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #54 = String             #139          // changed\n-   #55 = Methodref          #50.#140      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #56 = Methodref          #80.#141      // dev/langchain4j/agent/tool/ToolSpecification.toString:()Ljava/lang/String;\n-   #57 = String             #142          // ToolSpecification { name = \\\"name\\\", description = \\\"description\\\", parameters = ToolParameters { type = \\\"type\\\", properties = {foo={bar=baz}}, required = [foo] } }\n-   #58 = Class              #143          // dev/langchain4j/agent/tool/ToolSpecificationTest\n-   #59 = Class              #144          // org/assertj/core/api/WithAssertions\n-   #60 = Utf8               <init>\n-   #61 = Utf8               ()V\n-   #62 = Utf8               Code\n-   #63 = Utf8               LineNumberTable\n-   #64 = Utf8               LocalVariableTable\n-   #65 = Utf8               this\n-   #66 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n-   #67 = Utf8               test_builder\n-   #68 = Utf8               ts\n-   #69 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n-   #70 = Utf8               RuntimeVisibleAnnotations\n-   #71 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #72 = Utf8               test_parameter_builder\n-   #73 = Utf8               test_equals_hash\n-   #74 = Utf8               sp1\n-   #75 = Utf8               sp2\n-   #76 = Utf8               test_toString\n-   #77 = Utf8               SourceFile\n-   #78 = Utf8               ToolSpecificationTest.java\n-   #79 = NameAndType        #60:#61       // \"<init>\":()V\n-   #80 = Class              #145          // dev/langchain4j/agent/tool/ToolSpecification\n-   #81 = NameAndType        #146:#149     // builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #82 = Utf8               name\n-   #83 = Class              #150          // dev/langchain4j/agent/tool/ToolSpecification$Builder\n-   #84 = NameAndType        #82:#151      // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #85 = Utf8               description\n-   #86 = NameAndType        #85:#151      // description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #87 = Class              #152          // dev/langchain4j/agent/tool/ToolParameters\n-   #88 = NameAndType        #146:#153     // builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #89 = Utf8               type\n-   #90 = Class              #154          // dev/langchain4j/agent/tool/ToolParameters$Builder\n-   #91 = NameAndType        #89:#155      // type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #92 = Utf8               foo\n-   #93 = Utf8               bar\n-   #94 = Utf8               baz\n-   #95 = Class              #156          // java/util/Collections\n-   #96 = NameAndType        #157:#158     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #97 = NameAndType        #159:#160     // properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-   #98 = NameAndType        #161:#162     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #99 = NameAndType        #163:#164     // required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #100 = NameAndType        #165:#166     // build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-  #101 = NameAndType        #167:#168     // parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #102 = NameAndType        #165:#169     // build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #103 = NameAndType        #82:#170      // name:()Ljava/lang/String;\n-  #104 = NameAndType        #171:#172     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #105 = Class              #173          // org/assertj/core/api/AbstractStringAssert\n-  #106 = NameAndType        #174:#172     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #107 = NameAndType        #85:#170      // description:()Ljava/lang/String;\n-  #108 = NameAndType        #167:#166     // parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-  #109 = NameAndType        #89:#170      // type:()Ljava/lang/String;\n-  #110 = Utf8               req\n-  #111 = Utf8               dev/langchain4j/agent/tool/JsonSchemaProperty\n-  #112 = NameAndType        #175:#176     // BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #113 = NameAndType        #177:#178     // addParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #114 = NameAndType        #179:#176     // STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #115 = NameAndType        #85:#180      // description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #116 = NameAndType        #181:#178     // addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #117 = NameAndType        #182:#176     // INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #118 = Utf8               object\n-  #119 = NameAndType        #159:#183     // properties:()Ljava/util/Map;\n-  #120 = NameAndType        #184:#185     // get:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #121 = Utf8               java/util/Map\n-  #122 = NameAndType        #171:#186     // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #123 = Utf8               boolean\n-  #124 = NameAndType        #187:#188     // containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-  #125 = Utf8               string\n-  #126 = Utf8               org/assertj/core/api/MapAssert\n-  #127 = Utf8               integer\n-  #128 = NameAndType        #163:#189     // required:()Ljava/util/List;\n-  #129 = NameAndType        #171:#190     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #130 = Utf8               java/lang/String\n-  #131 = Class              #191          // org/assertj/core/api/ListAssert\n-  #132 = NameAndType        #192:#193     // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #133 = NameAndType        #171:#194     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #134 = NameAndType        #174:#195     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #135 = Utf8               org/assertj/core/api/ObjectAssert\n-  #136 = NameAndType        #196:#195     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #137 = Utf8               java/lang/Object\n-  #138 = NameAndType        #197:#195     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #139 = Utf8               changed\n-  #140 = NameAndType        #198:#195     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #141 = NameAndType        #199:#170     // toString:()Ljava/lang/String;\n-  #142 = Utf8               ToolSpecification { name = \\\"name\\\", description = \\\"description\\\", parameters = ToolParameters { type = \\\"type\\\", properties = {foo={bar=baz}}, required = [foo] } }\n-  #143 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationTest\n-  #144 = Utf8               org/assertj/core/api/WithAssertions\n-  #145 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n-  #146 = Utf8               builder\n-  #147 = Utf8               Builder\n-  #148 = Utf8               InnerClasses\n-  #149 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #150 = Utf8               dev/langchain4j/agent/tool/ToolSpecification$Builder\n-  #151 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #152 = Utf8               dev/langchain4j/agent/tool/ToolParameters\n-  #153 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #154 = Utf8               dev/langchain4j/agent/tool/ToolParameters$Builder\n-  #155 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #156 = Utf8               java/util/Collections\n-  #157 = Utf8               singletonMap\n-  #158 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #159 = Utf8               properties\n-  #160 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #161 = Utf8               singletonList\n-  #162 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #163 = Utf8               required\n-  #164 = Utf8               (Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-  #165 = Utf8               build\n-  #166 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters;\n-  #167 = Utf8               parameters\n-  #168 = Utf8               (Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #169 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #170 = Utf8               ()Ljava/lang/String;\n-  #171 = Utf8               assertThat\n-  #172 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #173 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #174 = Utf8               isEqualTo\n-  #175 = Utf8               BOOLEAN\n-  #176 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #177 = Utf8               addParameter\n-  #178 = Utf8               (Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #179 = Utf8               STRING\n-  #180 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n-  #181 = Utf8               addOptionalParameter\n-  #182 = Utf8               INTEGER\n-  #183 = Utf8               ()Ljava/util/Map;\n-  #184 = Utf8               get\n-  #185 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #186 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #187 = Utf8               containsEntry\n-  #188 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-  #189 = Utf8               ()Ljava/util/List;\n-  #190 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #191 = Utf8               org/assertj/core/api/ListAssert\n-  #192 = Utf8               containsOnly\n-  #193 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #194 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #195 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #196 = Utf8               isNotEqualTo\n-  #197 = Utf8               hasSameHashCodeAs\n-  #198 = Utf8               doesNotHaveSameHashCodeAs\n-  #199 = Utf8               toString\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+    #8 = Class              #10           // dev/langchain4j/agent/tool/ToolSpecification\n+    #9 = NameAndType        #11:#12       // builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #10 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n+   #11 = Utf8               builder\n+   #12 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #13 = String             #14           // name\n+   #14 = Utf8               name\n+   #15 = Methodref          #16.#17       // dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #16 = Class              #18           // dev/langchain4j/agent/tool/ToolSpecification$Builder\n+   #17 = NameAndType        #14:#19       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #18 = Utf8               dev/langchain4j/agent/tool/ToolSpecification$Builder\n+   #19 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #20 = String             #21           // description\n+   #21 = Utf8               description\n+   #22 = Methodref          #16.#23       // dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #23 = NameAndType        #21:#19       // description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #24 = Methodref          #25.#26       // dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #25 = Class              #27           // dev/langchain4j/agent/tool/ToolParameters\n+   #26 = NameAndType        #11:#28       // builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #27 = Utf8               dev/langchain4j/agent/tool/ToolParameters\n+   #28 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #29 = String             #30           // type\n+   #30 = Utf8               type\n+   #31 = Methodref          #32.#33       // dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #32 = Class              #34           // dev/langchain4j/agent/tool/ToolParameters$Builder\n+   #33 = NameAndType        #30:#35       // type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #34 = Utf8               dev/langchain4j/agent/tool/ToolParameters$Builder\n+   #35 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #36 = String             #37           // foo\n+   #37 = Utf8               foo\n+   #38 = String             #39           // bar\n+   #39 = Utf8               bar\n+   #40 = String             #41           // baz\n+   #41 = Utf8               baz\n+   #42 = Methodref          #43.#44       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #43 = Class              #45           // java/util/Collections\n+   #44 = NameAndType        #46:#47       // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #45 = Utf8               java/util/Collections\n+   #46 = Utf8               singletonMap\n+   #47 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #48 = Methodref          #32.#49       // dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #49 = NameAndType        #50:#51       // properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #50 = Utf8               properties\n+   #51 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #52 = Methodref          #43.#53       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #53 = NameAndType        #54:#55       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #54 = Utf8               singletonList\n+   #55 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #56 = Methodref          #32.#57       // dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #57 = NameAndType        #58:#59       // required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #58 = Utf8               required\n+   #59 = Utf8               (Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+   #60 = Methodref          #32.#61       // dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #61 = NameAndType        #62:#63       // build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #62 = Utf8               build\n+   #63 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #64 = Methodref          #16.#65       // dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #65 = NameAndType        #66:#67       // parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #66 = Utf8               parameters\n+   #67 = Utf8               (Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+   #68 = Methodref          #16.#69       // dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+   #69 = NameAndType        #62:#70       // build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+   #70 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification;\n+   #71 = Methodref          #8.#72        // dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+   #72 = NameAndType        #14:#73       // name:()Ljava/lang/String;\n+   #73 = Utf8               ()Ljava/lang/String;\n+   #74 = Methodref          #75.#76       // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #75 = Class              #77           // dev/langchain4j/agent/tool/ToolSpecificationTest\n+   #76 = NameAndType        #78:#79       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #77 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationTest\n+   #78 = Utf8               assertThat\n+   #79 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #80 = Methodref          #81.#82       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #81 = Class              #83           // org/assertj/core/api/AbstractStringAssert\n+   #82 = NameAndType        #84:#79       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #83 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #84 = Utf8               isEqualTo\n+   #85 = Methodref          #8.#86        // dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+   #86 = NameAndType        #21:#73       // description:()Ljava/lang/String;\n+   #87 = Methodref          #8.#88        // dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #88 = NameAndType        #66:#63       // parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+   #89 = Methodref          #25.#90       // dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n+   #90 = NameAndType        #30:#73       // type:()Ljava/lang/String;\n+   #91 = String             #92           // req\n+   #92 = Utf8               req\n+   #93 = Class              #94           // dev/langchain4j/agent/tool/JsonSchemaProperty\n+   #94 = Utf8               dev/langchain4j/agent/tool/JsonSchemaProperty\n+   #95 = Fieldref           #93.#96       // dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #96 = NameAndType        #97:#98       // BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #97 = Utf8               BOOLEAN\n+   #98 = Utf8               Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+   #99 = Methodref          #16.#100      // dev/langchain4j/agent/tool/ToolSpecification$Builder.addParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #100 = NameAndType        #101:#102     // addParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #101 = Utf8               addParameter\n+  #102 = Utf8               (Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #103 = Fieldref           #93.#104      // dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #104 = NameAndType        #105:#98      // STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #105 = Utf8               STRING\n+  #106 = Methodref          #93.#107      // dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #107 = NameAndType        #21:#108      // description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #108 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #109 = Methodref          #16.#110      // dev/langchain4j/agent/tool/ToolSpecification$Builder.addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #110 = NameAndType        #111:#102     // addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #111 = Utf8               addOptionalParameter\n+  #112 = Fieldref           #93.#113      // dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #113 = NameAndType        #114:#98      // INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+  #114 = Utf8               INTEGER\n+  #115 = String             #116          // object\n+  #116 = Utf8               object\n+  #117 = Methodref          #25.#118      // dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+  #118 = NameAndType        #50:#119      // properties:()Ljava/util/Map;\n+  #119 = Utf8               ()Ljava/util/Map;\n+  #120 = InterfaceMethodref #121.#122     // java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #121 = Class              #123          // java/util/Map\n+  #122 = NameAndType        #124:#125     // get:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #123 = Utf8               java/util/Map\n+  #124 = Utf8               get\n+  #125 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #126 = Methodref          #75.#127      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #127 = NameAndType        #78:#128      // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #128 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #129 = String             #130          // boolean\n+  #130 = Utf8               boolean\n+  #131 = Methodref          #132.#133     // org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+  #132 = Class              #134          // org/assertj/core/api/MapAssert\n+  #133 = NameAndType        #135:#136     // containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+  #134 = Utf8               org/assertj/core/api/MapAssert\n+  #135 = Utf8               containsEntry\n+  #136 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+  #137 = String             #138          // string\n+  #138 = Utf8               string\n+  #139 = String             #140          // integer\n+  #140 = Utf8               integer\n+  #141 = Methodref          #25.#142      // dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n+  #142 = NameAndType        #58:#143      // required:()Ljava/util/List;\n+  #143 = Utf8               ()Ljava/util/List;\n+  #144 = Methodref          #75.#145      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #145 = NameAndType        #78:#146      // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #146 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #147 = Class              #148          // java/lang/String\n+  #148 = Utf8               java/lang/String\n+  #149 = Methodref          #150.#151     // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #150 = Class              #152          // org/assertj/core/api/ListAssert\n+  #151 = NameAndType        #153:#154     // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #152 = Utf8               org/assertj/core/api/ListAssert\n+  #153 = Utf8               containsOnly\n+  #154 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #155 = Methodref          #75.#156      // dev/langchain4j/agent/tool/ToolSpecificationTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #156 = NameAndType        #78:#157      // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #157 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #158 = Methodref          #159.#160     // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #159 = Class              #161          // org/assertj/core/api/ObjectAssert\n+  #160 = NameAndType        #84:#162      // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #161 = Utf8               org/assertj/core/api/ObjectAssert\n+  #162 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #163 = Methodref          #159.#164     // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #164 = NameAndType        #165:#162     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #165 = Utf8               isNotEqualTo\n+  #166 = Methodref          #159.#167     // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #167 = NameAndType        #168:#162     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #168 = Utf8               hasSameHashCodeAs\n+  #169 = String             #170          // changed\n+  #170 = Utf8               changed\n+  #171 = Methodref          #159.#172     // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #172 = NameAndType        #173:#162     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #173 = Utf8               doesNotHaveSameHashCodeAs\n+  #174 = Methodref          #8.#175       // dev/langchain4j/agent/tool/ToolSpecification.toString:()Ljava/lang/String;\n+  #175 = NameAndType        #176:#73      // toString:()Ljava/lang/String;\n+  #176 = Utf8               toString\n+  #177 = String             #178          // ToolSpecification { name = \\\"name\\\", description = \\\"description\\\", parameters = ToolParameters { type = \\\"type\\\", properties = {foo={bar=baz}}, required = [foo] } }\n+  #178 = Utf8               ToolSpecification { name = \\\"name\\\", description = \\\"description\\\", parameters = ToolParameters { type = \\\"type\\\", properties = {foo={bar=baz}}, required = [foo] } }\n+  #179 = Class              #180          // org/assertj/core/api/WithAssertions\n+  #180 = Utf8               org/assertj/core/api/WithAssertions\n+  #181 = Utf8               Code\n+  #182 = Utf8               LineNumberTable\n+  #183 = Utf8               LocalVariableTable\n+  #184 = Utf8               this\n+  #185 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n+  #186 = Utf8               test_builder\n+  #187 = Utf8               ts\n+  #188 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #189 = Utf8               RuntimeVisibleAnnotations\n+  #190 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #191 = Utf8               test_parameter_builder\n+  #192 = Utf8               test_equals_hash\n+  #193 = Utf8               sp1\n+  #194 = Utf8               sp2\n+  #195 = Utf8               test_toString\n+  #196 = Utf8               SourceFile\n+  #197 = Utf8               ToolSpecificationTest.java\n+  #198 = Utf8               InnerClasses\n+  #199 = Utf8               Builder\n {\n   dev.langchain4j.agent.tool.ToolSpecificationTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -223,56 +223,56 @@\n             0       5     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n \n   public void test_builder();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         3: ldc           #3                  // String name\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         8: ldc           #5                  // String description\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        13: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        16: ldc           #8                  // String type\n-        18: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        21: ldc           #10                 // String foo\n-        23: ldc           #11                 // String bar\n-        25: ldc           #12                 // String baz\n-        27: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        30: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        33: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        36: ldc           #10                 // String foo\n-        38: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        41: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        44: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-        47: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        50: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         3: ldc           #13                 // String name\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         8: ldc           #20                 // String description\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        13: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        16: ldc           #29                 // String type\n+        18: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        21: ldc           #36                 // String foo\n+        23: ldc           #38                 // String bar\n+        25: ldc           #40                 // String baz\n+        27: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        30: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        33: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        36: ldc           #36                 // String foo\n+        38: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        41: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        44: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        47: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        50: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n         53: astore_1\n         54: aload_0\n         55: aload_1\n-        56: invokevirtual #20                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-        59: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        62: ldc           #3                  // String name\n-        64: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        56: invokevirtual #71                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+        59: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        62: ldc           #13                 // String name\n+        64: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         67: pop\n         68: aload_0\n         69: aload_1\n-        70: invokevirtual #23                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-        73: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        76: ldc           #5                  // String description\n-        78: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        70: invokevirtual #85                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+        73: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        76: ldc           #20                 // String description\n+        78: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         81: pop\n         82: aload_0\n         83: aload_1\n-        84: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-        87: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n-        90: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        93: ldc           #8                  // String type\n-        95: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        84: invokevirtual #87                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        87: invokevirtual #89                 // Method dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n+        90: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        93: ldc           #29                 // String type\n+        95: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         98: pop\n         99: return\n       LineNumberTable:\n         line 11: 0\n         line 12: 5\n         line 13: 10\n         line 14: 13\n@@ -287,132 +287,132 @@\n         line 23: 82\n         line 24: 99\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     100     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n            54      46     1    ts   Ldev/langchain4j/agent/tool/ToolSpecification;\n     RuntimeVisibleAnnotations:\n-      0: #71()\n+      0: #190()\n         org.junit.jupiter.api.Test\n \n   public void test_parameter_builder();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         3: ldc           #3                  // String name\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         8: ldc           #5                  // String description\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        13: ldc           #26                 // String req\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         3: ldc           #13                 // String name\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         8: ldc           #20                 // String description\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        13: ldc           #91                 // String req\n         15: iconst_1\n-        16: anewarray     #27                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+        16: anewarray     #93                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n         19: dup\n         20: iconst_0\n-        21: getstatic     #28                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        21: getstatic     #95                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.BOOLEAN:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n         24: aastore\n-        25: invokevirtual #29                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.addParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        28: ldc           #10                 // String foo\n+        25: invokevirtual #99                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.addParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        28: ldc           #36                 // String foo\n         30: iconst_2\n-        31: anewarray     #27                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+        31: anewarray     #93                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n         34: dup\n         35: iconst_0\n-        36: getstatic     #30                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        36: getstatic     #103                // Field dev/langchain4j/agent/tool/JsonSchemaProperty.STRING:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n         39: aastore\n         40: dup\n         41: iconst_1\n-        42: ldc           #5                  // String description\n-        44: invokestatic  #31                 // Method dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        42: ldc           #20                 // String description\n+        44: invokestatic  #106                // Method dev/langchain4j/agent/tool/JsonSchemaProperty.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n         47: aastore\n-        48: invokevirtual #32                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        51: ldc           #11                 // String bar\n+        48: invokevirtual #109                // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        51: ldc           #38                 // String bar\n         53: iconst_1\n-        54: anewarray     #27                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n+        54: anewarray     #93                 // class dev/langchain4j/agent/tool/JsonSchemaProperty\n         57: dup\n         58: iconst_0\n-        59: getstatic     #33                 // Field dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n+        59: getstatic     #112                // Field dev/langchain4j/agent/tool/JsonSchemaProperty.INTEGER:Ldev/langchain4j/agent/tool/JsonSchemaProperty;\n         62: aastore\n-        63: invokevirtual #32                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        66: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+        63: invokevirtual #109                // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.addOptionalParameter:(Ljava/lang/String;[Ldev/langchain4j/agent/tool/JsonSchemaProperty;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        66: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n         69: astore_1\n         70: aload_0\n         71: aload_1\n-        72: invokevirtual #20                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-        75: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        78: ldc           #3                  // String name\n-        80: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        72: invokevirtual #71                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+        75: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        78: ldc           #13                 // String name\n+        80: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         83: pop\n         84: aload_0\n         85: aload_1\n-        86: invokevirtual #23                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-        89: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        92: ldc           #5                  // String description\n-        94: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        86: invokevirtual #85                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+        89: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        92: ldc           #20                 // String description\n+        94: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         97: pop\n         98: aload_0\n         99: aload_1\n-       100: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       103: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n-       106: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       109: ldc           #34                 // String object\n-       111: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       100: invokevirtual #87                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       103: invokevirtual #89                 // Method dev/langchain4j/agent/tool/ToolParameters.type:()Ljava/lang/String;\n+       106: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       109: ldc           #115                // String object\n+       111: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        114: pop\n        115: aload_0\n        116: aload_1\n-       117: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       120: invokevirtual #35                 // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-       123: ldc           #26                 // String req\n-       125: invokeinterface #36,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n-       130: checkcast     #37                 // class java/util/Map\n-       133: invokevirtual #38                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-       136: ldc           #8                  // String type\n-       138: ldc           #39                 // String boolean\n-       140: invokevirtual #40                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+       117: invokevirtual #87                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       120: invokevirtual #117                // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+       123: ldc           #91                 // String req\n+       125: invokeinterface #120,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n+       130: checkcast     #121                // class java/util/Map\n+       133: invokevirtual #126                // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+       136: ldc           #29                 // String type\n+       138: ldc           #129                // String boolean\n+       140: invokevirtual #131                // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n        143: pop\n        144: aload_0\n        145: aload_1\n-       146: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       149: invokevirtual #35                 // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-       152: ldc           #10                 // String foo\n-       154: invokeinterface #36,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n-       159: checkcast     #37                 // class java/util/Map\n-       162: invokevirtual #38                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-       165: ldc           #8                  // String type\n-       167: ldc           #41                 // String string\n-       169: invokevirtual #40                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-       172: checkcast     #42                 // class org/assertj/core/api/MapAssert\n-       175: ldc           #5                  // String description\n-       177: ldc           #5                  // String description\n-       179: invokevirtual #40                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+       146: invokevirtual #87                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       149: invokevirtual #117                // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+       152: ldc           #36                 // String foo\n+       154: invokeinterface #120,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n+       159: checkcast     #121                // class java/util/Map\n+       162: invokevirtual #126                // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+       165: ldc           #29                 // String type\n+       167: ldc           #137                // String string\n+       169: invokevirtual #131                // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+       172: checkcast     #132                // class org/assertj/core/api/MapAssert\n+       175: ldc           #20                 // String description\n+       177: ldc           #20                 // String description\n+       179: invokevirtual #131                // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n        182: pop\n        183: aload_0\n        184: aload_1\n-       185: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       188: invokevirtual #35                 // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-       191: ldc           #11                 // String bar\n-       193: invokeinterface #36,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n-       198: checkcast     #37                 // class java/util/Map\n-       201: invokevirtual #38                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-       204: ldc           #8                  // String type\n-       206: ldc           #43                 // String integer\n-       208: invokevirtual #40                 // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+       185: invokevirtual #87                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       188: invokevirtual #117                // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+       191: ldc           #38                 // String bar\n+       193: invokeinterface #120,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n+       198: checkcast     #121                // class java/util/Map\n+       201: invokevirtual #126                // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+       204: ldc           #29                 // String type\n+       206: ldc           #139                // String integer\n+       208: invokevirtual #131                // Method org/assertj/core/api/MapAssert.containsEntry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n        211: pop\n        212: aload_0\n        213: aload_1\n-       214: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       217: invokevirtual #44                 // Method dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n-       220: invokevirtual #45                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       214: invokevirtual #87                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       217: invokevirtual #141                // Method dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n+       220: invokevirtual #144                // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        223: iconst_1\n-       224: anewarray     #46                 // class java/lang/String\n+       224: anewarray     #147                // class java/lang/String\n        227: dup\n        228: iconst_0\n-       229: ldc           #26                 // String req\n+       229: ldc           #91                 // String req\n        231: aastore\n-       232: invokevirtual #47                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       232: invokevirtual #149                // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        235: pop\n        236: return\n       LineNumberTable:\n         line 28: 0\n         line 29: 5\n         line 30: 10\n         line 31: 25\n@@ -432,167 +432,167 @@\n         line 46: 212\n         line 47: 236\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     237     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n            70     167     1    ts   Ldev/langchain4j/agent/tool/ToolSpecification;\n     RuntimeVisibleAnnotations:\n-      0: #71()\n+      0: #190()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         3: ldc           #3                  // String name\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         8: ldc           #5                  // String description\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        13: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        16: ldc           #8                  // String type\n-        18: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        21: ldc           #10                 // String foo\n-        23: ldc           #11                 // String bar\n-        25: ldc           #12                 // String baz\n-        27: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        30: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        33: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        36: ldc           #10                 // String foo\n-        38: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        41: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        44: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-        47: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        50: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         3: ldc           #13                 // String name\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         8: ldc           #20                 // String description\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        13: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        16: ldc           #29                 // String type\n+        18: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        21: ldc           #36                 // String foo\n+        23: ldc           #38                 // String bar\n+        25: ldc           #40                 // String baz\n+        27: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        30: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        33: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        36: ldc           #36                 // String foo\n+        38: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        41: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        44: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        47: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        50: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n         53: astore_1\n-        54: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        57: ldc           #3                  // String name\n-        59: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        62: ldc           #5                  // String description\n-        64: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        67: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        70: ldc           #8                  // String type\n-        72: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        75: ldc           #10                 // String foo\n-        77: ldc           #11                 // String bar\n-        79: ldc           #12                 // String baz\n-        81: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        84: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        87: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        90: ldc           #10                 // String foo\n-        92: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        95: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        98: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       101: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       104: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+        54: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        57: ldc           #13                 // String name\n+        59: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        62: ldc           #20                 // String description\n+        64: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        67: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        70: ldc           #29                 // String type\n+        72: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        75: ldc           #36                 // String foo\n+        77: ldc           #38                 // String bar\n+        79: ldc           #40                 // String baz\n+        81: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        84: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        87: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        90: ldc           #36                 // String foo\n+        92: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        95: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        98: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       101: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       104: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n        107: astore_2\n        108: aload_0\n        109: aload_1\n-       110: invokevirtual #48                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       110: invokevirtual #155                // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        113: aload_1\n-       114: invokevirtual #49                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       117: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n+       114: invokevirtual #158                // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       117: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n        120: aconst_null\n-       121: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       124: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n-       127: new           #52                 // class java/lang/Object\n+       121: invokevirtual #163                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       124: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n+       127: new           #2                  // class java/lang/Object\n        130: dup\n        131: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-       134: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       137: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n+       134: invokevirtual #163                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       137: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n        140: aload_2\n-       141: invokevirtual #49                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       144: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n+       141: invokevirtual #158                // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       144: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n        147: aload_2\n-       148: invokevirtual #53                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       148: invokevirtual #166                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        151: pop\n        152: aload_0\n-       153: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       156: ldc           #54                 // String changed\n-       158: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       161: ldc           #5                  // String description\n-       163: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       166: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       169: ldc           #8                  // String type\n-       171: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       174: ldc           #10                 // String foo\n-       176: ldc           #11                 // String bar\n-       178: ldc           #12                 // String baz\n-       180: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       183: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       186: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       189: ldc           #10                 // String foo\n-       191: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       194: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       197: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       200: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       203: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-       206: invokevirtual #48                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       153: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       156: ldc           #169                // String changed\n+       158: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       161: ldc           #20                 // String description\n+       163: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       166: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       169: ldc           #29                 // String type\n+       171: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       174: ldc           #36                 // String foo\n+       176: ldc           #38                 // String bar\n+       178: ldc           #40                 // String baz\n+       180: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       183: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       186: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       189: ldc           #36                 // String foo\n+       191: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       194: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       197: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       200: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       203: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+       206: invokevirtual #155                // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        209: aload_1\n-       210: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       213: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n+       210: invokevirtual #163                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       213: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n        216: aload_1\n-       217: invokevirtual #55                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       217: invokevirtual #171                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        220: pop\n        221: aload_0\n-       222: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       225: ldc           #3                  // String name\n-       227: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       230: ldc           #54                 // String changed\n-       232: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       235: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       238: ldc           #8                  // String type\n-       240: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       243: ldc           #10                 // String foo\n-       245: ldc           #11                 // String bar\n-       247: ldc           #12                 // String baz\n-       249: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       252: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       255: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       258: ldc           #10                 // String foo\n-       260: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       263: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       266: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       269: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       272: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-       275: invokevirtual #48                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       222: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       225: ldc           #13                 // String name\n+       227: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       230: ldc           #169                // String changed\n+       232: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       235: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       238: ldc           #29                 // String type\n+       240: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       243: ldc           #36                 // String foo\n+       245: ldc           #38                 // String bar\n+       247: ldc           #40                 // String baz\n+       249: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       252: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       255: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       258: ldc           #36                 // String foo\n+       260: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       263: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       266: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       269: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       272: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+       275: invokevirtual #155                // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        278: aload_1\n-       279: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       282: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n+       279: invokevirtual #163                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       282: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n        285: aload_1\n-       286: invokevirtual #55                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       286: invokevirtual #171                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        289: pop\n        290: aload_0\n-       291: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       294: ldc           #3                  // String name\n-       296: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       299: ldc           #5                  // String description\n-       301: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       304: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       307: ldc           #8                  // String type\n-       309: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       312: ldc           #10                 // String foo\n-       314: ldc           #11                 // String bar\n-       316: ldc           #12                 // String baz\n-       318: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       321: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-       324: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       327: ldc           #54                 // String changed\n-       329: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       332: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-       335: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-       338: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-       341: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-       344: invokevirtual #48                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       291: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       294: ldc           #13                 // String name\n+       296: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       299: ldc           #20                 // String description\n+       301: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       304: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       307: ldc           #29                 // String type\n+       309: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       312: ldc           #36                 // String foo\n+       314: ldc           #38                 // String bar\n+       316: ldc           #40                 // String baz\n+       318: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       321: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+       324: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       327: ldc           #169                // String changed\n+       329: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       332: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+       335: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+       338: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+       341: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+       344: invokevirtual #155                // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        347: aload_1\n-       348: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       351: checkcast     #50                 // class org/assertj/core/api/ObjectAssert\n+       348: invokevirtual #163                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       351: checkcast     #159                // class org/assertj/core/api/ObjectAssert\n        354: aload_1\n-       355: invokevirtual #55                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       355: invokevirtual #171                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        358: pop\n        359: return\n       LineNumberTable:\n         line 51: 0\n         line 52: 5\n         line 53: 10\n         line 54: 13\n@@ -660,49 +660,49 @@\n         line 113: 359\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     360     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n            54     306     1   sp1   Ldev/langchain4j/agent/tool/ToolSpecification;\n           108     252     2   sp2   Ldev/langchain4j/agent/tool/ToolSpecification;\n     RuntimeVisibleAnnotations:\n-      0: #71()\n+      0: #190()\n         org.junit.jupiter.api.Test\n \n   public void test_toString();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         3: ldc           #3                  // String name\n-         5: invokevirtual #4                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         8: ldc           #5                  // String description\n-        10: invokevirtual #6                  // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        13: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        16: ldc           #8                  // String type\n-        18: invokevirtual #9                  // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        21: ldc           #10                 // String foo\n-        23: ldc           #11                 // String bar\n-        25: ldc           #12                 // String baz\n-        27: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        30: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-        33: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        36: ldc           #10                 // String foo\n-        38: invokestatic  #15                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        41: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n-        44: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n-        47: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        50: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+         0: invokestatic  #7                  // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         3: ldc           #13                 // String name\n+         5: invokevirtual #15                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         8: ldc           #20                 // String description\n+        10: invokevirtual #22                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.description:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        13: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolParameters.builder:()Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        16: ldc           #29                 // String type\n+        18: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.type:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        21: ldc           #36                 // String foo\n+        23: ldc           #38                 // String bar\n+        25: ldc           #40                 // String baz\n+        27: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        30: invokestatic  #42                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        33: invokevirtual #48                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.properties:(Ljava/util/Map;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        36: ldc           #36                 // String foo\n+        38: invokestatic  #52                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        41: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.required:(Ljava/util/List;)Ldev/langchain4j/agent/tool/ToolParameters$Builder;\n+        44: invokevirtual #60                 // Method dev/langchain4j/agent/tool/ToolParameters$Builder.build:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        47: invokevirtual #64                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.parameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        50: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n         53: astore_1\n         54: aload_0\n         55: aload_1\n-        56: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolSpecification.toString:()Ljava/lang/String;\n-        59: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        62: ldc           #57                 // String ToolSpecification { name = \\\"name\\\", description = \\\"description\\\", parameters = ToolParameters { type = \\\"type\\\", properties = {foo={bar=baz}}, required = [foo] } }\n-        64: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        56: invokevirtual #174                // Method dev/langchain4j/agent/tool/ToolSpecification.toString:()Ljava/lang/String;\n+        59: invokevirtual #74                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        62: ldc           #177                // String ToolSpecification { name = \\\"name\\\", description = \\\"description\\\", parameters = ToolParameters { type = \\\"type\\\", properties = {foo={bar=baz}}, required = [foo] } }\n+        64: invokevirtual #80                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         67: pop\n         68: return\n       LineNumberTable:\n         line 117: 0\n         line 118: 5\n         line 119: 10\n         line 120: 13\n@@ -716,14 +716,14 @@\n         line 128: 64\n         line 130: 68\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      69     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationTest;\n            54      15     1   sp1   Ldev/langchain4j/agent/tool/ToolSpecification;\n     RuntimeVisibleAnnotations:\n-      0: #71()\n+      0: #190()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ToolSpecificationTest.java\"\n InnerClasses:\n-  public static final #147= #83 of #80;   // Builder=class dev/langchain4j/agent/tool/ToolSpecification$Builder of class dev/langchain4j/agent/tool/ToolSpecification\n-  public static final #147= #90 of #87;   // Builder=class dev/langchain4j/agent/tool/ToolParameters$Builder of class dev/langchain4j/agent/tool/ToolParameters\n+  public static final #199= #16 of #8;    // Builder=class dev/langchain4j/agent/tool/ToolSpecification$Builder of class dev/langchain4j/agent/tool/ToolSpecification\n+  public static final #199= #32 of #25;   // Builder=class dev/langchain4j/agent/tool/ToolParameters$Builder of class dev/langchain4j/agent/tool/ToolParameters\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolSpecificationsTest$E.class", "source2": "dev/langchain4j/agent/tool/ToolSpecificationsTest$E.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -11,10 +11,10 @@\n         return Enum.valueOf(E.class, name);\n     }\n     \n     static {\n         E.A = new E(\"A\", 0);\n         E.B = new E(\"B\", 1);\n         E.C = new E(\"C\", 2);\n-        E.$VALUES = new E[] { E.A, E.B, E.C };\n+        E.$VALUES = $values();\n     }\n }\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper.class", "source2": "dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,110 +1,110 @@\n-  SHA-256 checksum 35b06060282e3f5e711b9666b6751ce812cf7440fb38b3399137580bcb2f5f9f\n+  SHA-256 checksum 6a089c7d60749ee95fccf2803e44c4158e60f8092034f29413a3fec0fd0fcb0f\n   Compiled from \"ToolSpecificationsTest.java\"\n public class dev.langchain4j.agent.tool.ToolSpecificationsTest$Wrapper\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #2                          // dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper\n-  super_class: #3                         // java/lang/Object\n+  this_class: #7                          // dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-   #1 = Methodref          #3.#88         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #90            // dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper\n-   #3 = Class              #91            // java/lang/Object\n-   #4 = Utf8               <init>\n-   #5 = Utf8               ()V\n-   #6 = Utf8               Code\n-   #7 = Utf8               LineNumberTable\n-   #8 = Utf8               LocalVariableTable\n-   #9 = Utf8               this\n-  #10 = Utf8               Wrapper\n-  #11 = Utf8               InnerClasses\n-  #12 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper;\n-  #13 = Utf8               f\n-  #14 = Class              #92            // dev/langchain4j/agent/tool/ToolSpecificationsTest$E\n-  #15 = Utf8               E\n-  #16 = Utf8               (Ljava/lang/String;ZLjava/lang/Boolean;BLjava/lang/Byte;SLjava/lang/Short;ILjava/lang/Integer;JLjava/lang/Long;Ljava/math/BigInteger;FLjava/lang/Float;DLjava/lang/Double;Ljava/math/BigDecimal;[Ljava/lang/String;Ljava/util/List;Ljava/util/Set;Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;Ljava/lang/Object;)I\n-  #17 = Utf8               p0\n-  #18 = Utf8               Ljava/lang/String;\n-  #19 = Utf8               p1\n-  #20 = Utf8               Z\n-  #21 = Utf8               p2\n-  #22 = Utf8               Ljava/lang/Boolean;\n-  #23 = Utf8               p3\n-  #24 = Utf8               B\n-  #25 = Utf8               p4\n-  #26 = Utf8               Ljava/lang/Byte;\n-  #27 = Utf8               p5\n-  #28 = Utf8               S\n-  #29 = Utf8               p6\n-  #30 = Utf8               Ljava/lang/Short;\n-  #31 = Utf8               p7\n-  #32 = Utf8               I\n-  #33 = Utf8               p8\n-  #34 = Utf8               Ljava/lang/Integer;\n-  #35 = Utf8               p9\n-  #36 = Utf8               J\n-  #37 = Utf8               p10\n-  #38 = Utf8               Ljava/lang/Long;\n-  #39 = Utf8               p11\n-  #40 = Utf8               Ljava/math/BigInteger;\n-  #41 = Utf8               p12\n-  #42 = Utf8               F\n-  #43 = Utf8               p13\n-  #44 = Utf8               Ljava/lang/Float;\n-  #45 = Utf8               p14\n-  #46 = Utf8               D\n-  #47 = Utf8               p15\n-  #48 = Utf8               Ljava/lang/Double;\n-  #49 = Utf8               p16\n-  #50 = Utf8               Ljava/math/BigDecimal;\n-  #51 = Utf8               p17\n-  #52 = Utf8               [Ljava/lang/String;\n-  #53 = Utf8               p18\n-  #54 = Utf8               Ljava/util/List;\n-  #55 = Utf8               p19\n-  #56 = Utf8               Ljava/util/Set;\n-  #57 = Utf8               p20\n-  #58 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;\n-  #59 = Utf8               p21\n-  #60 = Utf8               Ljava/lang/Object;\n-  #61 = Utf8               LocalVariableTypeTable\n-  #62 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-  #63 = Utf8               Ljava/util/Set<Ljava/lang/String;>;\n-  #64 = Utf8               Signature\n-  #65 = Utf8               (Ljava/lang/String;ZLjava/lang/Boolean;BLjava/lang/Byte;SLjava/lang/Short;ILjava/lang/Integer;JLjava/lang/Long;Ljava/math/BigInteger;FLjava/lang/Float;DLjava/lang/Double;Ljava/math/BigDecimal;[Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;Ljava/lang/Object;)I\n-  #66 = Utf8               RuntimeVisibleAnnotations\n-  #67 = Utf8               Ldev/langchain4j/agent/tool/Tool;\n-  #68 = Utf8               value\n-  #69 = Utf8               line1\n-  #70 = Utf8               line2\n-  #71 = Utf8               RuntimeVisibleParameterAnnotations\n-  #72 = Utf8               Ldev/langchain4j/agent/tool/P;\n-  #73 = Utf8               foo\n-  #74 = Utf8               b2\n-  #75 = Utf8               biggy\n-  #76 = Utf8               bigger\n-  #77 = Utf8               g\n-  #78 = Utf8               (Ljava/lang/String;)I\n-  #79 = Utf8               memoryId\n-  #80 = Utf8               name\n-  #81 = Utf8               func_name\n-  #82 = Utf8               Ldev/langchain4j/agent/tool/ToolMemoryId;\n-  #83 = Utf8               unused\n-  #84 = Utf8               (I)I\n-  #85 = Utf8               i\n-  #86 = Utf8               SourceFile\n-  #87 = Utf8               ToolSpecificationsTest.java\n-  #88 = NameAndType        #4:#5          // \"<init>\":()V\n-  #89 = Class              #93            // dev/langchain4j/agent/tool/ToolSpecificationsTest\n-  #90 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper\n-  #91 = Utf8               java/lang/Object\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper\n+   #8 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper\n+   #9 = Utf8               Code\n+  #10 = Utf8               LineNumberTable\n+  #11 = Utf8               LocalVariableTable\n+  #12 = Utf8               this\n+  #13 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper;\n+  #14 = Utf8               f\n+  #15 = Utf8               (Ljava/lang/String;ZLjava/lang/Boolean;BLjava/lang/Byte;SLjava/lang/Short;ILjava/lang/Integer;JLjava/lang/Long;Ljava/math/BigInteger;FLjava/lang/Float;DLjava/lang/Double;Ljava/math/BigDecimal;[Ljava/lang/String;Ljava/util/List;Ljava/util/Set;Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;Ljava/lang/Object;)I\n+  #16 = Utf8               p0\n+  #17 = Utf8               Ljava/lang/String;\n+  #18 = Utf8               p1\n+  #19 = Utf8               Z\n+  #20 = Utf8               p2\n+  #21 = Utf8               Ljava/lang/Boolean;\n+  #22 = Utf8               p3\n+  #23 = Utf8               B\n+  #24 = Utf8               p4\n+  #25 = Utf8               Ljava/lang/Byte;\n+  #26 = Utf8               p5\n+  #27 = Utf8               S\n+  #28 = Utf8               p6\n+  #29 = Utf8               Ljava/lang/Short;\n+  #30 = Utf8               p7\n+  #31 = Utf8               I\n+  #32 = Utf8               p8\n+  #33 = Utf8               Ljava/lang/Integer;\n+  #34 = Utf8               p9\n+  #35 = Utf8               J\n+  #36 = Utf8               p10\n+  #37 = Utf8               Ljava/lang/Long;\n+  #38 = Utf8               p11\n+  #39 = Utf8               Ljava/math/BigInteger;\n+  #40 = Utf8               p12\n+  #41 = Utf8               F\n+  #42 = Utf8               p13\n+  #43 = Utf8               Ljava/lang/Float;\n+  #44 = Utf8               p14\n+  #45 = Utf8               D\n+  #46 = Utf8               p15\n+  #47 = Utf8               Ljava/lang/Double;\n+  #48 = Utf8               p16\n+  #49 = Utf8               Ljava/math/BigDecimal;\n+  #50 = Utf8               p17\n+  #51 = Utf8               [Ljava/lang/String;\n+  #52 = Utf8               p18\n+  #53 = Utf8               Ljava/util/List;\n+  #54 = Utf8               p19\n+  #55 = Utf8               Ljava/util/Set;\n+  #56 = Utf8               p20\n+  #57 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;\n+  #58 = Utf8               p21\n+  #59 = Utf8               Ljava/lang/Object;\n+  #60 = Utf8               LocalVariableTypeTable\n+  #61 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+  #62 = Utf8               Ljava/util/Set<Ljava/lang/String;>;\n+  #63 = Utf8               Signature\n+  #64 = Utf8               (Ljava/lang/String;ZLjava/lang/Boolean;BLjava/lang/Byte;SLjava/lang/Short;ILjava/lang/Integer;JLjava/lang/Long;Ljava/math/BigInteger;FLjava/lang/Float;DLjava/lang/Double;Ljava/math/BigDecimal;[Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;Ljava/lang/Object;)I\n+  #65 = Utf8               RuntimeVisibleAnnotations\n+  #66 = Utf8               Ldev/langchain4j/agent/tool/Tool;\n+  #67 = Utf8               value\n+  #68 = Utf8               line1\n+  #69 = Utf8               line2\n+  #70 = Utf8               RuntimeVisibleParameterAnnotations\n+  #71 = Utf8               Ldev/langchain4j/agent/tool/P;\n+  #72 = Utf8               foo\n+  #73 = Utf8               b2\n+  #74 = Utf8               biggy\n+  #75 = Utf8               bigger\n+  #76 = Utf8               g\n+  #77 = Utf8               (Ljava/lang/String;)I\n+  #78 = Utf8               memoryId\n+  #79 = Utf8               name\n+  #80 = Utf8               func_name\n+  #81 = Utf8               Ldev/langchain4j/agent/tool/ToolMemoryId;\n+  #82 = Utf8               unused\n+  #83 = Utf8               (I)I\n+  #84 = Utf8               i\n+  #85 = Utf8               SourceFile\n+  #86 = Utf8               ToolSpecificationsTest.java\n+  #87 = Utf8               InnerClasses\n+  #88 = Class              #89            // dev/langchain4j/agent/tool/ToolSpecificationsTest\n+  #89 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationsTest\n+  #90 = Utf8               Wrapper\n+  #91 = Class              #92            // dev/langchain4j/agent/tool/ToolSpecificationsTest$E\n   #92 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationsTest$E\n-  #93 = Utf8               dev/langchain4j/agent/tool/ToolSpecificationsTest\n+  #93 = Utf8               E\n {\n   public dev.langchain4j.agent.tool.ToolSpecificationsTest$Wrapper();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -150,51 +150,51 @@\n             0       3    22   p19   Ljava/util/Set;\n             0       3    23   p20   Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;\n             0       3    24   p21   Ljava/lang/Object;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       3    21   p18   Ljava/util/List<Ljava/lang/String;>;\n             0       3    22   p19   Ljava/util/Set<Ljava/lang/String;>;\n-    Signature: #65                          // (Ljava/lang/String;ZLjava/lang/Boolean;BLjava/lang/Byte;SLjava/lang/Short;ILjava/lang/Integer;JLjava/lang/Long;Ljava/math/BigInteger;FLjava/lang/Float;DLjava/lang/Double;Ljava/math/BigDecimal;[Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;Ljava/lang/Object;)I\n+    Signature: #64                          // (Ljava/lang/String;ZLjava/lang/Boolean;BLjava/lang/Byte;SLjava/lang/Short;ILjava/lang/Integer;JLjava/lang/Long;Ljava/math/BigInteger;FLjava/lang/Float;DLjava/lang/Double;Ljava/math/BigDecimal;[Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;Ldev/langchain4j/agent/tool/ToolSpecificationsTest$E;Ljava/lang/Object;)I\n     RuntimeVisibleAnnotations:\n-      0: #67(#68=[s#69,s#70])\n+      0: #66(#67=[s#68,s#69])\n         dev.langchain4j.agent.tool.Tool(\n           value=[\"line1\",\"line2\"]\n         )\n     RuntimeVisibleParameterAnnotations:\n       parameter 0:\n-        0: #72(#68=s#73)\n+        0: #71(#67=s#72)\n           dev.langchain4j.agent.tool.P(\n             value=\"foo\"\n           )\n       parameter 1:\n       parameter 2:\n-        0: #72(#68=s#74)\n+        0: #71(#67=s#73)\n           dev.langchain4j.agent.tool.P(\n             value=\"b2\"\n           )\n       parameter 3:\n       parameter 4:\n       parameter 5:\n       parameter 6:\n       parameter 7:\n       parameter 8:\n       parameter 9:\n       parameter 10:\n       parameter 11:\n-        0: #72(#68=s#75)\n+        0: #71(#67=s#74)\n           dev.langchain4j.agent.tool.P(\n             value=\"biggy\"\n           )\n       parameter 12:\n       parameter 13:\n       parameter 14:\n       parameter 15:\n       parameter 16:\n-        0: #72(#68=s#76)\n+        0: #71(#67=s#75)\n           dev.langchain4j.agent.tool.P(\n             value=\"bigger\"\n           )\n       parameter 17:\n       parameter 18:\n       parameter 19:\n       parameter 20:\n@@ -210,21 +210,21 @@\n       LineNumberTable:\n         line 56: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       3     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper;\n             0       3     1 memoryId   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #67(#80=s#81)\n+      0: #66(#79=s#80)\n         dev.langchain4j.agent.tool.Tool(\n           name=\"func_name\"\n         )\n     RuntimeVisibleParameterAnnotations:\n       parameter 0:\n-        0: #82()\n+        0: #81()\n           dev.langchain4j.agent.tool.ToolMemoryId\n \n   public int unused(int);\n     descriptor: (I)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=2, args_size=2\n@@ -235,9 +235,9 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       3     0  this   Ldev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper;\n             0       3     1     i   I\n }\n SourceFile: \"ToolSpecificationsTest.java\"\n InnerClasses:\n-  public static #10= #2 of #89;           // Wrapper=class dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper of class dev/langchain4j/agent/tool/ToolSpecificationsTest\n-  public static final #15= #14 of #89;    // E=class dev/langchain4j/agent/tool/ToolSpecificationsTest$E of class dev/langchain4j/agent/tool/ToolSpecificationsTest\n+  public static #90= #7 of #88;           // Wrapper=class dev/langchain4j/agent/tool/ToolSpecificationsTest$Wrapper of class dev/langchain4j/agent/tool/ToolSpecificationsTest\n+  public static final #93= #91 of #88;    // E=class dev/langchain4j/agent/tool/ToolSpecificationsTest$E of class dev/langchain4j/agent/tool/ToolSpecificationsTest\n"}]}, {"source1": "dev/langchain4j/agent/tool/ToolSpecificationsTest.class", "source2": "dev/langchain4j/agent/tool/ToolSpecificationsTest.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -1,12 +1,13 @@\n \n package dev.langchain4j.agent.tool;\n \n import java.lang.reflect.Parameter;\n import java.util.function.Consumer;\n+import java.util.Objects;\n import java.util.ArrayList;\n import java.util.Arrays;\n import org.assertj.core.api.MapAssert;\n import java.util.HashMap;\n import java.util.Map;\n import java.util.Set;\n import java.util.List;\n@@ -92,13 +93,16 @@\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[14])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.NUMBER });\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[15])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.NUMBER });\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[16])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.NUMBER, JsonSchemaProperty.description(\"bigger\") });\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[17])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.ARRAY });\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[18])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.ARRAY });\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[19])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.ARRAY });\n         final List<JsonSchemaProperty> properties = new ArrayList<JsonSchemaProperty>();\n-        ToolSpecifications.toJsonSchemaProperties(ps[20]).forEach(properties::add);\n-        this.assertThat((Object)properties.get(0)).isEqualTo((Object)JsonSchemaProperty.STRING);\n+        final Iterable jsonSchemaProperties = ToolSpecifications.toJsonSchemaProperties(ps[20]);\n+        final List<JsonSchemaProperty> obj = properties;\n+        Objects.requireNonNull((ArrayList)obj);\n+        jsonSchemaProperties.forEach(obj::add);\n+        this.assertThat((Object)(JsonSchemaProperty)properties.get(0)).isEqualTo((Object)JsonSchemaProperty.STRING);\n         this.assertThat(Arrays.equals((Object[])((JsonSchemaProperty)properties.get(1)).value(), (Object[])new ToolSpecificationsTest.E[] { ToolSpecificationsTest.E.A, ToolSpecificationsTest.E.B, ToolSpecificationsTest.E.C })).isTrue();\n         this.assertThat(ToolSpecifications.toJsonSchemaProperties(ps[21])).containsExactly((Object[])new JsonSchemaProperty[] { JsonSchemaProperty.OBJECT });\n     }\n }\n"}]}, {"source1": "dev/langchain4j/classification/TextClassifierTest$CatClassifier.class", "source2": "dev/langchain4j/classification/TextClassifierTest$CatClassifier.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,90 +1,89 @@\n-  SHA-256 checksum ff11d18dfe38e580beeb448356a1d71610e0314103d5ef840b9ea14b27dc161c\n+  SHA-256 checksum 4c714c167663c96cd350159530b69d657e42b7ce61e33dc0f4fd34123d9a7d9d\n   Compiled from \"TextClassifierTest.java\"\n public class dev.langchain4j.classification.TextClassifierTest$CatClassifier extends java.lang.Object implements dev.langchain4j.classification.TextClassifier<dev.langchain4j.classification.TextClassifierTest$Categories>\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #14                         // dev/langchain4j/classification/TextClassifierTest$CatClassifier\n-  super_class: #15                        // java/lang/Object\n+  this_class: #45                         // dev/langchain4j/classification/TextClassifierTest$CatClassifier\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 3\n Constant pool:\n-   #1 = Methodref          #15.#43        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #44            // java/util/HashSet\n-   #3 = Methodref          #2.#43         // java/util/HashSet.\"<init>\":()V\n-   #4 = String             #45            // cat\n-   #5 = Methodref          #46.#47        // java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n-   #6 = Fieldref           #33.#48        // dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-   #7 = InterfaceMethodref #49.#50        // java/util/Set.add:(Ljava/lang/Object;)Z\n-   #8 = String             #51            // dog\n-   #9 = Fieldref           #33.#52        // dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #10 = String             #53            // fish\n-  #11 = Fieldref           #33.#54        // dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #12 = Class              #55            // java/util/ArrayList\n-  #13 = Methodref          #12.#56        // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n-  #14 = Class              #58            // dev/langchain4j/classification/TextClassifierTest$CatClassifier\n-  #15 = Class              #59            // java/lang/Object\n-  #16 = Class              #60            // dev/langchain4j/classification/TextClassifier\n-  #17 = Utf8               <init>\n-  #18 = Utf8               ()V\n-  #19 = Utf8               Code\n-  #20 = Utf8               LineNumberTable\n-  #21 = Utf8               LocalVariableTable\n-  #22 = Utf8               this\n-  #23 = Utf8               CatClassifier\n-  #24 = Utf8               InnerClasses\n-  #25 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$CatClassifier;\n-  #26 = Utf8               classify\n-  #27 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n-  #28 = Utf8               text\n-  #29 = Utf8               Ljava/lang/String;\n-  #30 = Utf8               result\n-  #31 = Utf8               Ljava/util/Set;\n-  #32 = Utf8               LocalVariableTypeTable\n-  #33 = Class              #61            // dev/langchain4j/classification/TextClassifierTest$Categories\n-  #34 = Utf8               Categories\n-  #35 = Utf8               Ljava/util/Set<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n-  #36 = Utf8               StackMapTable\n-  #37 = Class              #62            // java/util/Set\n-  #38 = Utf8               Signature\n-  #39 = Utf8               (Ljava/lang/String;)Ljava/util/List<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n-  #40 = Utf8               Ljava/lang/Object;Ldev/langchain4j/classification/TextClassifier<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n-  #41 = Utf8               SourceFile\n-  #42 = Utf8               TextClassifierTest.java\n-  #43 = NameAndType        #17:#18        // \"<init>\":()V\n-  #44 = Utf8               java/util/HashSet\n-  #45 = Utf8               cat\n-  #46 = Class              #63            // java/lang/String\n-  #47 = NameAndType        #64:#65        // contains:(Ljava/lang/CharSequence;)Z\n-  #48 = NameAndType        #66:#67        // CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #49 = Class              #62            // java/util/Set\n-  #50 = NameAndType        #68:#69        // add:(Ljava/lang/Object;)Z\n-  #51 = Utf8               dog\n-  #52 = NameAndType        #70:#67        // DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #53 = Utf8               fish\n-  #54 = NameAndType        #71:#67        // FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #55 = Utf8               java/util/ArrayList\n-  #56 = NameAndType        #17:#72        // \"<init>\":(Ljava/util/Collection;)V\n-  #57 = Class              #73            // dev/langchain4j/classification/TextClassifierTest\n-  #58 = Utf8               dev/langchain4j/classification/TextClassifierTest$CatClassifier\n-  #59 = Utf8               java/lang/Object\n-  #60 = Utf8               dev/langchain4j/classification/TextClassifier\n-  #61 = Utf8               dev/langchain4j/classification/TextClassifierTest$Categories\n-  #62 = Utf8               java/util/Set\n-  #63 = Utf8               java/lang/String\n-  #64 = Utf8               contains\n-  #65 = Utf8               (Ljava/lang/CharSequence;)Z\n-  #66 = Utf8               CAT\n-  #67 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #68 = Utf8               add\n-  #69 = Utf8               (Ljava/lang/Object;)Z\n-  #70 = Utf8               DOG\n-  #71 = Utf8               FISH\n-  #72 = Utf8               (Ljava/util/Collection;)V\n-  #73 = Utf8               dev/langchain4j/classification/TextClassifierTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // java/util/HashSet\n+   #8 = Utf8               java/util/HashSet\n+   #9 = Methodref          #7.#3          // java/util/HashSet.\"<init>\":()V\n+  #10 = String             #11            // cat\n+  #11 = Utf8               cat\n+  #12 = Methodref          #13.#14        // java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n+  #13 = Class              #15            // java/lang/String\n+  #14 = NameAndType        #16:#17        // contains:(Ljava/lang/CharSequence;)Z\n+  #15 = Utf8               java/lang/String\n+  #16 = Utf8               contains\n+  #17 = Utf8               (Ljava/lang/CharSequence;)Z\n+  #18 = Fieldref           #19.#20        // dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #19 = Class              #21            // dev/langchain4j/classification/TextClassifierTest$Categories\n+  #20 = NameAndType        #22:#23        // CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #21 = Utf8               dev/langchain4j/classification/TextClassifierTest$Categories\n+  #22 = Utf8               CAT\n+  #23 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #24 = InterfaceMethodref #25.#26        // java/util/Set.add:(Ljava/lang/Object;)Z\n+  #25 = Class              #27            // java/util/Set\n+  #26 = NameAndType        #28:#29        // add:(Ljava/lang/Object;)Z\n+  #27 = Utf8               java/util/Set\n+  #28 = Utf8               add\n+  #29 = Utf8               (Ljava/lang/Object;)Z\n+  #30 = String             #31            // dog\n+  #31 = Utf8               dog\n+  #32 = Fieldref           #19.#33        // dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #33 = NameAndType        #34:#23        // DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #34 = Utf8               DOG\n+  #35 = String             #36            // fish\n+  #36 = Utf8               fish\n+  #37 = Fieldref           #19.#38        // dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #38 = NameAndType        #39:#23        // FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #39 = Utf8               FISH\n+  #40 = Class              #41            // java/util/ArrayList\n+  #41 = Utf8               java/util/ArrayList\n+  #42 = Methodref          #40.#43        // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+  #43 = NameAndType        #5:#44         // \"<init>\":(Ljava/util/Collection;)V\n+  #44 = Utf8               (Ljava/util/Collection;)V\n+  #45 = Class              #46            // dev/langchain4j/classification/TextClassifierTest$CatClassifier\n+  #46 = Utf8               dev/langchain4j/classification/TextClassifierTest$CatClassifier\n+  #47 = Class              #48            // dev/langchain4j/classification/TextClassifier\n+  #48 = Utf8               dev/langchain4j/classification/TextClassifier\n+  #49 = Utf8               Code\n+  #50 = Utf8               LineNumberTable\n+  #51 = Utf8               LocalVariableTable\n+  #52 = Utf8               this\n+  #53 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$CatClassifier;\n+  #54 = Utf8               classify\n+  #55 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n+  #56 = Utf8               text\n+  #57 = Utf8               Ljava/lang/String;\n+  #58 = Utf8               result\n+  #59 = Utf8               Ljava/util/Set;\n+  #60 = Utf8               LocalVariableTypeTable\n+  #61 = Utf8               Ljava/util/Set<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n+  #62 = Utf8               StackMapTable\n+  #63 = Utf8               Signature\n+  #64 = Utf8               (Ljava/lang/String;)Ljava/util/List<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n+  #65 = Utf8               Ljava/lang/Object;Ldev/langchain4j/classification/TextClassifier<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n+  #66 = Utf8               SourceFile\n+  #67 = Utf8               TextClassifierTest.java\n+  #68 = Utf8               InnerClasses\n+  #69 = Class              #70            // dev/langchain4j/classification/TextClassifierTest\n+  #70 = Utf8               dev/langchain4j/classification/TextClassifierTest\n+  #71 = Utf8               Categories\n+  #72 = Utf8               CatClassifier\n {\n   public dev.langchain4j.classification.TextClassifierTest$CatClassifier();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -97,46 +96,46 @@\n             0       5     0  this   Ldev/langchain4j/classification/TextClassifierTest$CatClassifier;\n \n   public java.util.List<dev.langchain4j.classification.TextClassifierTest$Categories> classify(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=2\n-         0: new           #2                  // class java/util/HashSet\n+         0: new           #7                  // class java/util/HashSet\n          3: dup\n-         4: invokespecial #3                  // Method java/util/HashSet.\"<init>\":()V\n+         4: invokespecial #9                  // Method java/util/HashSet.\"<init>\":()V\n          7: astore_2\n          8: aload_1\n-         9: ldc           #4                  // String cat\n-        11: invokevirtual #5                  // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n+         9: ldc           #10                 // String cat\n+        11: invokevirtual #12                 // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n         14: ifeq          27\n         17: aload_2\n-        18: getstatic     #6                  // Field dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-        21: invokeinterface #7,  2            // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z\n+        18: getstatic     #18                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        21: invokeinterface #24,  2           // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z\n         26: pop\n         27: aload_1\n-        28: ldc           #8                  // String dog\n-        30: invokevirtual #5                  // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n+        28: ldc           #30                 // String dog\n+        30: invokevirtual #12                 // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n         33: ifeq          46\n         36: aload_2\n-        37: getstatic     #9                  // Field dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-        40: invokeinterface #7,  2            // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z\n+        37: getstatic     #32                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        40: invokeinterface #24,  2           // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z\n         45: pop\n         46: aload_1\n-        47: ldc           #10                 // String fish\n-        49: invokevirtual #5                  // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n+        47: ldc           #35                 // String fish\n+        49: invokevirtual #12                 // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n         52: ifeq          65\n         55: aload_2\n-        56: getstatic     #11                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-        59: invokeinterface #7,  2            // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z\n+        56: getstatic     #37                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        59: invokeinterface #24,  2           // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z\n         64: pop\n-        65: new           #12                 // class java/util/ArrayList\n+        65: new           #40                 // class java/util/ArrayList\n         68: dup\n         69: aload_2\n-        70: invokespecial #13                 // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+        70: invokespecial #42                 // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n         73: areturn\n       LineNumberTable:\n         line 21: 0\n         line 22: 8\n         line 23: 17\n         line 25: 27\n         line 26: 36\n@@ -153,14 +152,14 @@\n             8      66     2 result   Ljava/util/Set<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n       StackMapTable: number_of_entries = 3\n         frame_type = 252 /* append */\n           offset_delta = 27\n           locals = [ class java/util/Set ]\n         frame_type = 18 /* same */\n         frame_type = 18 /* same */\n-    Signature: #39                          // (Ljava/lang/String;)Ljava/util/List<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n+    Signature: #64                          // (Ljava/lang/String;)Ljava/util/List<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n }\n-Signature: #40                          // Ljava/lang/Object;Ldev/langchain4j/classification/TextClassifier<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n+Signature: #65                          // Ljava/lang/Object;Ldev/langchain4j/classification/TextClassifier<Ldev/langchain4j/classification/TextClassifierTest$Categories;>;\n SourceFile: \"TextClassifierTest.java\"\n InnerClasses:\n-  public static #23= #14 of #57;          // CatClassifier=class dev/langchain4j/classification/TextClassifierTest$CatClassifier of class dev/langchain4j/classification/TextClassifierTest\n-  public static final #34= #33 of #57;    // Categories=class dev/langchain4j/classification/TextClassifierTest$Categories of class dev/langchain4j/classification/TextClassifierTest\n+  public static final #71= #19 of #69;    // Categories=class dev/langchain4j/classification/TextClassifierTest$Categories of class dev/langchain4j/classification/TextClassifierTest\n+  public static #72= #45 of #69;          // CatClassifier=class dev/langchain4j/classification/TextClassifierTest$CatClassifier of class dev/langchain4j/classification/TextClassifierTest\n"}]}, {"source1": "dev/langchain4j/classification/TextClassifierTest$Categories.class", "source2": "dev/langchain4j/classification/TextClassifierTest$Categories.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -11,10 +11,10 @@\n         return Enum.valueOf(Categories.class, name);\n     }\n     \n     static {\n         Categories.CAT = new Categories(\"CAT\", 0);\n         Categories.DOG = new Categories(\"DOG\", 1);\n         Categories.FISH = new Categories(\"FISH\", 2);\n-        Categories.$VALUES = new Categories[] { Categories.CAT, Categories.DOG, Categories.FISH };\n+        Categories.$VALUES = $values();\n     }\n }\n"}]}, {"source1": "dev/langchain4j/classification/TextClassifierTest.class", "source2": "dev/langchain4j/classification/TextClassifierTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,94 +1,94 @@\n-  SHA-256 checksum 83e6e1b37b1c3d5f6fa4c9e4575655508913b08b3937d1be61a23a06bf81f9ab\n+  SHA-256 checksum 949592d2df9f1eccf4973732f75a7653702c48a50ac3b0d30a43f19ed88ac899\n   Compiled from \"TextClassifierTest.java\"\n class dev.langchain4j.classification.TextClassifierTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #18                         // dev/langchain4j/classification/TextClassifierTest\n-  super_class: #19                        // java/lang/Object\n+  this_class: #17                         // dev/langchain4j/classification/TextClassifierTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #19.#38        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #39            // dev/langchain4j/classification/TextClassifierTest$CatClassifier\n-   #3 = Methodref          #2.#38         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.\"<init>\":()V\n-   #4 = String             #40            // cat fish\n-   #5 = Methodref          #2.#41         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ljava/lang/String;)Ljava/util/List;\n-   #6 = Methodref          #18.#42        // dev/langchain4j/classification/TextClassifierTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #7 = Class              #43            // dev/langchain4j/classification/TextClassifierTest$Categories\n-   #8 = Fieldref           #7.#44         // dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-   #9 = Fieldref           #7.#45         // dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #10 = Methodref          #46.#47        // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #11 = String             #48            // dog fish\n-  #12 = Methodref          #49.#50        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #13 = Methodref          #2.#51         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n-  #14 = Fieldref           #7.#52         // dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #15 = String             #53            // dog cat\n-  #16 = Methodref          #54.#55        // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #17 = Methodref          #2.#56         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n-  #18 = Class              #57            // dev/langchain4j/classification/TextClassifierTest\n-  #19 = Class              #58            // java/lang/Object\n-  #20 = Class              #59            // org/assertj/core/api/WithAssertions\n-  #21 = Utf8               CatClassifier\n-  #22 = Utf8               InnerClasses\n-  #23 = Utf8               Categories\n-  #24 = Utf8               <init>\n-  #25 = Utf8               ()V\n-  #26 = Utf8               Code\n-  #27 = Utf8               LineNumberTable\n-  #28 = Utf8               LocalVariableTable\n-  #29 = Utf8               this\n-  #30 = Utf8               Ldev/langchain4j/classification/TextClassifierTest;\n-  #31 = Utf8               test\n-  #32 = Utf8               classifier\n-  #33 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$CatClassifier;\n-  #34 = Utf8               RuntimeVisibleAnnotations\n-  #35 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #36 = Utf8               SourceFile\n-  #37 = Utf8               TextClassifierTest.java\n-  #38 = NameAndType        #24:#25        // \"<init>\":()V\n-  #39 = Utf8               dev/langchain4j/classification/TextClassifierTest$CatClassifier\n-  #40 = Utf8               cat fish\n-  #41 = NameAndType        #60:#61        // classify:(Ljava/lang/String;)Ljava/util/List;\n-  #42 = NameAndType        #62:#63        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #43 = Utf8               dev/langchain4j/classification/TextClassifierTest$Categories\n-  #44 = NameAndType        #64:#65        // CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #45 = NameAndType        #66:#65        // FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #46 = Class              #67            // org/assertj/core/api/ListAssert\n-  #47 = NameAndType        #68:#69        // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #48 = Utf8               dog fish\n-  #49 = Class              #70            // dev/langchain4j/data/segment/TextSegment\n-  #50 = NameAndType        #71:#72        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #51 = NameAndType        #60:#73        // classify:(Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n-  #52 = NameAndType        #74:#65        // DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #53 = Utf8               dog cat\n-  #54 = Class              #75            // dev/langchain4j/data/document/Document\n-  #55 = NameAndType        #71:#76        // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #56 = NameAndType        #60:#77        // classify:(Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n-  #57 = Utf8               dev/langchain4j/classification/TextClassifierTest\n-  #58 = Utf8               java/lang/Object\n-  #59 = Utf8               org/assertj/core/api/WithAssertions\n-  #60 = Utf8               classify\n-  #61 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n-  #62 = Utf8               assertThat\n-  #63 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #64 = Utf8               CAT\n-  #65 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$Categories;\n-  #66 = Utf8               FISH\n-  #67 = Utf8               org/assertj/core/api/ListAssert\n-  #68 = Utf8               containsOnly\n-  #69 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #70 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #71 = Utf8               from\n-  #72 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #73 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n-  #74 = Utf8               DOG\n-  #75 = Utf8               dev/langchain4j/data/document/Document\n-  #76 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #77 = Utf8               (Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/classification/TextClassifierTest$CatClassifier\n+   #8 = Utf8               dev/langchain4j/classification/TextClassifierTest$CatClassifier\n+   #9 = Methodref          #7.#3          // dev/langchain4j/classification/TextClassifierTest$CatClassifier.\"<init>\":()V\n+  #10 = String             #11            // cat fish\n+  #11 = Utf8               cat fish\n+  #12 = Methodref          #7.#13         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ljava/lang/String;)Ljava/util/List;\n+  #13 = NameAndType        #14:#15        // classify:(Ljava/lang/String;)Ljava/util/List;\n+  #14 = Utf8               classify\n+  #15 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n+  #16 = Methodref          #17.#18        // dev/langchain4j/classification/TextClassifierTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #17 = Class              #19            // dev/langchain4j/classification/TextClassifierTest\n+  #18 = NameAndType        #20:#21        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #19 = Utf8               dev/langchain4j/classification/TextClassifierTest\n+  #20 = Utf8               assertThat\n+  #21 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #22 = Class              #23            // dev/langchain4j/classification/TextClassifierTest$Categories\n+  #23 = Utf8               dev/langchain4j/classification/TextClassifierTest$Categories\n+  #24 = Fieldref           #22.#25        // dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #25 = NameAndType        #26:#27        // CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #26 = Utf8               CAT\n+  #27 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #28 = Fieldref           #22.#29        // dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #29 = NameAndType        #30:#27        // FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #30 = Utf8               FISH\n+  #31 = Methodref          #32.#33        // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #32 = Class              #34            // org/assertj/core/api/ListAssert\n+  #33 = NameAndType        #35:#36        // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #34 = Utf8               org/assertj/core/api/ListAssert\n+  #35 = Utf8               containsOnly\n+  #36 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #37 = String             #38            // dog fish\n+  #38 = Utf8               dog fish\n+  #39 = Methodref          #40.#41        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #40 = Class              #42            // dev/langchain4j/data/segment/TextSegment\n+  #41 = NameAndType        #43:#44        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #42 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #43 = Utf8               from\n+  #44 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #45 = Methodref          #7.#46         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n+  #46 = NameAndType        #14:#47        // classify:(Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n+  #47 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n+  #48 = Fieldref           #22.#49        // dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #49 = NameAndType        #50:#27        // DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+  #50 = Utf8               DOG\n+  #51 = String             #52            // dog cat\n+  #52 = Utf8               dog cat\n+  #53 = Methodref          #54.#55        // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #54 = Class              #56            // dev/langchain4j/data/document/Document\n+  #55 = NameAndType        #43:#57        // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #56 = Utf8               dev/langchain4j/data/document/Document\n+  #57 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #58 = Methodref          #7.#59         // dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n+  #59 = NameAndType        #14:#60        // classify:(Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n+  #60 = Utf8               (Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n+  #61 = Class              #62            // org/assertj/core/api/WithAssertions\n+  #62 = Utf8               org/assertj/core/api/WithAssertions\n+  #63 = Utf8               Code\n+  #64 = Utf8               LineNumberTable\n+  #65 = Utf8               LocalVariableTable\n+  #66 = Utf8               this\n+  #67 = Utf8               Ldev/langchain4j/classification/TextClassifierTest;\n+  #68 = Utf8               test\n+  #69 = Utf8               classifier\n+  #70 = Utf8               Ldev/langchain4j/classification/TextClassifierTest$CatClassifier;\n+  #71 = Utf8               RuntimeVisibleAnnotations\n+  #72 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #73 = Utf8               SourceFile\n+  #74 = Utf8               TextClassifierTest.java\n+  #75 = Utf8               InnerClasses\n+  #76 = Utf8               CatClassifier\n+  #77 = Utf8               Categories\n {\n   dev.langchain4j.classification.TextClassifierTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -101,84 +101,84 @@\n             0       5     0  this   Ldev/langchain4j/classification/TextClassifierTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/classification/TextClassifierTest$CatClassifier\n+         0: new           #7                  // class dev/langchain4j/classification/TextClassifierTest$CatClassifier\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String cat fish\n-        12: invokevirtual #5                  // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ljava/lang/String;)Ljava/util/List;\n-        15: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        10: ldc           #10                 // String cat fish\n+        12: invokevirtual #12                 // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ljava/lang/String;)Ljava/util/List;\n+        15: invokevirtual #16                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         18: iconst_2\n-        19: anewarray     #7                  // class dev/langchain4j/classification/TextClassifierTest$Categories\n+        19: anewarray     #22                 // class dev/langchain4j/classification/TextClassifierTest$Categories\n         22: dup\n         23: iconst_0\n-        24: getstatic     #8                  // Field dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        24: getstatic     #24                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n         27: aastore\n         28: dup\n         29: iconst_1\n-        30: getstatic     #9                  // Field dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        30: getstatic     #28                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n         33: aastore\n-        34: invokevirtual #10                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        34: invokevirtual #31                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         37: pop\n         38: aload_0\n         39: aload_1\n-        40: ldc           #11                 // String dog fish\n-        42: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        45: invokevirtual #13                 // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n-        48: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        40: ldc           #37                 // String dog fish\n+        42: invokestatic  #39                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        45: invokevirtual #45                 // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/segment/TextSegment;)Ljava/util/List;\n+        48: invokevirtual #16                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         51: iconst_2\n-        52: anewarray     #7                  // class dev/langchain4j/classification/TextClassifierTest$Categories\n+        52: anewarray     #22                 // class dev/langchain4j/classification/TextClassifierTest$Categories\n         55: dup\n         56: iconst_0\n-        57: getstatic     #14                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        57: getstatic     #48                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n         60: aastore\n         61: dup\n         62: iconst_1\n-        63: getstatic     #9                  // Field dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        63: getstatic     #28                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.FISH:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n         66: aastore\n-        67: invokevirtual #10                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        67: invokevirtual #31                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         70: pop\n         71: aload_0\n         72: aload_1\n-        73: ldc           #15                 // String dog cat\n-        75: invokestatic  #16                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-        78: invokevirtual #17                 // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n-        81: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        73: ldc           #51                 // String dog cat\n+        75: invokestatic  #53                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        78: invokevirtual #58                 // Method dev/langchain4j/classification/TextClassifierTest$CatClassifier.classify:(Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n+        81: invokevirtual #16                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         84: iconst_2\n-        85: anewarray     #7                  // class dev/langchain4j/classification/TextClassifierTest$Categories\n+        85: anewarray     #22                 // class dev/langchain4j/classification/TextClassifierTest$Categories\n         88: dup\n         89: iconst_0\n-        90: getstatic     #8                  // Field dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        90: getstatic     #24                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.CAT:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n         93: aastore\n         94: dup\n         95: iconst_1\n-        96: getstatic     #14                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n+        96: getstatic     #48                 // Field dev/langchain4j/classification/TextClassifierTest$Categories.DOG:Ldev/langchain4j/classification/TextClassifierTest$Categories;\n         99: aastore\n-       100: invokevirtual #10                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       100: invokevirtual #31                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        103: pop\n        104: return\n       LineNumberTable:\n         line 37: 0\n         line 39: 8\n         line 41: 38\n         line 42: 67\n         line 44: 71\n         line 45: 104\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     105     0  this   Ldev/langchain4j/classification/TextClassifierTest;\n             8      97     1 classifier   Ldev/langchain4j/classification/TextClassifierTest$CatClassifier;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #72()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TextClassifierTest.java\"\n InnerClasses:\n-  public static #21= #2 of #18;           // CatClassifier=class dev/langchain4j/classification/TextClassifierTest$CatClassifier of class dev/langchain4j/classification/TextClassifierTest\n-  public static final #23= #7 of #18;     // Categories=class dev/langchain4j/classification/TextClassifierTest$Categories of class dev/langchain4j/classification/TextClassifierTest\n+  public static #76= #7 of #17;           // CatClassifier=class dev/langchain4j/classification/TextClassifierTest$CatClassifier of class dev/langchain4j/classification/TextClassifierTest\n+  public static final #77= #22 of #17;    // Categories=class dev/langchain4j/classification/TextClassifierTest$Categories of class dev/langchain4j/classification/TextClassifierTest\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentLoaderTest$1.class", "source2": "dev/langchain4j/data/document/DocumentLoaderTest$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,113 +1,113 @@\n-  SHA-256 checksum df61ec658aa0690bd69799d6cbfd7d2c155e0cdb40945275b212035b54de8512\n+  SHA-256 checksum 94bdb7c8b189e794a5d29a6b116f5bb761ba1c0438edd6c621b320850c5fe64c\n   Compiled from \"DocumentLoaderTest.java\"\n class dev.langchain4j.data.document.DocumentLoaderTest$1 implements dev.langchain4j.data.document.DocumentSource\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #8                          // dev/langchain4j/data/document/DocumentLoaderTest$1\n-  super_class: #9                         // java/lang/Object\n+  this_class: #2                          // dev/langchain4j/data/document/DocumentLoaderTest$1\n+  super_class: #8                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 3, attributes: 3\n Constant pool:\n-   #1 = Fieldref           #8.#31         // dev/langchain4j/data/document/DocumentLoaderTest$1.this$0:Ldev/langchain4j/data/document/DocumentLoaderTest;\n-   #2 = Methodref          #9.#32         // java/lang/Object.\"<init>\":()V\n-   #3 = Class              #33            // java/io/IOException\n-   #4 = String             #34            // Failed to open input stream\n-   #5 = Methodref          #3.#35         // java/io/IOException.\"<init>\":(Ljava/lang/String;)V\n-   #6 = Class              #36            // dev/langchain4j/data/document/Metadata\n-   #7 = Methodref          #6.#32         // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-   #8 = Class              #37            // dev/langchain4j/data/document/DocumentLoaderTest$1\n-   #9 = Class              #38            // java/lang/Object\n-  #10 = Class              #39            // dev/langchain4j/data/document/DocumentSource\n-  #11 = Utf8               this$0\n-  #12 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest;\n-  #13 = Utf8               <init>\n-  #14 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n-  #15 = Utf8               Code\n-  #16 = Utf8               LineNumberTable\n-  #17 = Utf8               LocalVariableTable\n-  #18 = Utf8               this\n-  #19 = Utf8               InnerClasses\n-  #20 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$1;\n-  #21 = Utf8               inputStream\n-  #22 = Utf8               ()Ljava/io/InputStream;\n-  #23 = Utf8               Exceptions\n-  #24 = Utf8               metadata\n-  #25 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #26 = Utf8               SourceFile\n-  #27 = Utf8               DocumentLoaderTest.java\n-  #28 = Utf8               EnclosingMethod\n-  #29 = Class              #40            // dev/langchain4j/data/document/DocumentLoaderTest\n-  #30 = NameAndType        #41:#42        // lambda$test_load$0:()V\n-  #31 = NameAndType        #11:#12        // this$0:Ldev/langchain4j/data/document/DocumentLoaderTest;\n-  #32 = NameAndType        #13:#42        // \"<init>\":()V\n-  #33 = Utf8               java/io/IOException\n-  #34 = Utf8               Failed to open input stream\n-  #35 = NameAndType        #13:#43        // \"<init>\":(Ljava/lang/String;)V\n-  #36 = Utf8               dev/langchain4j/data/document/Metadata\n-  #37 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$1\n-  #38 = Utf8               java/lang/Object\n-  #39 = Utf8               dev/langchain4j/data/document/DocumentSource\n+   #1 = Fieldref           #2.#3          // dev/langchain4j/data/document/DocumentLoaderTest$1.this$0:Ldev/langchain4j/data/document/DocumentLoaderTest;\n+   #2 = Class              #4             // dev/langchain4j/data/document/DocumentLoaderTest$1\n+   #3 = NameAndType        #5:#6          // this$0:Ldev/langchain4j/data/document/DocumentLoaderTest;\n+   #4 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$1\n+   #5 = Utf8               this$0\n+   #6 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest;\n+   #7 = Methodref          #8.#9          // java/lang/Object.\"<init>\":()V\n+   #8 = Class              #10            // java/lang/Object\n+   #9 = NameAndType        #11:#12        // \"<init>\":()V\n+  #10 = Utf8               java/lang/Object\n+  #11 = Utf8               <init>\n+  #12 = Utf8               ()V\n+  #13 = Class              #14            // java/io/IOException\n+  #14 = Utf8               java/io/IOException\n+  #15 = String             #16            // Failed to open input stream\n+  #16 = Utf8               Failed to open input stream\n+  #17 = Methodref          #13.#18        // java/io/IOException.\"<init>\":(Ljava/lang/String;)V\n+  #18 = NameAndType        #11:#19        // \"<init>\":(Ljava/lang/String;)V\n+  #19 = Utf8               (Ljava/lang/String;)V\n+  #20 = Class              #21            // dev/langchain4j/data/document/Metadata\n+  #21 = Utf8               dev/langchain4j/data/document/Metadata\n+  #22 = Methodref          #20.#9         // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+  #23 = Class              #24            // dev/langchain4j/data/document/DocumentSource\n+  #24 = Utf8               dev/langchain4j/data/document/DocumentSource\n+  #25 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n+  #26 = Utf8               Code\n+  #27 = Utf8               LineNumberTable\n+  #28 = Utf8               LocalVariableTable\n+  #29 = Utf8               this\n+  #30 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$1;\n+  #31 = Utf8               inputStream\n+  #32 = Utf8               ()Ljava/io/InputStream;\n+  #33 = Utf8               Exceptions\n+  #34 = Utf8               metadata\n+  #35 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+  #36 = Utf8               SourceFile\n+  #37 = Utf8               DocumentLoaderTest.java\n+  #38 = Utf8               EnclosingMethod\n+  #39 = Class              #40            // dev/langchain4j/data/document/DocumentLoaderTest\n   #40 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n-  #41 = Utf8               lambda$test_load$0\n-  #42 = Utf8               ()V\n-  #43 = Utf8               (Ljava/lang/String;)V\n+  #41 = NameAndType        #42:#12        // test_load:()V\n+  #42 = Utf8               test_load\n+  #43 = Utf8               InnerClasses\n {\n   final dev.langchain4j.data.document.DocumentLoaderTest this$0;\n     descriptor: Ldev/langchain4j/data/document/DocumentLoaderTest;\n     flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC\n \n   dev.langchain4j.data.document.DocumentLoaderTest$1(dev.langchain4j.data.document.DocumentLoaderTest);\n     descriptor: (Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n          2: putfield      #1                  // Field this$0:Ldev/langchain4j/data/document/DocumentLoaderTest;\n          5: aload_0\n-         6: invokespecial #2                  // Method java/lang/Object.\"<init>\":()V\n+         6: invokespecial #7                  // Method java/lang/Object.\"<init>\":()V\n          9: return\n       LineNumberTable:\n         line 78: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest$1;\n             0      10     1 this$0   Ldev/langchain4j/data/document/DocumentLoaderTest;\n \n   public java.io.InputStream inputStream() throws java.io.IOException;\n     descriptor: ()Ljava/io/InputStream;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #3                  // class java/io/IOException\n+         0: new           #13                 // class java/io/IOException\n          3: dup\n-         4: ldc           #4                  // String Failed to open input stream\n-         6: invokespecial #5                  // Method java/io/IOException.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #15                 // String Failed to open input stream\n+         6: invokespecial #17                 // Method java/io/IOException.\"<init>\":(Ljava/lang/String;)V\n          9: athrow\n       LineNumberTable:\n         line 81: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest$1;\n     Exceptions:\n       throws java.io.IOException\n \n   public dev.langchain4j.data.document.Metadata metadata();\n     descriptor: ()Ldev/langchain4j/data/document/Metadata;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: new           #6                  // class dev/langchain4j/data/document/Metadata\n+         0: new           #20                 // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #7                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #22                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: areturn\n       LineNumberTable:\n         line 86: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest$1;\n }\n SourceFile: \"DocumentLoaderTest.java\"\n-EnclosingMethod: #29.#30                // dev.langchain4j.data.document.DocumentLoaderTest.lambda$test_load$0\n+EnclosingMethod: #39.#41                // dev.langchain4j.data.document.DocumentLoaderTest.test_load\n InnerClasses:\n-  #8;                                     // class dev/langchain4j/data/document/DocumentLoaderTest$1\n+  #2;                                     // class dev/langchain4j/data/document/DocumentLoaderTest$1\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentLoaderTest$StringSource.class", "source2": "dev/langchain4j/data/document/DocumentLoaderTest$StringSource.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,67 +1,67 @@\n-  SHA-256 checksum d0917361fd430a94b377abd7d639b4dae72d85c00d3cf9f7009db68f8221db33\n+  SHA-256 checksum 2adf33caddabb180f76d1bd062faba8d7e2315e142452235bfed18450790dc12\n   Compiled from \"DocumentLoaderTest.java\"\n public final class dev.langchain4j.data.document.DocumentLoaderTest$StringSource implements dev.langchain4j.data.document.DocumentSource\n   minor version: 0\n   major version: 52\n   flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER\n   this_class: #8                          // dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n-  super_class: #9                         // java/lang/Object\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 2, methods: 3, attributes: 2\n Constant pool:\n-   #1 = Methodref          #9.#29         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #8.#30         // dev/langchain4j/data/document/DocumentLoaderTest$StringSource.content:Ljava/lang/String;\n-   #3 = Fieldref           #8.#31         // dev/langchain4j/data/document/DocumentLoaderTest$StringSource.metadata:Ldev/langchain4j/data/document/Metadata;\n-   #4 = Class              #32            // java/io/ByteArrayInputStream\n-   #5 = Fieldref           #33.#34        // java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n-   #6 = Methodref          #35.#36        // java/lang/String.getBytes:(Ljava/nio/charset/Charset;)[B\n-   #7 = Methodref          #4.#37         // java/io/ByteArrayInputStream.\"<init>\":([B)V\n-   #8 = Class              #39            // dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n-   #9 = Class              #40            // java/lang/Object\n-  #10 = Class              #41            // dev/langchain4j/data/document/DocumentSource\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/data/document/DocumentLoaderTest$StringSource.content:Ljava/lang/String;\n+   #8 = Class              #10            // dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n+   #9 = NameAndType        #11:#12        // content:Ljava/lang/String;\n+  #10 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n   #11 = Utf8               content\n   #12 = Utf8               Ljava/lang/String;\n-  #13 = Utf8               metadata\n-  #14 = Utf8               Ldev/langchain4j/data/document/Metadata;\n-  #15 = Utf8               <init>\n-  #16 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #17 = Utf8               Code\n-  #18 = Utf8               LineNumberTable\n-  #19 = Utf8               LocalVariableTable\n-  #20 = Utf8               this\n-  #21 = Utf8               StringSource\n-  #22 = Utf8               InnerClasses\n-  #23 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n-  #24 = Utf8               inputStream\n-  #25 = Utf8               ()Ljava/io/InputStream;\n-  #26 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #27 = Utf8               SourceFile\n-  #28 = Utf8               DocumentLoaderTest.java\n-  #29 = NameAndType        #15:#42        // \"<init>\":()V\n-  #30 = NameAndType        #11:#12        // content:Ljava/lang/String;\n-  #31 = NameAndType        #13:#14        // metadata:Ldev/langchain4j/data/document/Metadata;\n-  #32 = Utf8               java/io/ByteArrayInputStream\n-  #33 = Class              #43            // java/nio/charset/StandardCharsets\n-  #34 = NameAndType        #44:#45        // UTF_8:Ljava/nio/charset/Charset;\n-  #35 = Class              #46            // java/lang/String\n-  #36 = NameAndType        #47:#48        // getBytes:(Ljava/nio/charset/Charset;)[B\n-  #37 = NameAndType        #15:#49        // \"<init>\":([B)V\n-  #38 = Class              #50            // dev/langchain4j/data/document/DocumentLoaderTest\n-  #39 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n-  #40 = Utf8               java/lang/Object\n-  #41 = Utf8               dev/langchain4j/data/document/DocumentSource\n-  #42 = Utf8               ()V\n-  #43 = Utf8               java/nio/charset/StandardCharsets\n-  #44 = Utf8               UTF_8\n-  #45 = Utf8               Ljava/nio/charset/Charset;\n-  #46 = Utf8               java/lang/String\n-  #47 = Utf8               getBytes\n-  #48 = Utf8               (Ljava/nio/charset/Charset;)[B\n-  #49 = Utf8               ([B)V\n-  #50 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n+  #13 = Fieldref           #8.#14         // dev/langchain4j/data/document/DocumentLoaderTest$StringSource.metadata:Ldev/langchain4j/data/document/Metadata;\n+  #14 = NameAndType        #15:#16        // metadata:Ldev/langchain4j/data/document/Metadata;\n+  #15 = Utf8               metadata\n+  #16 = Utf8               Ldev/langchain4j/data/document/Metadata;\n+  #17 = Class              #18            // java/io/ByteArrayInputStream\n+  #18 = Utf8               java/io/ByteArrayInputStream\n+  #19 = Fieldref           #20.#21        // java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n+  #20 = Class              #22            // java/nio/charset/StandardCharsets\n+  #21 = NameAndType        #23:#24        // UTF_8:Ljava/nio/charset/Charset;\n+  #22 = Utf8               java/nio/charset/StandardCharsets\n+  #23 = Utf8               UTF_8\n+  #24 = Utf8               Ljava/nio/charset/Charset;\n+  #25 = Methodref          #26.#27        // java/lang/String.getBytes:(Ljava/nio/charset/Charset;)[B\n+  #26 = Class              #28            // java/lang/String\n+  #27 = NameAndType        #29:#30        // getBytes:(Ljava/nio/charset/Charset;)[B\n+  #28 = Utf8               java/lang/String\n+  #29 = Utf8               getBytes\n+  #30 = Utf8               (Ljava/nio/charset/Charset;)[B\n+  #31 = Methodref          #17.#32        // java/io/ByteArrayInputStream.\"<init>\":([B)V\n+  #32 = NameAndType        #5:#33         // \"<init>\":([B)V\n+  #33 = Utf8               ([B)V\n+  #34 = Class              #35            // dev/langchain4j/data/document/DocumentSource\n+  #35 = Utf8               dev/langchain4j/data/document/DocumentSource\n+  #36 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #37 = Utf8               Code\n+  #38 = Utf8               LineNumberTable\n+  #39 = Utf8               LocalVariableTable\n+  #40 = Utf8               this\n+  #41 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n+  #42 = Utf8               inputStream\n+  #43 = Utf8               ()Ljava/io/InputStream;\n+  #44 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+  #45 = Utf8               SourceFile\n+  #46 = Utf8               DocumentLoaderTest.java\n+  #47 = Utf8               InnerClasses\n+  #48 = Class              #49            // dev/langchain4j/data/document/DocumentLoaderTest\n+  #49 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n+  #50 = Utf8               StringSource\n {\n   private final java.lang.String content;\n     descriptor: Ljava/lang/String;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final dev.langchain4j.data.document.Metadata metadata;\n     descriptor: Ldev/langchain4j/data/document/Metadata;\n@@ -72,18 +72,18 @@\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=3\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field content:Ljava/lang/String;\n+         6: putfield      #7                  // Field content:Ljava/lang/String;\n          9: aload_0\n         10: aload_2\n-        11: putfield      #3                  // Field metadata:Ldev/langchain4j/data/document/Metadata;\n+        11: putfield      #13                 // Field metadata:Ldev/langchain4j/data/document/Metadata;\n         14: return\n       LineNumberTable:\n         line 15: 0\n         line 16: 4\n         line 17: 9\n         line 18: 14\n       LocalVariableTable:\n@@ -93,38 +93,38 @@\n             0      15     2 metadata   Ldev/langchain4j/data/document/Metadata;\n \n   public java.io.InputStream inputStream();\n     descriptor: ()Ljava/io/InputStream;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=1, args_size=1\n-         0: new           #4                  // class java/io/ByteArrayInputStream\n+         0: new           #17                 // class java/io/ByteArrayInputStream\n          3: dup\n          4: aload_0\n-         5: getfield      #2                  // Field content:Ljava/lang/String;\n-         8: getstatic     #5                  // Field java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n-        11: invokevirtual #6                  // Method java/lang/String.getBytes:(Ljava/nio/charset/Charset;)[B\n-        14: invokespecial #7                  // Method java/io/ByteArrayInputStream.\"<init>\":([B)V\n+         5: getfield      #7                  // Field content:Ljava/lang/String;\n+         8: getstatic     #19                 // Field java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n+        11: invokevirtual #25                 // Method java/lang/String.getBytes:(Ljava/nio/charset/Charset;)[B\n+        14: invokespecial #31                 // Method java/io/ByteArrayInputStream.\"<init>\":([B)V\n         17: areturn\n       LineNumberTable:\n         line 22: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      18     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n \n   public dev.langchain4j.data.document.Metadata metadata();\n     descriptor: ()Ldev/langchain4j/data/document/Metadata;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #3                  // Field metadata:Ldev/langchain4j/data/document/Metadata;\n+         1: getfield      #13                 // Field metadata:Ldev/langchain4j/data/document/Metadata;\n          4: areturn\n       LineNumberTable:\n         line 27: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n }\n SourceFile: \"DocumentLoaderTest.java\"\n InnerClasses:\n-  public static final #21= #8 of #38;     // StringSource=class dev/langchain4j/data/document/DocumentLoaderTest$StringSource of class dev/langchain4j/data/document/DocumentLoaderTest\n+  public static final #50= #8 of #48;     // StringSource=class dev/langchain4j/data/document/DocumentLoaderTest$StringSource of class dev/langchain4j/data/document/DocumentLoaderTest\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.class", "source2": "dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,79 +1,77 @@\n-  SHA-256 checksum cdbe568498fa595bd29cd43287306a57fbfa57f1fea90e53c28ce202774def3c\n+  SHA-256 checksum 70405706aeb72de725845329a215c2fea68846c24ffcc020d06cf01adb3d03de\n   Compiled from \"DocumentLoaderTest.java\"\n public final class dev.langchain4j.data.document.DocumentLoaderTest$TrivialParser implements dev.langchain4j.data.document.DocumentParser\n   minor version: 0\n   major version: 52\n   flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER\n-  this_class: #11                         // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n-  super_class: #12                        // java/lang/Object\n+  this_class: #39                         // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #12.#36        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #37            // java/lang/String\n-   #3 = Methodref          #38.#39        // dev/langchain4j/data/document/DocumentLoaderTest.readAllBytes:(Ljava/io/InputStream;)[B\n-   #4 = Fieldref           #40.#41        // java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n-   #5 = Methodref          #2.#42         // java/lang/String.\"<init>\":([BLjava/nio/charset/Charset;)V\n-   #6 = Class              #43            // java/io/IOException\n-   #7 = Class              #44            // java/lang/RuntimeException\n-   #8 = String             #45            // Failed to read input stream\n-   #9 = Methodref          #7.#46         // java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n-  #10 = Methodref          #47.#48        // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #11 = Class              #49            // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n-  #12 = Class              #50            // java/lang/Object\n-  #13 = Class              #51            // dev/langchain4j/data/document/DocumentParser\n-  #14 = Utf8               <init>\n-  #15 = Utf8               ()V\n-  #16 = Utf8               Code\n-  #17 = Utf8               LineNumberTable\n-  #18 = Utf8               LocalVariableTable\n-  #19 = Utf8               this\n-  #20 = Utf8               TrivialParser\n-  #21 = Utf8               InnerClasses\n-  #22 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$TrivialParser;\n-  #23 = Utf8               parse\n-  #24 = Utf8               (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-  #25 = Utf8               str\n-  #26 = Utf8               Ljava/lang/String;\n-  #27 = Utf8               e\n-  #28 = Utf8               Ljava/io/IOException;\n-  #29 = Utf8               inputStream\n-  #30 = Utf8               Ljava/io/InputStream;\n-  #31 = Utf8               StackMapTable\n-  #32 = Class              #43            // java/io/IOException\n-  #33 = Class              #37            // java/lang/String\n-  #34 = Utf8               SourceFile\n-  #35 = Utf8               DocumentLoaderTest.java\n-  #36 = NameAndType        #14:#15        // \"<init>\":()V\n-  #37 = Utf8               java/lang/String\n-  #38 = Class              #52            // dev/langchain4j/data/document/DocumentLoaderTest\n-  #39 = NameAndType        #53:#54        // readAllBytes:(Ljava/io/InputStream;)[B\n-  #40 = Class              #55            // java/nio/charset/StandardCharsets\n-  #41 = NameAndType        #56:#57        // UTF_8:Ljava/nio/charset/Charset;\n-  #42 = NameAndType        #14:#58        // \"<init>\":([BLjava/nio/charset/Charset;)V\n-  #43 = Utf8               java/io/IOException\n-  #44 = Utf8               java/lang/RuntimeException\n-  #45 = Utf8               Failed to read input stream\n-  #46 = NameAndType        #14:#59        // \"<init>\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n-  #47 = Class              #60            // dev/langchain4j/data/document/Document\n-  #48 = NameAndType        #61:#62        // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #49 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n-  #50 = Utf8               java/lang/Object\n-  #51 = Utf8               dev/langchain4j/data/document/DocumentParser\n-  #52 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n-  #53 = Utf8               readAllBytes\n-  #54 = Utf8               (Ljava/io/InputStream;)[B\n-  #55 = Utf8               java/nio/charset/StandardCharsets\n-  #56 = Utf8               UTF_8\n-  #57 = Utf8               Ljava/nio/charset/Charset;\n-  #58 = Utf8               ([BLjava/nio/charset/Charset;)V\n-  #59 = Utf8               (Ljava/lang/String;Ljava/lang/Throwable;)V\n-  #60 = Utf8               dev/langchain4j/data/document/Document\n-  #61 = Utf8               from\n-  #62 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // java/lang/String\n+   #8 = Utf8               java/lang/String\n+   #9 = Methodref          #10.#11        // dev/langchain4j/data/document/DocumentLoaderTest.readAllBytes:(Ljava/io/InputStream;)[B\n+  #10 = Class              #12            // dev/langchain4j/data/document/DocumentLoaderTest\n+  #11 = NameAndType        #13:#14        // readAllBytes:(Ljava/io/InputStream;)[B\n+  #12 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n+  #13 = Utf8               readAllBytes\n+  #14 = Utf8               (Ljava/io/InputStream;)[B\n+  #15 = Fieldref           #16.#17        // java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n+  #16 = Class              #18            // java/nio/charset/StandardCharsets\n+  #17 = NameAndType        #19:#20        // UTF_8:Ljava/nio/charset/Charset;\n+  #18 = Utf8               java/nio/charset/StandardCharsets\n+  #19 = Utf8               UTF_8\n+  #20 = Utf8               Ljava/nio/charset/Charset;\n+  #21 = Methodref          #7.#22         // java/lang/String.\"<init>\":([BLjava/nio/charset/Charset;)V\n+  #22 = NameAndType        #5:#23         // \"<init>\":([BLjava/nio/charset/Charset;)V\n+  #23 = Utf8               ([BLjava/nio/charset/Charset;)V\n+  #24 = Class              #25            // java/io/IOException\n+  #25 = Utf8               java/io/IOException\n+  #26 = Class              #27            // java/lang/RuntimeException\n+  #27 = Utf8               java/lang/RuntimeException\n+  #28 = String             #29            // Failed to read input stream\n+  #29 = Utf8               Failed to read input stream\n+  #30 = Methodref          #26.#31        // java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n+  #31 = NameAndType        #5:#32         // \"<init>\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n+  #32 = Utf8               (Ljava/lang/String;Ljava/lang/Throwable;)V\n+  #33 = Methodref          #34.#35        // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #34 = Class              #36            // dev/langchain4j/data/document/Document\n+  #35 = NameAndType        #37:#38        // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #36 = Utf8               dev/langchain4j/data/document/Document\n+  #37 = Utf8               from\n+  #38 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #39 = Class              #40            // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+  #40 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+  #41 = Class              #42            // dev/langchain4j/data/document/DocumentParser\n+  #42 = Utf8               dev/langchain4j/data/document/DocumentParser\n+  #43 = Utf8               Code\n+  #44 = Utf8               LineNumberTable\n+  #45 = Utf8               LocalVariableTable\n+  #46 = Utf8               this\n+  #47 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$TrivialParser;\n+  #48 = Utf8               parse\n+  #49 = Utf8               (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+  #50 = Utf8               str\n+  #51 = Utf8               Ljava/lang/String;\n+  #52 = Utf8               e\n+  #53 = Utf8               Ljava/io/IOException;\n+  #54 = Utf8               inputStream\n+  #55 = Utf8               Ljava/io/InputStream;\n+  #56 = Utf8               StackMapTable\n+  #57 = Utf8               SourceFile\n+  #58 = Utf8               DocumentLoaderTest.java\n+  #59 = Utf8               InnerClasses\n+  #60 = Utf8               TrivialParser\n {\n   public dev.langchain4j.data.document.DocumentLoaderTest$TrivialParser();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -86,31 +84,31 @@\n             0       5     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest$TrivialParser;\n \n   public dev.langchain4j.data.document.Document parse(java.io.InputStream);\n     descriptor: (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=4, args_size=2\n-         0: new           #2                  // class java/lang/String\n+         0: new           #7                  // class java/lang/String\n          3: dup\n          4: aload_1\n-         5: invokestatic  #3                  // Method dev/langchain4j/data/document/DocumentLoaderTest.readAllBytes:(Ljava/io/InputStream;)[B\n-         8: getstatic     #4                  // Field java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n-        11: invokespecial #5                  // Method java/lang/String.\"<init>\":([BLjava/nio/charset/Charset;)V\n+         5: invokestatic  #9                  // Method dev/langchain4j/data/document/DocumentLoaderTest.readAllBytes:(Ljava/io/InputStream;)[B\n+         8: getstatic     #15                 // Field java/nio/charset/StandardCharsets.UTF_8:Ljava/nio/charset/Charset;\n+        11: invokespecial #21                 // Method java/lang/String.\"<init>\":([BLjava/nio/charset/Charset;)V\n         14: astore_2\n         15: goto          30\n         18: astore_3\n-        19: new           #7                  // class java/lang/RuntimeException\n+        19: new           #26                 // class java/lang/RuntimeException\n         22: dup\n-        23: ldc           #8                  // String Failed to read input stream\n+        23: ldc           #28                 // String Failed to read input stream\n         25: aload_3\n-        26: invokespecial #9                  // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n+        26: invokespecial #30                 // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;Ljava/lang/Throwable;)V\n         29: athrow\n         30: aload_2\n-        31: invokestatic  #10                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        31: invokestatic  #33                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n         34: areturn\n       Exception table:\n          from    to  target type\n              0    15    18   Class java/io/IOException\n       LineNumberTable:\n         line 62: 0\n         line 65: 15\n@@ -129,8 +127,8 @@\n           stack = [ class java/io/IOException ]\n         frame_type = 252 /* append */\n           offset_delta = 11\n           locals = [ class java/lang/String ]\n }\n SourceFile: \"DocumentLoaderTest.java\"\n InnerClasses:\n-  public static final #20= #11 of #38;    // TrivialParser=class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser of class dev/langchain4j/data/document/DocumentLoaderTest\n+  public static final #60= #39 of #10;    // TrivialParser=class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser of class dev/langchain4j/data/document/DocumentLoaderTest\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentLoaderTest.class", "source2": "dev/langchain4j/data/document/DocumentLoaderTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,213 +1,209 @@\n-  SHA-256 checksum afd9e78807998653173c50b52f976f130fdf4a6d812381c170085edfff03f2b0\n+  SHA-256 checksum 510c0d41cb88f8e5343df5c8b4522d948a25934a80c267580e68189bbb77d631\n   Compiled from \"DocumentLoaderTest.java\"\n class dev.langchain4j.data.document.DocumentLoaderTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #39                         // dev/langchain4j/data/document/DocumentLoaderTest\n-  super_class: #40                        // java/lang/Object\n+  this_class: #65                         // dev/langchain4j/data/document/DocumentLoaderTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 6, attributes: 3\n Constant pool:\n-    #1 = Methodref          #40.#87       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #88           // java/io/ByteArrayOutputStream\n-    #3 = Methodref          #2.#87        // java/io/ByteArrayOutputStream.\"<init>\":()V\n-    #4 = Methodref          #89.#90       // java/io/InputStream.read:([BII)I\n-    #5 = Methodref          #2.#91        // java/io/ByteArrayOutputStream.write:([BII)V\n-    #6 = Methodref          #2.#92        // java/io/ByteArrayOutputStream.toByteArray:()[B\n-    #7 = Methodref          #2.#93        // java/io/ByteArrayOutputStream.close:()V\n-    #8 = Class              #94           // java/lang/Throwable\n-    #9 = Methodref          #8.#95        // java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n-   #10 = Methodref          #89.#93       // java/io/InputStream.close:()V\n-   #11 = Class              #96           // java/io/IOException\n-   #12 = Methodref          #11.#95       // java/io/IOException.addSuppressed:(Ljava/lang/Throwable;)V\n-   #13 = Class              #97           // dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n-   #14 = String             #98           // Hello, world!\n-   #15 = Class              #99           // dev/langchain4j/data/document/Metadata\n-   #16 = Methodref          #15.#87       // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-   #17 = String             #100          // foo\n-   #18 = String             #101          // bar\n-   #19 = Methodref          #15.#102      // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #20 = Methodref          #13.#103      // dev/langchain4j/data/document/DocumentLoaderTest$StringSource.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-   #21 = Class              #104          // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n-   #22 = Methodref          #21.#87       // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.\"<init>\":()V\n-   #23 = Methodref          #105.#106     // dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n-   #24 = Methodref          #39.#107      // dev/langchain4j/data/document/DocumentLoaderTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #25 = Methodref          #108.#109     // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-   #26 = Methodref          #110.#111     // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #27 = Class              #112          // java/lang/RuntimeException\n-   #28 = Methodref          #39.#113      // dev/langchain4j/data/document/DocumentLoaderTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #29 = InvokeDynamic      #0:#118       // #0:call:(Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #30 = Methodref          #119.#120     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #31 = String             #121          // Failed to load document\n-   #32 = Methodref          #122.#123     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #33 = InvokeDynamic      #1:#125       // #1:call:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #34 = InvokeDynamic      #2:#128       // #2:parse:()Ldev/langchain4j/data/document/DocumentParser;\n-   #35 = String             #129          // Failed to parse document\n-   #36 = Methodref          #27.#130      // java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n-   #37 = Class              #131          // dev/langchain4j/data/document/DocumentLoaderTest$1\n-   #38 = Methodref          #37.#132      // dev/langchain4j/data/document/DocumentLoaderTest$1.\"<init>\":(Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n-   #39 = Class              #133          // dev/langchain4j/data/document/DocumentLoaderTest\n-   #40 = Class              #134          // java/lang/Object\n-   #41 = Class              #135          // org/assertj/core/api/WithAssertions\n-   #42 = Utf8               TrivialParser\n-   #43 = Utf8               InnerClasses\n-   #44 = Utf8               StringSource\n-   #45 = Utf8               <init>\n-   #46 = Utf8               ()V\n-   #47 = Utf8               Code\n-   #48 = Utf8               LineNumberTable\n-   #49 = Utf8               LocalVariableTable\n-   #50 = Utf8               this\n-   #51 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest;\n-   #52 = Utf8               readAllBytes\n-   #53 = Utf8               (Ljava/io/InputStream;)[B\n-   #54 = Utf8               e\n-   #55 = Utf8               Ljava/io/IOException;\n-   #56 = Utf8               readLen\n-   #57 = Utf8               I\n-   #58 = Utf8               outputStream\n-   #59 = Utf8               Ljava/io/ByteArrayOutputStream;\n-   #60 = Utf8               inputStream\n-   #61 = Utf8               Ljava/io/InputStream;\n-   #62 = Utf8               bufLen\n-   #63 = Utf8               buf\n-   #64 = Utf8               [B\n-   #65 = Utf8               exception\n-   #66 = Utf8               StackMapTable\n-   #67 = Class              #136          // java/io/InputStream\n-   #68 = Class              #64           // \"[B\"\n-   #69 = Class              #96           // java/io/IOException\n-   #70 = Class              #88           // java/io/ByteArrayOutputStream\n-   #71 = Class              #94           // java/lang/Throwable\n-   #72 = Utf8               Exceptions\n-   #73 = Utf8               test_load\n-   #74 = Utf8               source\n-   #75 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n-   #76 = Utf8               document\n-   #77 = Utf8               Ldev/langchain4j/data/document/Document;\n-   #78 = Utf8               RuntimeVisibleAnnotations\n-   #79 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #80 = Utf8               lambda$test_load$2\n-   #81 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n-   #82 = Utf8               lambda$null$1\n-   #83 = Utf8               (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-   #84 = Utf8               lambda$test_load$0\n-   #85 = Utf8               SourceFile\n-   #86 = Utf8               DocumentLoaderTest.java\n-   #87 = NameAndType        #45:#46       // \"<init>\":()V\n-   #88 = Utf8               java/io/ByteArrayOutputStream\n-   #89 = Class              #136          // java/io/InputStream\n-   #90 = NameAndType        #137:#138     // read:([BII)I\n-   #91 = NameAndType        #139:#140     // write:([BII)V\n-   #92 = NameAndType        #141:#142     // toByteArray:()[B\n-   #93 = NameAndType        #143:#46      // close:()V\n-   #94 = Utf8               java/lang/Throwable\n-   #95 = NameAndType        #144:#145     // addSuppressed:(Ljava/lang/Throwable;)V\n-   #96 = Utf8               java/io/IOException\n-   #97 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n-   #98 = Utf8               Hello, world!\n-   #99 = Utf8               dev/langchain4j/data/document/Metadata\n-  #100 = Utf8               foo\n-  #101 = Utf8               bar\n-  #102 = NameAndType        #146:#147     // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #103 = NameAndType        #45:#148      // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #104 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n-  #105 = Class              #149          // dev/langchain4j/data/document/DocumentLoader\n-  #106 = NameAndType        #150:#151     // load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n-  #107 = NameAndType        #152:#153     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #108 = Class              #154          // dev/langchain4j/data/document/Document\n-  #109 = NameAndType        #155:#156     // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #110 = Class              #157          // org/assertj/core/api/ObjectAssert\n-  #111 = NameAndType        #158:#159     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #112 = Utf8               java/lang/RuntimeException\n-  #113 = NameAndType        #160:#161     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #114 = Utf8               BootstrapMethods\n-  #115 = MethodHandle       6:#162        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #116 = MethodType         #46           //  ()V\n-  #117 = MethodHandle       7:#163        // REF_invokeSpecial dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$0:()V\n-  #118 = NameAndType        #164:#167     // call:(Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #119 = Class              #168          // org/assertj/core/api/ThrowableTypeAssert\n-  #120 = NameAndType        #169:#170     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #121 = Utf8               Failed to load document\n-  #122 = Class              #171          // org/assertj/core/api/ThrowableAssertAlternative\n-  #123 = NameAndType        #172:#173     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #124 = MethodHandle       6:#174        // REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n-  #125 = NameAndType        #164:#175     // call:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #126 = MethodType         #83           //  (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-  #127 = MethodHandle       6:#176        // REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$null$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-  #128 = NameAndType        #177:#178     // parse:()Ldev/langchain4j/data/document/DocumentParser;\n-  #129 = Utf8               Failed to parse document\n-  #130 = NameAndType        #45:#179      // \"<init>\":(Ljava/lang/String;)V\n-  #131 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$1\n-  #132 = NameAndType        #45:#180      // \"<init>\":(Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n-  #133 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n-  #134 = Utf8               java/lang/Object\n-  #135 = Utf8               org/assertj/core/api/WithAssertions\n-  #136 = Utf8               java/io/InputStream\n-  #137 = Utf8               read\n-  #138 = Utf8               ([BII)I\n-  #139 = Utf8               write\n-  #140 = Utf8               ([BII)V\n-  #141 = Utf8               toByteArray\n-  #142 = Utf8               ()[B\n-  #143 = Utf8               close\n-  #144 = Utf8               addSuppressed\n-  #145 = Utf8               (Ljava/lang/Throwable;)V\n-  #146 = Utf8               add\n-  #147 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #148 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #149 = Utf8               dev/langchain4j/data/document/DocumentLoader\n-  #150 = Utf8               load\n-  #151 = Utf8               (Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n-  #152 = Utf8               assertThat\n-  #153 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #154 = Utf8               dev/langchain4j/data/document/Document\n-  #155 = Utf8               from\n-  #156 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #157 = Utf8               org/assertj/core/api/ObjectAssert\n-  #158 = Utf8               isEqualTo\n-  #159 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #160 = Utf8               assertThatExceptionOfType\n-  #161 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #162 = Methodref          #181.#182     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #163 = Methodref          #39.#183      // dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$0:()V\n-  #164 = Utf8               call\n-  #165 = Class              #185          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #166 = Utf8               ThrowingCallable\n-  #167 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #168 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #169 = Utf8               isThrownBy\n-  #170 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #171 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #172 = Utf8               withMessageContaining\n-  #173 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #174 = Methodref          #39.#186      // dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n-  #175 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #176 = Methodref          #39.#187      // dev/langchain4j/data/document/DocumentLoaderTest.lambda$null$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-  #177 = Utf8               parse\n-  #178 = Utf8               ()Ldev/langchain4j/data/document/DocumentParser;\n-  #179 = Utf8               (Ljava/lang/String;)V\n-  #180 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n-  #181 = Class              #188          // java/lang/invoke/LambdaMetafactory\n-  #182 = NameAndType        #189:#192     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #183 = NameAndType        #84:#46       // lambda$test_load$0:()V\n-  #184 = Class              #193          // org/assertj/core/api/ThrowableAssert\n-  #185 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #186 = NameAndType        #80:#81       // lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n-  #187 = NameAndType        #82:#83       // lambda$null$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-  #188 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #189 = Utf8               metafactory\n-  #190 = Class              #195          // java/lang/invoke/MethodHandles$Lookup\n-  #191 = Utf8               Lookup\n-  #192 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #193 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #194 = Class              #196          // java/lang/invoke/MethodHandles\n-  #195 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #196 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/io/ByteArrayOutputStream\n+    #8 = Utf8               java/io/ByteArrayOutputStream\n+    #9 = Methodref          #7.#3         // java/io/ByteArrayOutputStream.\"<init>\":()V\n+   #10 = Methodref          #11.#12       // java/io/InputStream.read:([BII)I\n+   #11 = Class              #13           // java/io/InputStream\n+   #12 = NameAndType        #14:#15       // read:([BII)I\n+   #13 = Utf8               java/io/InputStream\n+   #14 = Utf8               read\n+   #15 = Utf8               ([BII)I\n+   #16 = Methodref          #7.#17        // java/io/ByteArrayOutputStream.write:([BII)V\n+   #17 = NameAndType        #18:#19       // write:([BII)V\n+   #18 = Utf8               write\n+   #19 = Utf8               ([BII)V\n+   #20 = Methodref          #7.#21        // java/io/ByteArrayOutputStream.toByteArray:()[B\n+   #21 = NameAndType        #22:#23       // toByteArray:()[B\n+   #22 = Utf8               toByteArray\n+   #23 = Utf8               ()[B\n+   #24 = Methodref          #7.#25        // java/io/ByteArrayOutputStream.close:()V\n+   #25 = NameAndType        #26:#6        // close:()V\n+   #26 = Utf8               close\n+   #27 = Methodref          #11.#25       // java/io/InputStream.close:()V\n+   #28 = Class              #29           // java/io/IOException\n+   #29 = Utf8               java/io/IOException\n+   #30 = Methodref          #28.#31       // java/io/IOException.addSuppressed:(Ljava/lang/Throwable;)V\n+   #31 = NameAndType        #32:#33       // addSuppressed:(Ljava/lang/Throwable;)V\n+   #32 = Utf8               addSuppressed\n+   #33 = Utf8               (Ljava/lang/Throwable;)V\n+   #34 = Class              #35           // java/lang/Throwable\n+   #35 = Utf8               java/lang/Throwable\n+   #36 = Methodref          #34.#31       // java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n+   #37 = Class              #38           // dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n+   #38 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n+   #39 = String             #40           // Hello, world!\n+   #40 = Utf8               Hello, world!\n+   #41 = Class              #42           // dev/langchain4j/data/document/Metadata\n+   #42 = Utf8               dev/langchain4j/data/document/Metadata\n+   #43 = Methodref          #41.#3        // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+   #44 = String             #45           // foo\n+   #45 = Utf8               foo\n+   #46 = String             #47           // bar\n+   #47 = Utf8               bar\n+   #48 = Methodref          #41.#49       // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #49 = NameAndType        #50:#51       // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #50 = Utf8               add\n+   #51 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #52 = Methodref          #37.#53       // dev/langchain4j/data/document/DocumentLoaderTest$StringSource.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+   #53 = NameAndType        #5:#54        // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+   #54 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+   #55 = Class              #56           // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+   #56 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+   #57 = Methodref          #55.#3        // dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.\"<init>\":()V\n+   #58 = Methodref          #59.#60       // dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n+   #59 = Class              #61           // dev/langchain4j/data/document/DocumentLoader\n+   #60 = NameAndType        #62:#63       // load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n+   #61 = Utf8               dev/langchain4j/data/document/DocumentLoader\n+   #62 = Utf8               load\n+   #63 = Utf8               (Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n+   #64 = Methodref          #65.#66       // dev/langchain4j/data/document/DocumentLoaderTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #65 = Class              #67           // dev/langchain4j/data/document/DocumentLoaderTest\n+   #66 = NameAndType        #68:#69       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #67 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest\n+   #68 = Utf8               assertThat\n+   #69 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #70 = Methodref          #71.#72       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #71 = Class              #73           // dev/langchain4j/data/document/Document\n+   #72 = NameAndType        #74:#75       // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #73 = Utf8               dev/langchain4j/data/document/Document\n+   #74 = Utf8               from\n+   #75 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #76 = Methodref          #77.#78       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = Class              #79           // org/assertj/core/api/ObjectAssert\n+   #78 = NameAndType        #80:#81       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #79 = Utf8               org/assertj/core/api/ObjectAssert\n+   #80 = Utf8               isEqualTo\n+   #81 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #82 = Class              #83           // java/lang/RuntimeException\n+   #83 = Utf8               java/lang/RuntimeException\n+   #84 = Methodref          #65.#85       // dev/langchain4j/data/document/DocumentLoaderTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #85 = NameAndType        #86:#87       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #86 = Utf8               assertThatExceptionOfType\n+   #87 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #88 = InvokeDynamic      #0:#89        // #0:call:(Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #89 = NameAndType        #90:#91       // call:(Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #90 = Utf8               call\n+   #91 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #92 = Methodref          #93.#94       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #93 = Class              #95           // org/assertj/core/api/ThrowableTypeAssert\n+   #94 = NameAndType        #96:#97       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #95 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #96 = Utf8               isThrownBy\n+   #97 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #98 = String             #99           // Failed to load document\n+   #99 = Utf8               Failed to load document\n+  #100 = Methodref          #101.#102     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #101 = Class              #103          // org/assertj/core/api/ThrowableAssertAlternative\n+  #102 = NameAndType        #104:#105     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #103 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+  #104 = Utf8               withMessageContaining\n+  #105 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #106 = InvokeDynamic      #1:#107       // #1:call:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #107 = NameAndType        #90:#108      // call:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #108 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #109 = InvokeDynamic      #2:#110       // #2:parse:()Ldev/langchain4j/data/document/DocumentParser;\n+  #110 = NameAndType        #111:#112     // parse:()Ldev/langchain4j/data/document/DocumentParser;\n+  #111 = Utf8               parse\n+  #112 = Utf8               ()Ldev/langchain4j/data/document/DocumentParser;\n+  #113 = String             #114          // Failed to parse document\n+  #114 = Utf8               Failed to parse document\n+  #115 = Methodref          #82.#116      // java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n+  #116 = NameAndType        #5:#117       // \"<init>\":(Ljava/lang/String;)V\n+  #117 = Utf8               (Ljava/lang/String;)V\n+  #118 = Class              #119          // dev/langchain4j/data/document/DocumentLoaderTest$1\n+  #119 = Utf8               dev/langchain4j/data/document/DocumentLoaderTest$1\n+  #120 = Methodref          #118.#121     // dev/langchain4j/data/document/DocumentLoaderTest$1.\"<init>\":(Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n+  #121 = NameAndType        #5:#122       // \"<init>\":(Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n+  #122 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n+  #123 = Class              #124          // org/assertj/core/api/WithAssertions\n+  #124 = Utf8               org/assertj/core/api/WithAssertions\n+  #125 = Utf8               Code\n+  #126 = Utf8               LineNumberTable\n+  #127 = Utf8               LocalVariableTable\n+  #128 = Utf8               this\n+  #129 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest;\n+  #130 = Utf8               readAllBytes\n+  #131 = Utf8               (Ljava/io/InputStream;)[B\n+  #132 = Utf8               e\n+  #133 = Utf8               Ljava/io/IOException;\n+  #134 = Utf8               readLen\n+  #135 = Utf8               I\n+  #136 = Utf8               outputStream\n+  #137 = Utf8               Ljava/io/ByteArrayOutputStream;\n+  #138 = Utf8               inputStream\n+  #139 = Utf8               Ljava/io/InputStream;\n+  #140 = Utf8               bufLen\n+  #141 = Utf8               buf\n+  #142 = Utf8               [B\n+  #143 = Utf8               exception\n+  #144 = Utf8               StackMapTable\n+  #145 = Class              #142          // \"[B\"\n+  #146 = Utf8               Exceptions\n+  #147 = Utf8               test_load\n+  #148 = Utf8               source\n+  #149 = Utf8               Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n+  #150 = Utf8               document\n+  #151 = Utf8               Ldev/langchain4j/data/document/Document;\n+  #152 = Utf8               RuntimeVisibleAnnotations\n+  #153 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #154 = Utf8               lambda$test_load$2\n+  #155 = Utf8               (Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n+  #156 = Utf8               lambda$test_load$1\n+  #157 = Utf8               (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+  #158 = Utf8               lambda$test_load$0\n+  #159 = Utf8               SourceFile\n+  #160 = Utf8               DocumentLoaderTest.java\n+  #161 = Utf8               BootstrapMethods\n+  #162 = MethodHandle       6:#163        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #163 = Methodref          #164.#165     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #164 = Class              #166          // java/lang/invoke/LambdaMetafactory\n+  #165 = NameAndType        #167:#168     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #166 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #167 = Utf8               metafactory\n+  #168 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #169 = MethodType         #6            //  ()V\n+  #170 = MethodHandle       7:#171        // REF_invokeSpecial dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$0:()V\n+  #171 = Methodref          #65.#172      // dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$0:()V\n+  #172 = NameAndType        #158:#6       // lambda$test_load$0:()V\n+  #173 = MethodHandle       6:#174        // REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n+  #174 = Methodref          #65.#175      // dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n+  #175 = NameAndType        #154:#155     // lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n+  #176 = MethodType         #157          //  (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+  #177 = MethodHandle       6:#178        // REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+  #178 = Methodref          #65.#179      // dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+  #179 = NameAndType        #156:#157     // lambda$test_load$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+  #180 = Utf8               InnerClasses\n+  #181 = Utf8               StringSource\n+  #182 = Utf8               TrivialParser\n+  #183 = Class              #184          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #184 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #185 = Class              #186          // org/assertj/core/api/ThrowableAssert\n+  #186 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #187 = Utf8               ThrowingCallable\n+  #188 = Class              #189          // java/lang/invoke/MethodHandles$Lookup\n+  #189 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #190 = Class              #191          // java/lang/invoke/MethodHandles\n+  #191 = Utf8               java/lang/invoke/MethodHandles\n+  #192 = Utf8               Lookup\n {\n   dev.langchain4j.data.document.DocumentLoaderTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -219,265 +215,228 @@\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest;\n \n   public static byte[] readAllBytes(java.io.InputStream) throws java.io.IOException;\n     descriptor: (Ljava/io/InputStream;)[B\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n-      stack=4, locals=13, args_size=1\n+      stack=4, locals=10, args_size=1\n          0: sipush        4096\n          3: istore_1\n          4: sipush        4096\n          7: newarray       byte\n          9: astore_2\n         10: aconst_null\n         11: astore        4\n-        13: new           #2                  // class java/io/ByteArrayOutputStream\n+        13: new           #7                  // class java/io/ByteArrayOutputStream\n         16: dup\n-        17: invokespecial #3                  // Method java/io/ByteArrayOutputStream.\"<init>\":()V\n+        17: invokespecial #9                  // Method java/io/ByteArrayOutputStream.\"<init>\":()V\n         20: astore        5\n-        22: aconst_null\n-        23: astore        6\n-        25: aload_0\n-        26: aload_2\n-        27: iconst_0\n-        28: sipush        4096\n-        31: invokevirtual #4                  // Method java/io/InputStream.read:([BII)I\n-        34: dup\n-        35: istore_3\n-        36: iconst_m1\n-        37: if_icmpeq     51\n-        40: aload         5\n-        42: aload_2\n-        43: iconst_0\n-        44: iload_3\n-        45: invokevirtual #5                  // Method java/io/ByteArrayOutputStream.write:([BII)V\n-        48: goto          25\n-        51: aload         5\n-        53: invokevirtual #6                  // Method java/io/ByteArrayOutputStream.toByteArray:()[B\n-        56: astore        7\n-        58: aload         5\n-        60: ifnull        93\n-        63: aload         6\n-        65: ifnull        88\n-        68: aload         5\n-        70: invokevirtual #7                  // Method java/io/ByteArrayOutputStream.close:()V\n-        73: goto          93\n-        76: astore        8\n-        78: aload         6\n-        80: aload         8\n-        82: invokevirtual #9                  // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n-        85: goto          93\n-        88: aload         5\n-        90: invokevirtual #7                  // Method java/io/ByteArrayOutputStream.close:()V\n-        93: aload         4\n-        95: ifnonnull     105\n-        98: aload_0\n-        99: invokevirtual #10                 // Method java/io/InputStream.close:()V\n-       102: goto          121\n-       105: aload_0\n-       106: invokevirtual #10                 // Method java/io/InputStream.close:()V\n-       109: goto          121\n-       112: astore        8\n-       114: aload         4\n-       116: aload         8\n-       118: invokevirtual #12                 // Method java/io/IOException.addSuppressed:(Ljava/lang/Throwable;)V\n-       121: aload         7\n-       123: areturn\n-       124: astore        7\n-       126: aload         7\n-       128: astore        6\n-       130: aload         7\n-       132: athrow\n-       133: astore        9\n-       135: aload         5\n-       137: ifnull        170\n-       140: aload         6\n-       142: ifnull        165\n-       145: aload         5\n-       147: invokevirtual #7                  // Method java/io/ByteArrayOutputStream.close:()V\n-       150: goto          170\n-       153: astore        10\n-       155: aload         6\n-       157: aload         10\n-       159: invokevirtual #9                  // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n-       162: goto          170\n-       165: aload         5\n-       167: invokevirtual #7                  // Method java/io/ByteArrayOutputStream.close:()V\n-       170: aload         9\n-       172: athrow\n-       173: astore        5\n-       175: aload         5\n-       177: astore        4\n-       179: aload         5\n-       181: athrow\n-       182: astore        11\n-       184: aload         4\n-       186: ifnonnull     196\n-       189: aload_0\n-       190: invokevirtual #10                 // Method java/io/InputStream.close:()V\n-       193: goto          212\n-       196: aload_0\n-       197: invokevirtual #10                 // Method java/io/InputStream.close:()V\n-       200: goto          212\n-       203: astore        12\n-       205: aload         4\n-       207: aload         12\n-       209: invokevirtual #12                 // Method java/io/IOException.addSuppressed:(Ljava/lang/Throwable;)V\n-       212: aload         11\n-       214: athrow\n+        22: aload_0\n+        23: aload_2\n+        24: iconst_0\n+        25: sipush        4096\n+        28: invokevirtual #10                 // Method java/io/InputStream.read:([BII)I\n+        31: dup\n+        32: istore_3\n+        33: iconst_m1\n+        34: if_icmpeq     48\n+        37: aload         5\n+        39: aload_2\n+        40: iconst_0\n+        41: iload_3\n+        42: invokevirtual #16                 // Method java/io/ByteArrayOutputStream.write:([BII)V\n+        45: goto          22\n+        48: aload         5\n+        50: invokevirtual #20                 // Method java/io/ByteArrayOutputStream.toByteArray:()[B\n+        53: astore        6\n+        55: aload         5\n+        57: invokevirtual #24                 // Method java/io/ByteArrayOutputStream.close:()V\n+        60: aload         4\n+        62: ifnonnull     72\n+        65: aload_0\n+        66: invokevirtual #27                 // Method java/io/InputStream.close:()V\n+        69: goto          88\n+        72: aload_0\n+        73: invokevirtual #27                 // Method java/io/InputStream.close:()V\n+        76: goto          88\n+        79: astore        7\n+        81: aload         4\n+        83: aload         7\n+        85: invokevirtual #30                 // Method java/io/IOException.addSuppressed:(Ljava/lang/Throwable;)V\n+        88: aload         6\n+        90: areturn\n+        91: astore        6\n+        93: aload         5\n+        95: invokevirtual #24                 // Method java/io/ByteArrayOutputStream.close:()V\n+        98: goto          110\n+       101: astore        7\n+       103: aload         6\n+       105: aload         7\n+       107: invokevirtual #36                 // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n+       110: aload         6\n+       112: athrow\n+       113: astore        5\n+       115: aload         5\n+       117: astore        4\n+       119: aload         5\n+       121: athrow\n+       122: astore        8\n+       124: aload         4\n+       126: ifnonnull     136\n+       129: aload_0\n+       130: invokevirtual #27                 // Method java/io/InputStream.close:()V\n+       133: goto          152\n+       136: aload_0\n+       137: invokevirtual #27                 // Method java/io/InputStream.close:()V\n+       140: goto          152\n+       143: astore        9\n+       145: aload         4\n+       147: aload         9\n+       149: invokevirtual #30                 // Method java/io/IOException.addSuppressed:(Ljava/lang/Throwable;)V\n+       152: aload         8\n+       154: athrow\n       Exception table:\n          from    to  target type\n-            68    73    76   Class java/lang/Throwable\n-           105   109   112   Class java/io/IOException\n-            25    58   124   Class java/lang/Throwable\n-            25    58   133   any\n-           145   150   153   Class java/lang/Throwable\n-           124   135   133   any\n-            13    93   173   Class java/io/IOException\n-           124   173   173   Class java/io/IOException\n-            13    93   182   any\n-           196   200   203   Class java/io/IOException\n-           124   184   182   any\n+            72    76    79   Class java/io/IOException\n+            22    55    91   Class java/lang/Throwable\n+            93    98   101   Class java/lang/Throwable\n+            13    60   113   Class java/io/IOException\n+            91   113   113   Class java/io/IOException\n+            13    60   122   any\n+           136   140   143   Class java/io/IOException\n+            91   124   122   any\n       LineNumberTable:\n         line 32: 0\n         line 33: 4\n         line 35: 10\n         line 38: 13\n-        line 39: 25\n-        line 40: 40\n-        line 42: 51\n-        line 43: 58\n-        line 48: 93\n-        line 50: 105\n-        line 53: 109\n-        line 51: 112\n-        line 52: 114\n-        line 42: 121\n-        line 38: 124\n-        line 43: 133\n-        line 44: 173\n-        line 45: 175\n-        line 46: 179\n-        line 48: 182\n-        line 50: 196\n-        line 53: 200\n-        line 51: 203\n-        line 52: 205\n-        line 54: 212\n+        line 39: 22\n+        line 40: 37\n+        line 42: 48\n+        line 43: 55\n+        line 48: 60\n+        line 50: 72\n+        line 53: 76\n+        line 51: 79\n+        line 52: 81\n+        line 42: 88\n+        line 38: 91\n+        line 44: 113\n+        line 45: 115\n+        line 46: 119\n+        line 48: 122\n+        line 50: 136\n+        line 53: 140\n+        line 51: 143\n+        line 52: 145\n+        line 54: 152\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-          114       7     8     e   Ljava/io/IOException;\n-           36      88     3 readLen   I\n-           22     151     5 outputStream   Ljava/io/ByteArrayOutputStream;\n-          175       7     5     e   Ljava/io/IOException;\n-          205       7    12     e   Ljava/io/IOException;\n-            0     215     0 inputStream   Ljava/io/InputStream;\n-            4     211     1 bufLen   I\n-           10     205     2   buf   [B\n-           13     202     4 exception   Ljava/io/IOException;\n-      StackMapTable: number_of_entries = 18\n+           81       7     7     e   Ljava/io/IOException;\n+           33      58     3 readLen   I\n+           22      91     5 outputStream   Ljava/io/ByteArrayOutputStream;\n+          115       7     5     e   Ljava/io/IOException;\n+          145       7     9     e   Ljava/io/IOException;\n+            0     155     0 inputStream   Ljava/io/InputStream;\n+            4     151     1 bufLen   I\n+           10     145     2   buf   [B\n+           13     142     4 exception   Ljava/io/IOException;\n+      StackMapTable: number_of_entries = 13\n         frame_type = 255 /* full_frame */\n-          offset_delta = 25\n-          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, class java/io/ByteArrayOutputStream, class java/lang/Throwable ]\n+          offset_delta = 22\n+          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, class java/io/ByteArrayOutputStream ]\n           stack = []\n         frame_type = 255 /* full_frame */\n           offset_delta = 25\n-          locals = [ class java/io/InputStream, int, class \"[B\", int, class java/io/IOException, class java/io/ByteArrayOutputStream, class java/lang/Throwable ]\n+          locals = [ class java/io/InputStream, int, class \"[B\", int, class java/io/IOException, class java/io/ByteArrayOutputStream ]\n           stack = []\n-        frame_type = 255 /* full_frame */\n-          offset_delta = 24\n-          locals = [ class java/io/InputStream, int, class \"[B\", int, class java/io/IOException, class java/io/ByteArrayOutputStream, class java/lang/Throwable, class \"[B\" ]\n-          stack = [ class java/lang/Throwable ]\n-        frame_type = 11 /* same */\n-        frame_type = 4 /* same */\n-        frame_type = 11 /* same */\n+        frame_type = 252 /* append */\n+          offset_delta = 23\n+          locals = [ class \"[B\" ]\n         frame_type = 70 /* same_locals_1_stack_item */\n           stack = [ class java/io/IOException ]\n         frame_type = 8 /* same */\n         frame_type = 255 /* full_frame */\n           offset_delta = 2\n-          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, class java/io/ByteArrayOutputStream, class java/lang/Throwable ]\n-          stack = [ class java/lang/Throwable ]\n-        frame_type = 72 /* same_locals_1_stack_item */\n+          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, class java/io/ByteArrayOutputStream ]\n           stack = [ class java/lang/Throwable ]\n         frame_type = 255 /* full_frame */\n-          offset_delta = 19\n-          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, class java/io/ByteArrayOutputStream, class java/lang/Throwable, top, top, class java/lang/Throwable ]\n+          offset_delta = 9\n+          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, class java/io/ByteArrayOutputStream, class java/lang/Throwable ]\n           stack = [ class java/lang/Throwable ]\n-        frame_type = 11 /* same */\n-        frame_type = 4 /* same */\n+        frame_type = 8 /* same */\n         frame_type = 255 /* full_frame */\n           offset_delta = 2\n           locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException ]\n           stack = [ class java/io/IOException ]\n         frame_type = 72 /* same_locals_1_stack_item */\n           stack = [ class java/lang/Throwable ]\n         frame_type = 255 /* full_frame */\n           offset_delta = 13\n-          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, top, top, top, top, top, top, class java/lang/Throwable ]\n+          locals = [ class java/io/InputStream, int, class \"[B\", top, class java/io/IOException, top, top, top, class java/lang/Throwable ]\n           stack = []\n         frame_type = 70 /* same_locals_1_stack_item */\n           stack = [ class java/io/IOException ]\n         frame_type = 8 /* same */\n     Exceptions:\n       throws java.io.IOException\n \n   public void test_load();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: new           #13                 // class dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n+         0: new           #37                 // class dev/langchain4j/data/document/DocumentLoaderTest$StringSource\n          3: dup\n-         4: ldc           #14                 // String Hello, world!\n-         6: new           #15                 // class dev/langchain4j/data/document/Metadata\n+         4: ldc           #39                 // String Hello, world!\n+         6: new           #41                 // class dev/langchain4j/data/document/Metadata\n          9: dup\n-        10: invokespecial #16                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        13: ldc           #17                 // String foo\n-        15: ldc           #18                 // String bar\n-        17: invokevirtual #19                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        20: invokespecial #20                 // Method dev/langchain4j/data/document/DocumentLoaderTest$StringSource.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        10: invokespecial #43                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        13: ldc           #44                 // String foo\n+        15: ldc           #46                 // String bar\n+        17: invokevirtual #48                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        20: invokespecial #52                 // Method dev/langchain4j/data/document/DocumentLoaderTest$StringSource.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n         23: astore_1\n         24: aload_1\n-        25: new           #21                 // class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+        25: new           #55                 // class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n         28: dup\n-        29: invokespecial #22                 // Method dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.\"<init>\":()V\n-        32: invokestatic  #23                 // Method dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n+        29: invokespecial #57                 // Method dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.\"<init>\":()V\n+        32: invokestatic  #58                 // Method dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n         35: astore_2\n         36: aload_0\n         37: aload_2\n-        38: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        41: ldc           #14                 // String Hello, world!\n-        43: new           #15                 // class dev/langchain4j/data/document/Metadata\n+        38: invokevirtual #64                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        41: ldc           #39                 // String Hello, world!\n+        43: new           #41                 // class dev/langchain4j/data/document/Metadata\n         46: dup\n-        47: invokespecial #16                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        50: ldc           #17                 // String foo\n-        52: ldc           #18                 // String bar\n-        54: invokevirtual #19                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        57: invokestatic  #25                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-        60: invokevirtual #26                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        47: invokespecial #43                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        50: ldc           #44                 // String foo\n+        52: ldc           #46                 // String bar\n+        54: invokevirtual #48                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        57: invokestatic  #70                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        60: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         63: pop\n         64: aload_0\n-        65: ldc           #27                 // class java/lang/RuntimeException\n-        67: invokevirtual #28                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        65: ldc           #82                 // class java/lang/RuntimeException\n+        67: invokevirtual #84                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         70: aload_0\n-        71: invokedynamic #29,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        76: invokevirtual #30                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        79: ldc           #31                 // String Failed to load document\n-        81: invokevirtual #32                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        71: invokedynamic #88,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/data/document/DocumentLoaderTest;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        76: invokevirtual #92                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        79: ldc           #98                 // String Failed to load document\n+        81: invokevirtual #100                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         84: pop\n         85: aload_0\n-        86: ldc           #27                 // class java/lang/RuntimeException\n-        88: invokevirtual #28                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        86: ldc           #82                 // class java/lang/RuntimeException\n+        88: invokevirtual #84                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         91: aload_1\n-        92: invokedynamic #33,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        97: invokevirtual #30                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       100: ldc           #31                 // String Failed to load document\n-       102: invokevirtual #32                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        92: invokedynamic #106,  0            // InvokeDynamic #1:call:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        97: invokevirtual #92                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       100: ldc           #98                 // String Failed to load document\n+       102: invokevirtual #100                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n        105: pop\n        106: return\n       LineNumberTable:\n         line 73: 0\n         line 74: 24\n         line 75: 36\n         line 77: 64\n@@ -489,90 +448,90 @@\n         line 100: 106\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     107     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest;\n            24      83     1 source   Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n            36      71     2 document   Ldev/langchain4j/data/document/Document;\n     RuntimeVisibleAnnotations:\n-      0: #79()\n+      0: #153()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_load$2(dev.langchain4j.data.document.DocumentLoaderTest$StringSource) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: invokedynamic #34,  0             // InvokeDynamic #2:parse:()Ldev/langchain4j/data/document/DocumentParser;\n-         6: invokestatic  #23                 // Method dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n+         1: invokedynamic #109,  0            // InvokeDynamic #2:parse:()Ldev/langchain4j/data/document/DocumentParser;\n+         6: invokestatic  #58                 // Method dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n          9: pop\n         10: return\n       LineNumberTable:\n         line 92: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0 source   Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;\n     Exceptions:\n       throws java.lang.Throwable\n \n-  private static dev.langchain4j.data.document.Document lambda$null$1(java.io.InputStream);\n+  private static dev.langchain4j.data.document.Document lambda$test_load$1(java.io.InputStream);\n     descriptor: (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #27                 // class java/lang/RuntimeException\n+         0: new           #82                 // class java/lang/RuntimeException\n          3: dup\n-         4: ldc           #35                 // String Failed to parse document\n-         6: invokespecial #36                 // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #113                // String Failed to parse document\n+         6: invokespecial #115                // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n          9: athrow\n       LineNumberTable:\n         line 95: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0 inputStream   Ljava/io/InputStream;\n \n   private void lambda$test_load$0() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #37                 // class dev/langchain4j/data/document/DocumentLoaderTest$1\n+         0: new           #118                // class dev/langchain4j/data/document/DocumentLoaderTest$1\n          3: dup\n          4: aload_0\n-         5: invokespecial #38                 // Method dev/langchain4j/data/document/DocumentLoaderTest$1.\"<init>\":(Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n-         8: new           #21                 // class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n+         5: invokespecial #120                // Method dev/langchain4j/data/document/DocumentLoaderTest$1.\"<init>\":(Ldev/langchain4j/data/document/DocumentLoaderTest;)V\n+         8: new           #55                 // class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser\n         11: dup\n-        12: invokespecial #22                 // Method dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.\"<init>\":()V\n-        15: invokestatic  #23                 // Method dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n+        12: invokespecial #57                 // Method dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser.\"<init>\":()V\n+        15: invokestatic  #58                 // Method dev/langchain4j/data/document/DocumentLoader.load:(Ldev/langchain4j/data/document/DocumentSource;Ldev/langchain4j/data/document/DocumentParser;)Ldev/langchain4j/data/document/Document;\n         18: pop\n         19: return\n       LineNumberTable:\n         line 78: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      20     0  this   Ldev/langchain4j/data/document/DocumentLoaderTest;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"DocumentLoaderTest.java\"\n-InnerClasses:\n-  public static final #42= #21 of #39;    // TrivialParser=class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser of class dev/langchain4j/data/document/DocumentLoaderTest\n-  public static final #44= #13 of #39;    // StringSource=class dev/langchain4j/data/document/DocumentLoaderTest$StringSource of class dev/langchain4j/data/document/DocumentLoaderTest\n-  #37;                                    // class dev/langchain4j/data/document/DocumentLoaderTest$1\n-  public static #166= #165 of #184;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #191= #190 of #194; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #115 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #162 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #116 ()V\n-      #117 REF_invokeSpecial dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$0:()V\n-      #116 ()V\n-  1: #115 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #169 ()V\n+      #170 REF_invokeSpecial dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$0:()V\n+      #169 ()V\n+  1: #162 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #116 ()V\n-      #124 REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n-      #116 ()V\n-  2: #115 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #169 ()V\n+      #173 REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$2:(Ldev/langchain4j/data/document/DocumentLoaderTest$StringSource;)V\n+      #169 ()V\n+  2: #162 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #126 (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-      #127 REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$null$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n-      #126 (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+      #176 (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+      #177 REF_invokeStatic dev/langchain4j/data/document/DocumentLoaderTest.lambda$test_load$1:(Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+      #176 (Ljava/io/InputStream;)Ldev/langchain4j/data/document/Document;\n+InnerClasses:\n+  public static final #181= #37 of #65;   // StringSource=class dev/langchain4j/data/document/DocumentLoaderTest$StringSource of class dev/langchain4j/data/document/DocumentLoaderTest\n+  public static final #182= #55 of #65;   // TrivialParser=class dev/langchain4j/data/document/DocumentLoaderTest$TrivialParser of class dev/langchain4j/data/document/DocumentLoaderTest\n+  public static #187= #183 of #185;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  #118;                                   // class dev/langchain4j/data/document/DocumentLoaderTest$1\n+  public static final #192= #188 of #190; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.class", "source2": "dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,145 +1,145 @@\n-  SHA-256 checksum 1560a64d8b35a487007841de1e1d575872dbe0b4da3a3608c5ba98e9afb32a9a\n+  SHA-256 checksum 10ca241b15e2bd35138222005fd1b5ab48baabcdc14a57d844a37548259d191f\n   Compiled from \"DocumentSplitterTest.java\"\n public final class dev.langchain4j.data.document.DocumentSplitterTest$WhitespaceSplitter implements dev.langchain4j.data.document.DocumentSplitter\n   minor version: 0\n   major version: 52\n   flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER\n-  this_class: #18                         // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n-  super_class: #19                        // java/lang/Object\n+  this_class: #75                         // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 3\n Constant pool:\n-    #1 = Methodref          #19.#47       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #48.#49       // dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-    #3 = Methodref          #48.#50       // dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-    #4 = String             #51           // \\\\s+\n-    #5 = Methodref          #52.#53       // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n-    #6 = Methodref          #54.#55       // java/util/Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-    #7 = InvokeDynamic      #0:#61        // #0:test:()Ljava/util/function/Predicate;\n-    #8 = InterfaceMethodref #62.#63       // java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n-    #9 = InvokeDynamic      #1:#67        // #1:apply:(Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n-   #10 = InterfaceMethodref #62.#68       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #11 = Methodref          #69.#70       // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-   #12 = InterfaceMethodref #62.#71       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #13 = Class              #72           // java/util/List\n-   #14 = Class              #73           // dev/langchain4j/data/segment/TextSegment\n-   #15 = Methodref          #74.#75       // dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n-   #16 = Methodref          #14.#76       // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-   #17 = Methodref          #52.#77       // java/lang/String.isEmpty:()Z\n-   #18 = Class              #79           // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n-   #19 = Class              #80           // java/lang/Object\n-   #20 = Class              #81           // dev/langchain4j/data/document/DocumentSplitter\n-   #21 = Utf8               <init>\n-   #22 = Utf8               ()V\n-   #23 = Utf8               Code\n-   #24 = Utf8               LineNumberTable\n-   #25 = Utf8               LocalVariableTable\n-   #26 = Utf8               this\n-   #27 = Utf8               WhitespaceSplitter\n-   #28 = Utf8               InnerClasses\n-   #29 = Utf8               Ldev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter;\n-   #30 = Utf8               split\n-   #31 = Utf8               (Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n-   #32 = Utf8               document\n-   #33 = Utf8               Ldev/langchain4j/data/document/Document;\n-   #34 = Utf8               metadata\n-   #35 = Utf8               Ldev/langchain4j/data/document/Metadata;\n-   #36 = Utf8               Signature\n-   #37 = Utf8               (Ldev/langchain4j/data/document/Document;)Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-   #38 = Utf8               lambda$split$1\n-   #39 = Utf8               (Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #40 = Utf8               s\n-   #41 = Utf8               Ljava/lang/String;\n-   #42 = Utf8               lambda$split$0\n-   #43 = Utf8               (Ljava/lang/String;)Z\n-   #44 = Utf8               StackMapTable\n-   #45 = Utf8               SourceFile\n-   #46 = Utf8               DocumentSplitterTest.java\n-   #47 = NameAndType        #21:#22       // \"<init>\":()V\n-   #48 = Class              #82           // dev/langchain4j/data/document/Document\n-   #49 = NameAndType        #34:#83       // metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #50 = NameAndType        #84:#85       // text:()Ljava/lang/String;\n-   #51 = Utf8               \\\\s+\n-   #52 = Class              #86           // java/lang/String\n-   #53 = NameAndType        #30:#87       // split:(Ljava/lang/String;)[Ljava/lang/String;\n-   #54 = Class              #88           // java/util/Arrays\n-   #55 = NameAndType        #89:#90       // stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-   #56 = Utf8               BootstrapMethods\n-   #57 = MethodHandle       6:#91         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #58 = MethodType         #92           //  (Ljava/lang/Object;)Z\n-   #59 = MethodHandle       6:#93         // REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$0:(Ljava/lang/String;)Z\n-   #60 = MethodType         #43           //  (Ljava/lang/String;)Z\n-   #61 = NameAndType        #94:#95       // test:()Ljava/util/function/Predicate;\n-   #62 = Class              #96           // java/util/stream/Stream\n-   #63 = NameAndType        #97:#98       // filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n-   #64 = MethodType         #99           //  (Ljava/lang/Object;)Ljava/lang/Object;\n-   #65 = MethodHandle       6:#100        // REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #66 = MethodType         #101          //  (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #67 = NameAndType        #102:#103     // apply:(Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n-   #68 = NameAndType        #104:#105     // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #69 = Class              #106          // java/util/stream/Collectors\n-   #70 = NameAndType        #107:#108     // toList:()Ljava/util/stream/Collector;\n-   #71 = NameAndType        #109:#110     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #72 = Utf8               java/util/List\n-   #73 = Utf8               dev/langchain4j/data/segment/TextSegment\n-   #74 = Class              #111          // dev/langchain4j/data/document/Metadata\n-   #75 = NameAndType        #112:#83      // copy:()Ldev/langchain4j/data/document/Metadata;\n-   #76 = NameAndType        #21:#113      // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-   #77 = NameAndType        #114:#115     // isEmpty:()Z\n-   #78 = Class              #116          // dev/langchain4j/data/document/DocumentSplitterTest\n-   #79 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n-   #80 = Utf8               java/lang/Object\n-   #81 = Utf8               dev/langchain4j/data/document/DocumentSplitter\n-   #82 = Utf8               dev/langchain4j/data/document/Document\n-   #83 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-   #84 = Utf8               text\n-   #85 = Utf8               ()Ljava/lang/String;\n-   #86 = Utf8               java/lang/String\n-   #87 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n-   #88 = Utf8               java/util/Arrays\n-   #89 = Utf8               stream\n-   #90 = Utf8               ([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-   #91 = Methodref          #117.#118     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #92 = Utf8               (Ljava/lang/Object;)Z\n-   #93 = Methodref          #18.#119      // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$0:(Ljava/lang/String;)Z\n-   #94 = Utf8               test\n-   #95 = Utf8               ()Ljava/util/function/Predicate;\n-   #96 = Utf8               java/util/stream/Stream\n-   #97 = Utf8               filter\n-   #98 = Utf8               (Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n-   #99 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #100 = Methodref          #18.#120      // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #101 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #102 = Utf8               apply\n-  #103 = Utf8               (Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n-  #104 = Utf8               map\n-  #105 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #106 = Utf8               java/util/stream/Collectors\n-  #107 = Utf8               toList\n-  #108 = Utf8               ()Ljava/util/stream/Collector;\n-  #109 = Utf8               collect\n-  #110 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #111 = Utf8               dev/langchain4j/data/document/Metadata\n-  #112 = Utf8               copy\n-  #113 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #114 = Utf8               isEmpty\n-  #115 = Utf8               ()Z\n-  #116 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest\n-  #117 = Class              #121          // java/lang/invoke/LambdaMetafactory\n-  #118 = NameAndType        #122:#125     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #119 = NameAndType        #42:#43       // lambda$split$0:(Ljava/lang/String;)Z\n-  #120 = NameAndType        #38:#39       // lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #121 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #122 = Utf8               metafactory\n-  #123 = Class              #127          // java/lang/invoke/MethodHandles$Lookup\n-  #124 = Utf8               Lookup\n-  #125 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #126 = Class              #128          // java/lang/invoke/MethodHandles\n-  #127 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #128 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+    #8 = Class              #10           // dev/langchain4j/data/document/Document\n+    #9 = NameAndType        #11:#12       // metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #10 = Utf8               dev/langchain4j/data/document/Document\n+   #11 = Utf8               metadata\n+   #12 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+   #13 = Methodref          #8.#14        // dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+   #14 = NameAndType        #15:#16       // text:()Ljava/lang/String;\n+   #15 = Utf8               text\n+   #16 = Utf8               ()Ljava/lang/String;\n+   #17 = String             #18           // \\\\s+\n+   #18 = Utf8               \\\\s+\n+   #19 = Methodref          #20.#21       // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+   #20 = Class              #22           // java/lang/String\n+   #21 = NameAndType        #23:#24       // split:(Ljava/lang/String;)[Ljava/lang/String;\n+   #22 = Utf8               java/lang/String\n+   #23 = Utf8               split\n+   #24 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n+   #25 = Methodref          #26.#27       // java/util/Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+   #26 = Class              #28           // java/util/Arrays\n+   #27 = NameAndType        #29:#30       // stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+   #28 = Utf8               java/util/Arrays\n+   #29 = Utf8               stream\n+   #30 = Utf8               ([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+   #31 = InvokeDynamic      #0:#32        // #0:test:()Ljava/util/function/Predicate;\n+   #32 = NameAndType        #33:#34       // test:()Ljava/util/function/Predicate;\n+   #33 = Utf8               test\n+   #34 = Utf8               ()Ljava/util/function/Predicate;\n+   #35 = InterfaceMethodref #36.#37       // java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n+   #36 = Class              #38           // java/util/stream/Stream\n+   #37 = NameAndType        #39:#40       // filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n+   #38 = Utf8               java/util/stream/Stream\n+   #39 = Utf8               filter\n+   #40 = Utf8               (Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n+   #41 = InvokeDynamic      #1:#42        // #1:apply:(Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n+   #42 = NameAndType        #43:#44       // apply:(Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n+   #43 = Utf8               apply\n+   #44 = Utf8               (Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n+   #45 = InterfaceMethodref #36.#46       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #46 = NameAndType        #47:#48       // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #47 = Utf8               map\n+   #48 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #49 = Methodref          #50.#51       // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+   #50 = Class              #52           // java/util/stream/Collectors\n+   #51 = NameAndType        #53:#54       // toList:()Ljava/util/stream/Collector;\n+   #52 = Utf8               java/util/stream/Collectors\n+   #53 = Utf8               toList\n+   #54 = Utf8               ()Ljava/util/stream/Collector;\n+   #55 = InterfaceMethodref #36.#56       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #56 = NameAndType        #57:#58       // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #57 = Utf8               collect\n+   #58 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #59 = Class              #60           // java/util/List\n+   #60 = Utf8               java/util/List\n+   #61 = Class              #62           // dev/langchain4j/data/segment/TextSegment\n+   #62 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #63 = Methodref          #64.#65       // dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n+   #64 = Class              #66           // dev/langchain4j/data/document/Metadata\n+   #65 = NameAndType        #67:#12       // copy:()Ldev/langchain4j/data/document/Metadata;\n+   #66 = Utf8               dev/langchain4j/data/document/Metadata\n+   #67 = Utf8               copy\n+   #68 = Methodref          #61.#69       // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+   #69 = NameAndType        #5:#70        // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+   #70 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+   #71 = Methodref          #20.#72       // java/lang/String.isEmpty:()Z\n+   #72 = NameAndType        #73:#74       // isEmpty:()Z\n+   #73 = Utf8               isEmpty\n+   #74 = Utf8               ()Z\n+   #75 = Class              #76           // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n+   #76 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n+   #77 = Class              #78           // dev/langchain4j/data/document/DocumentSplitter\n+   #78 = Utf8               dev/langchain4j/data/document/DocumentSplitter\n+   #79 = Utf8               Code\n+   #80 = Utf8               LineNumberTable\n+   #81 = Utf8               LocalVariableTable\n+   #82 = Utf8               this\n+   #83 = Utf8               Ldev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter;\n+   #84 = Utf8               (Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n+   #85 = Utf8               document\n+   #86 = Utf8               Ldev/langchain4j/data/document/Document;\n+   #87 = Utf8               Ldev/langchain4j/data/document/Metadata;\n+   #88 = Utf8               Signature\n+   #89 = Utf8               (Ldev/langchain4j/data/document/Document;)Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+   #90 = Utf8               lambda$split$1\n+   #91 = Utf8               (Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #92 = Utf8               s\n+   #93 = Utf8               Ljava/lang/String;\n+   #94 = Utf8               lambda$split$0\n+   #95 = Utf8               (Ljava/lang/String;)Z\n+   #96 = Utf8               StackMapTable\n+   #97 = Utf8               SourceFile\n+   #98 = Utf8               DocumentSplitterTest.java\n+   #99 = Utf8               BootstrapMethods\n+  #100 = MethodHandle       6:#101        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #101 = Methodref          #102.#103     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #102 = Class              #104          // java/lang/invoke/LambdaMetafactory\n+  #103 = NameAndType        #105:#106     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #104 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #105 = Utf8               metafactory\n+  #106 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #107 = MethodType         #108          //  (Ljava/lang/Object;)Z\n+  #108 = Utf8               (Ljava/lang/Object;)Z\n+  #109 = MethodHandle       6:#110        // REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$0:(Ljava/lang/String;)Z\n+  #110 = Methodref          #75.#111      // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$0:(Ljava/lang/String;)Z\n+  #111 = NameAndType        #94:#95       // lambda$split$0:(Ljava/lang/String;)Z\n+  #112 = MethodType         #95           //  (Ljava/lang/String;)Z\n+  #113 = MethodType         #114          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #114 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #115 = MethodHandle       6:#116        // REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #116 = Methodref          #75.#117      // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #117 = NameAndType        #90:#91       // lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #118 = MethodType         #119          //  (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #119 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #120 = Utf8               InnerClasses\n+  #121 = Class              #122          // dev/langchain4j/data/document/DocumentSplitterTest\n+  #122 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest\n+  #123 = Utf8               WhitespaceSplitter\n+  #124 = Class              #125          // java/lang/invoke/MethodHandles$Lookup\n+  #125 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #126 = Class              #127          // java/lang/invoke/MethodHandles\n+  #127 = Utf8               java/lang/invoke/MethodHandles\n+  #128 = Utf8               Lookup\n {\n   public dev.langchain4j.data.document.DocumentSplitterTest$WhitespaceSplitter();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -153,70 +153,70 @@\n \n   public java.util.List<dev.langchain4j.data.segment.TextSegment> split(dev.langchain4j.data.document.Document);\n     descriptor: (Ldev/langchain4j/data/document/Document;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=2\n          0: aload_1\n-         1: invokevirtual #2                  // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+         1: invokevirtual #7                  // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n          4: astore_2\n          5: aload_1\n-         6: invokevirtual #3                  // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-         9: ldc           #4                  // String \\\\s+\n-        11: invokevirtual #5                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n-        14: invokestatic  #6                  // Method java/util/Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-        17: invokedynamic #7,  0              // InvokeDynamic #0:test:()Ljava/util/function/Predicate;\n-        22: invokeinterface #8,  2            // InterfaceMethod java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n+         6: invokevirtual #13                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+         9: ldc           #17                 // String \\\\s+\n+        11: invokevirtual #19                 // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+        14: invokestatic  #25                 // Method java/util/Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+        17: invokedynamic #31,  0             // InvokeDynamic #0:test:()Ljava/util/function/Predicate;\n+        22: invokeinterface #35,  2           // InterfaceMethod java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n         27: aload_2\n-        28: invokedynamic #9,  0              // InvokeDynamic #1:apply:(Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n-        33: invokeinterface #10,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        38: invokestatic  #11                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        41: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        46: checkcast     #13                 // class java/util/List\n+        28: invokedynamic #41,  0             // InvokeDynamic #1:apply:(Ldev/langchain4j/data/document/Metadata;)Ljava/util/function/Function;\n+        33: invokeinterface #45,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        38: invokestatic  #49                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        41: invokeinterface #55,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        46: checkcast     #59                 // class java/util/List\n         49: areturn\n       LineNumberTable:\n         line 17: 0\n         line 18: 5\n         line 19: 6\n         line 20: 33\n         line 21: 38\n         line 18: 49\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      50     0  this   Ldev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter;\n             0      50     1 document   Ldev/langchain4j/data/document/Document;\n             5      45     2 metadata   Ldev/langchain4j/data/document/Metadata;\n-    Signature: #37                          // (Ldev/langchain4j/data/document/Document;)Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+    Signature: #89                          // (Ldev/langchain4j/data/document/Document;)Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n \n   private static dev.langchain4j.data.segment.TextSegment lambda$split$1(dev.langchain4j.data.document.Metadata, java.lang.String);\n     descriptor: (Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=2, args_size=2\n-         0: new           #14                 // class dev/langchain4j/data/segment/TextSegment\n+         0: new           #61                 // class dev/langchain4j/data/segment/TextSegment\n          3: dup\n          4: aload_1\n          5: aload_0\n-         6: invokevirtual #15                 // Method dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n-         9: invokespecial #16                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+         6: invokevirtual #63                 // Method dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n+         9: invokespecial #68                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n         12: areturn\n       LineNumberTable:\n         line 20: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0 metadata   Ldev/langchain4j/data/document/Metadata;\n             0      13     1     s   Ljava/lang/String;\n \n   private static boolean lambda$split$0(java.lang.String);\n     descriptor: (Ljava/lang/String;)Z\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #17                 // Method java/lang/String.isEmpty:()Z\n+         1: invokevirtual #71                 // Method java/lang/String.isEmpty:()Z\n          4: ifne          11\n          7: iconst_1\n          8: goto          12\n         11: iconst_0\n         12: ireturn\n       LineNumberTable:\n         line 19: 0\n@@ -225,21 +225,21 @@\n             0      13     0     s   Ljava/lang/String;\n       StackMapTable: number_of_entries = 2\n         frame_type = 11 /* same */\n         frame_type = 64 /* same_locals_1_stack_item */\n           stack = [ int ]\n }\n SourceFile: \"DocumentSplitterTest.java\"\n-InnerClasses:\n-  public static final #27= #18 of #78;    // WhitespaceSplitter=class dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter of class dev/langchain4j/data/document/DocumentSplitterTest\n-  public static final #124= #123 of #126; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #57 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #100 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #58 (Ljava/lang/Object;)Z\n-      #59 REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$0:(Ljava/lang/String;)Z\n-      #60 (Ljava/lang/String;)Z\n-  1: #57 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #107 (Ljava/lang/Object;)Z\n+      #109 REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$0:(Ljava/lang/String;)Z\n+      #112 (Ljava/lang/String;)Z\n+  1: #100 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #64 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #65 REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-      #66 (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      #113 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #115 REF_invokeStatic dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.lambda$split$1:(Ldev/langchain4j/data/document/Metadata;Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      #118 (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+InnerClasses:\n+  public static final #123= #75 of #121;  // WhitespaceSplitter=class dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter of class dev/langchain4j/data/document/DocumentSplitterTest\n+  public static final #128= #124 of #126; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentSplitterTest.class", "source2": "dev/langchain4j/data/document/DocumentSplitterTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,102 +1,102 @@\n-  SHA-256 checksum a78875223e3dc24b3d754fa91d1e9523d63ab1df0403b49e59f2a1ecab3dbcfa\n+  SHA-256 checksum a998281794477049dfde356fa0995ab8634ed3e500d98e6a8b9f5043c41217a6\n   Compiled from \"DocumentSplitterTest.java\"\n class dev.langchain4j.data.document.DocumentSplitterTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #22                         // dev/langchain4j/data/document/DocumentSplitterTest\n-  super_class: #23                        // java/lang/Object\n+  this_class: #45                         // dev/langchain4j/data/document/DocumentSplitterTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #23.#45        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #46            // java/util/ArrayList\n-   #3 = Methodref          #2.#45         // java/util/ArrayList.\"<init>\":()V\n-   #4 = String             #47            // abc def\n-   #5 = Methodref          #48.#49        // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-   #6 = InterfaceMethodref #50.#51        // java/util/List.add:(Ljava/lang/Object;)Z\n-   #7 = String             #52            // foo\n-   #8 = String             #53            // bar\n-   #9 = Methodref          #17.#54        // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #10 = Methodref          #48.#55        // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #11 = Class              #56            // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n-  #12 = Methodref          #11.#45        // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.\"<init>\":()V\n-  #13 = Methodref          #11.#57        // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n-  #14 = Methodref          #22.#58        // dev/langchain4j/data/document/DocumentSplitterTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #15 = Class              #59            // dev/langchain4j/data/segment/TextSegment\n-  #16 = String             #60            // abc\n-  #17 = Class              #61            // dev/langchain4j/data/document/Metadata\n-  #18 = Methodref          #17.#45        // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-  #19 = Methodref          #15.#62        // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #20 = String             #63            // def\n-  #21 = Methodref          #64.#65        // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #22 = Class              #66            // dev/langchain4j/data/document/DocumentSplitterTest\n-  #23 = Class              #67            // java/lang/Object\n-  #24 = Class              #68            // org/assertj/core/api/WithAssertions\n-  #25 = Utf8               WhitespaceSplitter\n-  #26 = Utf8               InnerClasses\n-  #27 = Utf8               <init>\n-  #28 = Utf8               ()V\n-  #29 = Utf8               Code\n-  #30 = Utf8               LineNumberTable\n-  #31 = Utf8               LocalVariableTable\n-  #32 = Utf8               this\n-  #33 = Utf8               Ldev/langchain4j/data/document/DocumentSplitterTest;\n-  #34 = Utf8               test_splitAll\n-  #35 = Utf8               docs\n-  #36 = Utf8               Ljava/util/List;\n-  #37 = Utf8               splitter\n-  #38 = Utf8               Ldev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter;\n-  #39 = Utf8               LocalVariableTypeTable\n-  #40 = Utf8               Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n-  #41 = Utf8               RuntimeVisibleAnnotations\n-  #42 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #43 = Utf8               SourceFile\n-  #44 = Utf8               DocumentSplitterTest.java\n-  #45 = NameAndType        #27:#28        // \"<init>\":()V\n-  #46 = Utf8               java/util/ArrayList\n-  #47 = Utf8               abc def\n-  #48 = Class              #69            // dev/langchain4j/data/document/Document\n-  #49 = NameAndType        #70:#71        // document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #50 = Class              #72            // java/util/List\n-  #51 = NameAndType        #73:#74        // add:(Ljava/lang/Object;)Z\n-  #52 = Utf8               foo\n-  #53 = Utf8               bar\n-  #54 = NameAndType        #75:#76        // metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #55 = NameAndType        #70:#77        // document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #56 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n-  #57 = NameAndType        #78:#79        // splitAll:(Ljava/util/List;)Ljava/util/List;\n-  #58 = NameAndType        #80:#81        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #59 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #60 = Utf8               abc\n-  #61 = Utf8               dev/langchain4j/data/document/Metadata\n-  #62 = NameAndType        #27:#82        // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #63 = Utf8               def\n-  #64 = Class              #83            // org/assertj/core/api/ListAssert\n-  #65 = NameAndType        #84:#85        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #66 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest\n-  #67 = Utf8               java/lang/Object\n-  #68 = Utf8               org/assertj/core/api/WithAssertions\n-  #69 = Utf8               dev/langchain4j/data/document/Document\n-  #70 = Utf8               document\n-  #71 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #72 = Utf8               java/util/List\n-  #73 = Utf8               add\n-  #74 = Utf8               (Ljava/lang/Object;)Z\n-  #75 = Utf8               metadata\n-  #76 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #77 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #78 = Utf8               splitAll\n-  #79 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #80 = Utf8               assertThat\n-  #81 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #82 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #83 = Utf8               org/assertj/core/api/ListAssert\n-  #84 = Utf8               containsExactly\n-  #85 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // java/util/ArrayList\n+   #8 = Utf8               java/util/ArrayList\n+   #9 = Methodref          #7.#3          // java/util/ArrayList.\"<init>\":()V\n+  #10 = String             #11            // abc def\n+  #11 = Utf8               abc def\n+  #12 = Methodref          #13.#14        // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #13 = Class              #15            // dev/langchain4j/data/document/Document\n+  #14 = NameAndType        #16:#17        // document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #15 = Utf8               dev/langchain4j/data/document/Document\n+  #16 = Utf8               document\n+  #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #18 = InterfaceMethodref #19.#20        // java/util/List.add:(Ljava/lang/Object;)Z\n+  #19 = Class              #21            // java/util/List\n+  #20 = NameAndType        #22:#23        // add:(Ljava/lang/Object;)Z\n+  #21 = Utf8               java/util/List\n+  #22 = Utf8               add\n+  #23 = Utf8               (Ljava/lang/Object;)Z\n+  #24 = String             #25            // foo\n+  #25 = Utf8               foo\n+  #26 = String             #27            // bar\n+  #27 = Utf8               bar\n+  #28 = Methodref          #29.#30        // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #29 = Class              #31            // dev/langchain4j/data/document/Metadata\n+  #30 = NameAndType        #32:#33        // metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #31 = Utf8               dev/langchain4j/data/document/Metadata\n+  #32 = Utf8               metadata\n+  #33 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #34 = Methodref          #13.#35        // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+  #35 = NameAndType        #16:#36        // document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+  #36 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+  #37 = Class              #38            // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n+  #38 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n+  #39 = Methodref          #37.#3         // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.\"<init>\":()V\n+  #40 = Methodref          #37.#41        // dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+  #41 = NameAndType        #42:#43        // splitAll:(Ljava/util/List;)Ljava/util/List;\n+  #42 = Utf8               splitAll\n+  #43 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+  #44 = Methodref          #45.#46        // dev/langchain4j/data/document/DocumentSplitterTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #45 = Class              #47            // dev/langchain4j/data/document/DocumentSplitterTest\n+  #46 = NameAndType        #48:#49        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #47 = Utf8               dev/langchain4j/data/document/DocumentSplitterTest\n+  #48 = Utf8               assertThat\n+  #49 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #50 = Class              #51            // dev/langchain4j/data/segment/TextSegment\n+  #51 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #52 = String             #53            // abc\n+  #53 = Utf8               abc\n+  #54 = Methodref          #29.#3         // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+  #55 = Methodref          #50.#56        // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #56 = NameAndType        #5:#57         // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #57 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #58 = String             #59            // def\n+  #59 = Utf8               def\n+  #60 = Methodref          #61.#62        // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #61 = Class              #63            // org/assertj/core/api/ListAssert\n+  #62 = NameAndType        #64:#65        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #63 = Utf8               org/assertj/core/api/ListAssert\n+  #64 = Utf8               containsExactly\n+  #65 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #66 = Class              #67            // org/assertj/core/api/WithAssertions\n+  #67 = Utf8               org/assertj/core/api/WithAssertions\n+  #68 = Utf8               Code\n+  #69 = Utf8               LineNumberTable\n+  #70 = Utf8               LocalVariableTable\n+  #71 = Utf8               this\n+  #72 = Utf8               Ldev/langchain4j/data/document/DocumentSplitterTest;\n+  #73 = Utf8               test_splitAll\n+  #74 = Utf8               docs\n+  #75 = Utf8               Ljava/util/List;\n+  #76 = Utf8               splitter\n+  #77 = Utf8               Ldev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter;\n+  #78 = Utf8               LocalVariableTypeTable\n+  #79 = Utf8               Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n+  #80 = Utf8               RuntimeVisibleAnnotations\n+  #81 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #82 = Utf8               SourceFile\n+  #83 = Utf8               DocumentSplitterTest.java\n+  #84 = Utf8               InnerClasses\n+  #85 = Utf8               WhitespaceSplitter\n {\n   dev.langchain4j.data.document.DocumentSplitterTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -109,83 +109,83 @@\n             0       5     0  this   Ldev/langchain4j/data/document/DocumentSplitterTest;\n \n   public void test_splitAll();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=9, locals=3, args_size=1\n-         0: new           #2                  // class java/util/ArrayList\n+         0: new           #7                  // class java/util/ArrayList\n          3: dup\n-         4: invokespecial #3                  // Method java/util/ArrayList.\"<init>\":()V\n+         4: invokespecial #9                  // Method java/util/ArrayList.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String abc def\n-        11: invokestatic  #5                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-        14: invokeinterface #6,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+         9: ldc           #10                 // String abc def\n+        11: invokestatic  #12                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        14: invokeinterface #18,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         19: pop\n         20: aload_1\n-        21: ldc           #4                  // String abc def\n-        23: ldc           #7                  // String foo\n-        25: ldc           #8                  // String bar\n-        27: invokestatic  #9                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        30: invokestatic  #10                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-        33: invokeinterface #6,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        21: ldc           #10                 // String abc def\n+        23: ldc           #24                 // String foo\n+        25: ldc           #26                 // String bar\n+        27: invokestatic  #28                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        30: invokestatic  #34                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        33: invokeinterface #18,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         38: pop\n-        39: new           #11                 // class dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n+        39: new           #37                 // class dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter\n         42: dup\n-        43: invokespecial #12                 // Method dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.\"<init>\":()V\n+        43: invokespecial #39                 // Method dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.\"<init>\":()V\n         46: astore_2\n         47: aload_0\n         48: aload_2\n         49: aload_1\n-        50: invokevirtual #13                 // Method dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n-        53: invokevirtual #14                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        50: invokevirtual #40                 // Method dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+        53: invokevirtual #44                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         56: iconst_4\n-        57: anewarray     #15                 // class dev/langchain4j/data/segment/TextSegment\n+        57: anewarray     #50                 // class dev/langchain4j/data/segment/TextSegment\n         60: dup\n         61: iconst_0\n-        62: new           #15                 // class dev/langchain4j/data/segment/TextSegment\n+        62: new           #50                 // class dev/langchain4j/data/segment/TextSegment\n         65: dup\n-        66: ldc           #16                 // String abc\n-        68: new           #17                 // class dev/langchain4j/data/document/Metadata\n+        66: ldc           #52                 // String abc\n+        68: new           #29                 // class dev/langchain4j/data/document/Metadata\n         71: dup\n-        72: invokespecial #18                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        75: invokespecial #19                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        72: invokespecial #54                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        75: invokespecial #55                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n         78: aastore\n         79: dup\n         80: iconst_1\n-        81: new           #15                 // class dev/langchain4j/data/segment/TextSegment\n+        81: new           #50                 // class dev/langchain4j/data/segment/TextSegment\n         84: dup\n-        85: ldc           #20                 // String def\n-        87: new           #17                 // class dev/langchain4j/data/document/Metadata\n+        85: ldc           #58                 // String def\n+        87: new           #29                 // class dev/langchain4j/data/document/Metadata\n         90: dup\n-        91: invokespecial #18                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        94: invokespecial #19                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        91: invokespecial #54                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        94: invokespecial #55                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n         97: aastore\n         98: dup\n         99: iconst_2\n-       100: new           #15                 // class dev/langchain4j/data/segment/TextSegment\n+       100: new           #50                 // class dev/langchain4j/data/segment/TextSegment\n        103: dup\n-       104: ldc           #16                 // String abc\n-       106: ldc           #7                  // String foo\n-       108: ldc           #8                  // String bar\n-       110: invokestatic  #9                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       113: invokespecial #19                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+       104: ldc           #52                 // String abc\n+       106: ldc           #24                 // String foo\n+       108: ldc           #26                 // String bar\n+       110: invokestatic  #28                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       113: invokespecial #55                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n        116: aastore\n        117: dup\n        118: iconst_3\n-       119: new           #15                 // class dev/langchain4j/data/segment/TextSegment\n+       119: new           #50                 // class dev/langchain4j/data/segment/TextSegment\n        122: dup\n-       123: ldc           #20                 // String def\n-       125: ldc           #7                  // String foo\n-       127: ldc           #8                  // String bar\n-       129: invokestatic  #9                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       132: invokespecial #19                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+       123: ldc           #58                 // String def\n+       125: ldc           #24                 // String foo\n+       127: ldc           #26                 // String bar\n+       129: invokestatic  #28                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       132: invokespecial #55                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n        135: aastore\n-       136: invokevirtual #21                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       136: invokevirtual #60                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        139: pop\n        140: return\n       LineNumberTable:\n         line 27: 0\n         line 28: 8\n         line 29: 20\n         line 31: 39\n@@ -199,13 +199,13 @@\n             0     141     0  this   Ldev/langchain4j/data/document/DocumentSplitterTest;\n             8     133     1  docs   Ljava/util/List;\n            47      94     2 splitter   Ldev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8     133     1  docs   Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n     RuntimeVisibleAnnotations:\n-      0: #42()\n+      0: #81()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"DocumentSplitterTest.java\"\n InnerClasses:\n-  public static final #25= #11 of #22;    // WhitespaceSplitter=class dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter of class dev/langchain4j/data/document/DocumentSplitterTest\n+  public static final #85= #37 of #45;    // WhitespaceSplitter=class dev/langchain4j/data/document/DocumentSplitterTest$WhitespaceSplitter of class dev/langchain4j/data/document/DocumentSplitterTest\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentTest.class", "source2": "dev/langchain4j/data/document/DocumentTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,172 +1,172 @@\n-  SHA-256 checksum 3c45d81d70a0bce0a9648d5a4b9b64089ad2f4d26f85bb7b9d8ee312641fd0aa\n+  SHA-256 checksum a107045d1e8c8284379aa03f21cfd53961fd23fbe7f6820e05351d50dd087d21\n   Compiled from \"DocumentTest.java\"\n class dev.langchain4j.data.document.DocumentTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #43                         // dev/langchain4j/data/document/DocumentTest\n-  super_class: #44                        // java/lang/Object\n+  this_class: #28                         // dev/langchain4j/data/document/DocumentTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 5, attributes: 1\n Constant pool:\n-    #1 = Methodref          #44.#71       // java/lang/Object.\"<init>\":()V\n-    #2 = String             #72           // foo bar\n-    #3 = Methodref          #38.#73       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-    #4 = String             #74           // foo\n-    #5 = String             #75           // bar\n-    #6 = Methodref          #31.#76       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-    #7 = Methodref          #38.#77       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-    #8 = Methodref          #43.#78       // dev/langchain4j/data/document/DocumentTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-    #9 = Methodref          #10.#79       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #10 = Class              #80           // org/assertj/core/api/ObjectAssert\n-   #11 = Methodref          #10.#81       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #12 = Methodref          #10.#82       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #13 = Methodref          #10.#83       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #14 = Methodref          #38.#84       // dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-   #15 = Methodref          #43.#85       // dev/langchain4j/data/document/DocumentTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #16 = Methodref          #86.#87       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #17 = Methodref          #38.#88       // dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #18 = Methodref          #31.#89       // dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n-   #19 = InterfaceMethodref #90.#91       // java/util/Map.isEmpty:()Z\n-   #20 = Methodref          #43.#92       // dev/langchain4j/data/document/DocumentTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #21 = Methodref          #93.#94       // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #22 = String             #95           // Document { text = \\\"foo bar\\\" metadata = {} }\n-   #23 = Methodref          #10.#96       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #24 = Class              #97           // java/util/HashMap\n-   #25 = Methodref          #24.#71       // java/util/HashMap.\"<init>\":()V\n-   #26 = String             #98           // index\n-   #27 = String             #99           // 0\n-   #28 = InterfaceMethodref #90.#100      // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #29 = Methodref          #38.#101      // dev/langchain4j/data/document/Document.toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-   #30 = Class              #102          // dev/langchain4j/data/segment/TextSegment\n-   #31 = Class              #103          // dev/langchain4j/data/document/Metadata\n-   #32 = Methodref          #31.#104      // dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n-   #33 = Methodref          #30.#105      // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-   #34 = Methodref          #43.#106      // dev/langchain4j/data/document/DocumentTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #35 = Methodref          #107.#108     // org/assertj/core/api/MapAssert.hasSize:(I)Lorg/assertj/core/api/AbstractMapAssert;\n-   #36 = Methodref          #38.#109      // dev/langchain4j/data/document/Document.metadata:(Ljava/lang/String;)Ljava/lang/String;\n-   #37 = String             #110          // Document { text = \\\"foo bar\\\" metadata = {foo=bar} }\n-   #38 = Class              #111          // dev/langchain4j/data/document/Document\n-   #39 = Methodref          #31.#71       // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-   #40 = Methodref          #38.#105      // dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-   #41 = Methodref          #38.#112      // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-   #42 = Methodref          #38.#113      // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-   #43 = Class              #114          // dev/langchain4j/data/document/DocumentTest\n-   #44 = Class              #115          // java/lang/Object\n-   #45 = Class              #116          // org/assertj/core/api/WithAssertions\n-   #46 = Utf8               <init>\n-   #47 = Utf8               ()V\n-   #48 = Utf8               Code\n-   #49 = Utf8               LineNumberTable\n-   #50 = Utf8               LocalVariableTable\n-   #51 = Utf8               this\n-   #52 = Utf8               Ldev/langchain4j/data/document/DocumentTest;\n-   #53 = Utf8               test_equals_hashCode\n-   #54 = Utf8               document1\n-   #55 = Utf8               Ldev/langchain4j/data/document/Document;\n-   #56 = Utf8               document2\n-   #57 = Utf8               document3\n-   #58 = Utf8               document4\n-   #59 = Utf8               RuntimeVisibleAnnotations\n-   #60 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #61 = Utf8               test_noMetadata\n-   #62 = Utf8               document\n-   #63 = Utf8               expectedMetadata\n-   #64 = Utf8               Ljava/util/Map;\n-   #65 = Utf8               LocalVariableTypeTable\n-   #66 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n-   #67 = Utf8               test_withMetadata\n-   #68 = Utf8               test_from\n-   #69 = Utf8               SourceFile\n-   #70 = Utf8               DocumentTest.java\n-   #71 = NameAndType        #46:#47       // \"<init>\":()V\n-   #72 = Utf8               foo bar\n-   #73 = NameAndType        #117:#118     // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-   #74 = Utf8               foo\n-   #75 = Utf8               bar\n-   #76 = NameAndType        #117:#119     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #77 = NameAndType        #117:#120     // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-   #78 = NameAndType        #121:#122     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #79 = NameAndType        #123:#124     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #80 = Utf8               org/assertj/core/api/ObjectAssert\n-   #81 = NameAndType        #125:#124     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #82 = NameAndType        #126:#124     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #83 = NameAndType        #127:#124     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #84 = NameAndType        #128:#129     // text:()Ljava/lang/String;\n-   #85 = NameAndType        #121:#130     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #86 = Class              #131          // org/assertj/core/api/AbstractStringAssert\n-   #87 = NameAndType        #123:#130     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #88 = NameAndType        #132:#133     // metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #89 = NameAndType        #134:#135     // asMap:()Ljava/util/Map;\n-   #90 = Class              #136          // java/util/Map\n-   #91 = NameAndType        #137:#138     // isEmpty:()Z\n-   #92 = NameAndType        #121:#139     // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #93 = Class              #140          // org/assertj/core/api/AbstractBooleanAssert\n-   #94 = NameAndType        #141:#142     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #95 = Utf8               Document { text = \\\"foo bar\\\" metadata = {} }\n-   #96 = NameAndType        #143:#144     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #97 = Utf8               java/util/HashMap\n-   #98 = Utf8               index\n-   #99 = Utf8               0\n-  #100 = NameAndType        #145:#146     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #101 = NameAndType        #147:#148     // toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-  #102 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #103 = Utf8               dev/langchain4j/data/document/Metadata\n-  #104 = NameAndType        #46:#149      // \"<init>\":(Ljava/util/Map;)V\n-  #105 = NameAndType        #46:#150      // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #106 = NameAndType        #121:#151     // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #107 = Class              #152          // org/assertj/core/api/MapAssert\n-  #108 = NameAndType        #153:#154     // hasSize:(I)Lorg/assertj/core/api/AbstractMapAssert;\n-  #109 = NameAndType        #132:#155     // metadata:(Ljava/lang/String;)Ljava/lang/String;\n-  #110 = Utf8               Document { text = \\\"foo bar\\\" metadata = {foo=bar} }\n-  #111 = Utf8               dev/langchain4j/data/document/Document\n-  #112 = NameAndType        #62:#118      // document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #113 = NameAndType        #62:#120      // document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #114 = Utf8               dev/langchain4j/data/document/DocumentTest\n-  #115 = Utf8               java/lang/Object\n-  #116 = Utf8               org/assertj/core/api/WithAssertions\n-  #117 = Utf8               from\n-  #118 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #119 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #120 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-  #121 = Utf8               assertThat\n-  #122 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #123 = Utf8               isEqualTo\n-  #124 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #125 = Utf8               hasSameHashCodeAs\n-  #126 = Utf8               isNotEqualTo\n-  #127 = Utf8               doesNotHaveSameHashCodeAs\n-  #128 = Utf8               text\n-  #129 = Utf8               ()Ljava/lang/String;\n-  #130 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #131 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #132 = Utf8               metadata\n-  #133 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #134 = Utf8               asMap\n-  #135 = Utf8               ()Ljava/util/Map;\n-  #136 = Utf8               java/util/Map\n-  #137 = Utf8               isEmpty\n-  #138 = Utf8               ()Z\n-  #139 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #140 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n-  #141 = Utf8               isTrue\n-  #142 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #143 = Utf8               hasToString\n-  #144 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #145 = Utf8               put\n-  #146 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #147 = Utf8               toTextSegment\n-  #148 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n-  #149 = Utf8               (Ljava/util/Map;)V\n-  #150 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #151 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #152 = Utf8               org/assertj/core/api/MapAssert\n-  #153 = Utf8               hasSize\n-  #154 = Utf8               (I)Lorg/assertj/core/api/AbstractMapAssert;\n-  #155 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // foo bar\n+    #8 = Utf8               foo bar\n+    #9 = Methodref          #10.#11       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #10 = Class              #12           // dev/langchain4j/data/document/Document\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #12 = Utf8               dev/langchain4j/data/document/Document\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #15 = String             #16           // foo\n+   #16 = Utf8               foo\n+   #17 = String             #18           // bar\n+   #18 = Utf8               bar\n+   #19 = Methodref          #20.#21       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #20 = Class              #22           // dev/langchain4j/data/document/Metadata\n+   #21 = NameAndType        #13:#23       // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #22 = Utf8               dev/langchain4j/data/document/Metadata\n+   #23 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #24 = Methodref          #10.#25       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #25 = NameAndType        #13:#26       // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #26 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #27 = Methodref          #28.#29       // dev/langchain4j/data/document/DocumentTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #28 = Class              #30           // dev/langchain4j/data/document/DocumentTest\n+   #29 = NameAndType        #31:#32       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #30 = Utf8               dev/langchain4j/data/document/DocumentTest\n+   #31 = Utf8               assertThat\n+   #32 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #33 = Methodref          #34.#35       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #34 = Class              #36           // org/assertj/core/api/ObjectAssert\n+   #35 = NameAndType        #37:#38       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #36 = Utf8               org/assertj/core/api/ObjectAssert\n+   #37 = Utf8               isEqualTo\n+   #38 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #39 = Methodref          #34.#40       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #40 = NameAndType        #41:#38       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #41 = Utf8               hasSameHashCodeAs\n+   #42 = Methodref          #34.#43       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #43 = NameAndType        #44:#38       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #44 = Utf8               isNotEqualTo\n+   #45 = Methodref          #34.#46       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #46 = NameAndType        #47:#38       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #47 = Utf8               doesNotHaveSameHashCodeAs\n+   #48 = Methodref          #10.#49       // dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+   #49 = NameAndType        #50:#51       // text:()Ljava/lang/String;\n+   #50 = Utf8               text\n+   #51 = Utf8               ()Ljava/lang/String;\n+   #52 = Methodref          #28.#53       // dev/langchain4j/data/document/DocumentTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #53 = NameAndType        #31:#54       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #54 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #55 = Methodref          #56.#57       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #56 = Class              #58           // org/assertj/core/api/AbstractStringAssert\n+   #57 = NameAndType        #37:#54       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #58 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #59 = Methodref          #10.#60       // dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #60 = NameAndType        #61:#62       // metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #61 = Utf8               metadata\n+   #62 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+   #63 = Methodref          #20.#64       // dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n+   #64 = NameAndType        #65:#66       // asMap:()Ljava/util/Map;\n+   #65 = Utf8               asMap\n+   #66 = Utf8               ()Ljava/util/Map;\n+   #67 = InterfaceMethodref #68.#69       // java/util/Map.isEmpty:()Z\n+   #68 = Class              #70           // java/util/Map\n+   #69 = NameAndType        #71:#72       // isEmpty:()Z\n+   #70 = Utf8               java/util/Map\n+   #71 = Utf8               isEmpty\n+   #72 = Utf8               ()Z\n+   #73 = Methodref          #28.#74       // dev/langchain4j/data/document/DocumentTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #74 = NameAndType        #31:#75       // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #75 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #76 = Methodref          #77.#78       // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #77 = Class              #79           // org/assertj/core/api/AbstractBooleanAssert\n+   #78 = NameAndType        #80:#81       // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #79 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n+   #80 = Utf8               isTrue\n+   #81 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #82 = String             #83           // Document { text = \\\"foo bar\\\" metadata = {} }\n+   #83 = Utf8               Document { text = \\\"foo bar\\\" metadata = {} }\n+   #84 = Methodref          #34.#85       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #85 = NameAndType        #86:#87       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #86 = Utf8               hasToString\n+   #87 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #88 = Class              #89           // java/util/HashMap\n+   #89 = Utf8               java/util/HashMap\n+   #90 = Methodref          #88.#3        // java/util/HashMap.\"<init>\":()V\n+   #91 = String             #92           // index\n+   #92 = Utf8               index\n+   #93 = String             #94           // 0\n+   #94 = Utf8               0\n+   #95 = InterfaceMethodref #68.#96       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #96 = NameAndType        #97:#98       // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #97 = Utf8               put\n+   #98 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #99 = Methodref          #10.#100      // dev/langchain4j/data/document/Document.toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+  #100 = NameAndType        #101:#102     // toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+  #101 = Utf8               toTextSegment\n+  #102 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n+  #103 = Class              #104          // dev/langchain4j/data/segment/TextSegment\n+  #104 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #105 = Methodref          #20.#106      // dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n+  #106 = NameAndType        #5:#107       // \"<init>\":(Ljava/util/Map;)V\n+  #107 = Utf8               (Ljava/util/Map;)V\n+  #108 = Methodref          #103.#109     // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #109 = NameAndType        #5:#110       // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #110 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #111 = Methodref          #28.#112      // dev/langchain4j/data/document/DocumentTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #112 = NameAndType        #31:#113      // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #113 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+  #114 = Methodref          #115.#116     // org/assertj/core/api/MapAssert.hasSize:(I)Lorg/assertj/core/api/AbstractMapAssert;\n+  #115 = Class              #117          // org/assertj/core/api/MapAssert\n+  #116 = NameAndType        #118:#119     // hasSize:(I)Lorg/assertj/core/api/AbstractMapAssert;\n+  #117 = Utf8               org/assertj/core/api/MapAssert\n+  #118 = Utf8               hasSize\n+  #119 = Utf8               (I)Lorg/assertj/core/api/AbstractMapAssert;\n+  #120 = Methodref          #10.#121      // dev/langchain4j/data/document/Document.metadata:(Ljava/lang/String;)Ljava/lang/String;\n+  #121 = NameAndType        #61:#122      // metadata:(Ljava/lang/String;)Ljava/lang/String;\n+  #122 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+  #123 = String             #124          // Document { text = \\\"foo bar\\\" metadata = {foo=bar} }\n+  #124 = Utf8               Document { text = \\\"foo bar\\\" metadata = {foo=bar} }\n+  #125 = Methodref          #20.#3        // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+  #126 = Methodref          #10.#109      // dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #127 = Methodref          #10.#128      // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #128 = NameAndType        #129:#14      // document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+  #129 = Utf8               document\n+  #130 = Methodref          #10.#131      // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+  #131 = NameAndType        #129:#26      // document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+  #132 = Class              #133          // org/assertj/core/api/WithAssertions\n+  #133 = Utf8               org/assertj/core/api/WithAssertions\n+  #134 = Utf8               Code\n+  #135 = Utf8               LineNumberTable\n+  #136 = Utf8               LocalVariableTable\n+  #137 = Utf8               this\n+  #138 = Utf8               Ldev/langchain4j/data/document/DocumentTest;\n+  #139 = Utf8               test_equals_hashCode\n+  #140 = Utf8               document1\n+  #141 = Utf8               Ldev/langchain4j/data/document/Document;\n+  #142 = Utf8               document2\n+  #143 = Utf8               document3\n+  #144 = Utf8               document4\n+  #145 = Utf8               RuntimeVisibleAnnotations\n+  #146 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #147 = Utf8               test_noMetadata\n+  #148 = Utf8               expectedMetadata\n+  #149 = Utf8               Ljava/util/Map;\n+  #150 = Utf8               LocalVariableTypeTable\n+  #151 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n+  #152 = Utf8               test_withMetadata\n+  #153 = Utf8               test_from\n+  #154 = Utf8               SourceFile\n+  #155 = Utf8               DocumentTest.java\n {\n   dev.langchain4j.data.document.DocumentTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -179,58 +179,58 @@\n             0       5     0  this   Ldev/langchain4j/data/document/DocumentTest;\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: ldc           #2                  // String foo bar\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+         0: ldc           #7                  // String foo bar\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n          5: astore_1\n-         6: ldc           #2                  // String foo bar\n-         8: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+         6: ldc           #7                  // String foo bar\n+         8: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n         11: astore_2\n-        12: ldc           #2                  // String foo bar\n-        14: ldc           #4                  // String foo\n-        16: ldc           #5                  // String bar\n-        18: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        21: invokestatic  #7                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        12: ldc           #7                  // String foo bar\n+        14: ldc           #15                 // String foo\n+        16: ldc           #17                 // String bar\n+        18: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        21: invokestatic  #24                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n         24: astore_3\n-        25: ldc           #2                  // String foo bar\n-        27: ldc           #4                  // String foo\n-        29: ldc           #5                  // String bar\n-        31: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        34: invokestatic  #7                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        25: ldc           #7                  // String foo bar\n+        27: ldc           #15                 // String foo\n+        29: ldc           #17                 // String bar\n+        31: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        34: invokestatic  #24                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n         37: astore        4\n         39: aload_0\n         40: aload_1\n-        41: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        41: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         44: aload_2\n-        45: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        48: checkcast     #10                 // class org/assertj/core/api/ObjectAssert\n+        45: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        48: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n         51: aload_2\n-        52: invokevirtual #11                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        52: invokevirtual #39                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         55: pop\n         56: aload_0\n         57: aload_1\n-        58: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        58: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         61: aload_3\n-        62: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        65: checkcast     #10                 // class org/assertj/core/api/ObjectAssert\n+        62: invokevirtual #42                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        65: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n         68: aload_3\n-        69: invokevirtual #13                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        69: invokevirtual #45                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         72: pop\n         73: aload_0\n         74: aload_3\n-        75: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        75: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         78: aload         4\n-        80: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        83: checkcast     #10                 // class org/assertj/core/api/ObjectAssert\n+        80: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        83: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n         86: aload         4\n-        88: invokevirtual #11                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        88: invokevirtual #39                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         91: pop\n         92: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 6\n         line 15: 12\n         line 16: 25\n@@ -248,68 +248,68 @@\n         Start  Length  Slot  Name   Signature\n             0      93     0  this   Ldev/langchain4j/data/document/DocumentTest;\n             6      87     1 document1   Ldev/langchain4j/data/document/Document;\n            12      81     2 document2   Ldev/langchain4j/data/document/Document;\n            25      68     3 document3   Ldev/langchain4j/data/document/Document;\n            39      54     4 document4   Ldev/langchain4j/data/document/Document;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #146()\n         org.junit.jupiter.api.Test\n \n   public void test_noMetadata();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=3, args_size=1\n-         0: ldc           #2                  // String foo bar\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+         0: ldc           #7                  // String foo bar\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n          5: astore_1\n          6: aload_0\n          7: aload_1\n-         8: invokevirtual #14                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-        11: invokevirtual #15                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        14: ldc           #2                  // String foo bar\n-        16: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         8: invokevirtual #48                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+        11: invokevirtual #52                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        14: ldc           #7                  // String foo bar\n+        16: invokevirtual #55                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         19: pop\n         20: aload_0\n         21: aload_1\n-        22: invokevirtual #17                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-        25: invokevirtual #18                 // Method dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n-        28: invokeinterface #19,  1           // InterfaceMethod java/util/Map.isEmpty:()Z\n-        33: invokevirtual #20                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        36: invokevirtual #21                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        22: invokevirtual #59                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+        25: invokevirtual #63                 // Method dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n+        28: invokeinterface #67,  1           // InterfaceMethod java/util/Map.isEmpty:()Z\n+        33: invokevirtual #73                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        36: invokevirtual #76                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         39: pop\n         40: aload_0\n         41: aload_1\n-        42: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        45: ldc           #22                 // String Document { text = \\\"foo bar\\\" metadata = {} }\n-        47: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        42: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        45: ldc           #82                 // String Document { text = \\\"foo bar\\\" metadata = {} }\n+        47: invokevirtual #84                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         50: pop\n-        51: new           #24                 // class java/util/HashMap\n+        51: new           #88                 // class java/util/HashMap\n         54: dup\n-        55: invokespecial #25                 // Method java/util/HashMap.\"<init>\":()V\n+        55: invokespecial #90                 // Method java/util/HashMap.\"<init>\":()V\n         58: astore_2\n         59: aload_2\n-        60: ldc           #26                 // String index\n-        62: ldc           #27                 // String 0\n-        64: invokeinterface #28,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        60: ldc           #91                 // String index\n+        62: ldc           #93                 // String 0\n+        64: invokeinterface #95,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         69: pop\n         70: aload_0\n         71: aload_1\n-        72: invokevirtual #29                 // Method dev/langchain4j/data/document/Document.toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-        75: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        78: new           #30                 // class dev/langchain4j/data/segment/TextSegment\n+        72: invokevirtual #99                 // Method dev/langchain4j/data/document/Document.toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+        75: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        78: new           #103                // class dev/langchain4j/data/segment/TextSegment\n         81: dup\n-        82: ldc           #2                  // String foo bar\n-        84: new           #31                 // class dev/langchain4j/data/document/Metadata\n+        82: ldc           #7                  // String foo bar\n+        84: new           #20                 // class dev/langchain4j/data/document/Metadata\n         87: dup\n         88: aload_2\n-        89: invokespecial #32                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n-        92: invokespecial #33                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-        95: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        89: invokespecial #105                // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n+        92: invokespecial #108                // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        95: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         98: pop\n         99: return\n       LineNumberTable:\n         line 33: 0\n         line 34: 6\n         line 35: 20\n         line 37: 40\n@@ -323,84 +323,84 @@\n             0     100     0  this   Ldev/langchain4j/data/document/DocumentTest;\n             6      94     1 document   Ldev/langchain4j/data/document/Document;\n            59      41     2 expectedMetadata   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            59      41     2 expectedMetadata   Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #146()\n         org.junit.jupiter.api.Test\n \n   public void test_withMetadata();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=3, args_size=1\n-         0: ldc           #2                  // String foo bar\n-         2: ldc           #4                  // String foo\n-         4: ldc           #5                  // String bar\n-         6: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-         9: invokestatic  #7                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+         0: ldc           #7                  // String foo bar\n+         2: ldc           #15                 // String foo\n+         4: ldc           #17                 // String bar\n+         6: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+         9: invokestatic  #24                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n         12: astore_1\n         13: aload_0\n         14: aload_1\n-        15: invokevirtual #14                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-        18: invokevirtual #15                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        21: ldc           #2                  // String foo bar\n-        23: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        15: invokevirtual #48                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+        18: invokevirtual #52                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        21: ldc           #7                  // String foo bar\n+        23: invokevirtual #55                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         26: pop\n         27: aload_0\n         28: aload_1\n-        29: invokevirtual #17                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-        32: invokevirtual #18                 // Method dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n-        35: invokevirtual #34                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+        29: invokevirtual #59                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+        32: invokevirtual #63                 // Method dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n+        35: invokevirtual #111                // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n         38: iconst_1\n-        39: invokevirtual #35                 // Method org/assertj/core/api/MapAssert.hasSize:(I)Lorg/assertj/core/api/AbstractMapAssert;\n+        39: invokevirtual #114                // Method org/assertj/core/api/MapAssert.hasSize:(I)Lorg/assertj/core/api/AbstractMapAssert;\n         42: pop\n         43: aload_0\n         44: aload_1\n-        45: ldc           #4                  // String foo\n-        47: invokevirtual #36                 // Method dev/langchain4j/data/document/Document.metadata:(Ljava/lang/String;)Ljava/lang/String;\n-        50: invokevirtual #15                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        53: ldc           #5                  // String bar\n-        55: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        45: ldc           #15                 // String foo\n+        47: invokevirtual #120                // Method dev/langchain4j/data/document/Document.metadata:(Ljava/lang/String;)Ljava/lang/String;\n+        50: invokevirtual #52                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        53: ldc           #17                 // String bar\n+        55: invokevirtual #55                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         58: pop\n         59: aload_0\n         60: aload_1\n-        61: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        64: ldc           #37                 // String Document { text = \\\"foo bar\\\" metadata = {foo=bar} }\n-        66: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        61: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        64: ldc           #123                // String Document { text = \\\"foo bar\\\" metadata = {foo=bar} }\n+        66: invokevirtual #84                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         69: pop\n-        70: new           #24                 // class java/util/HashMap\n+        70: new           #88                 // class java/util/HashMap\n         73: dup\n-        74: invokespecial #25                 // Method java/util/HashMap.\"<init>\":()V\n+        74: invokespecial #90                 // Method java/util/HashMap.\"<init>\":()V\n         77: astore_2\n         78: aload_2\n-        79: ldc           #26                 // String index\n-        81: ldc           #27                 // String 0\n-        83: invokeinterface #28,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        79: ldc           #91                 // String index\n+        81: ldc           #93                 // String 0\n+        83: invokeinterface #95,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         88: pop\n         89: aload_2\n-        90: ldc           #4                  // String foo\n-        92: ldc           #5                  // String bar\n-        94: invokeinterface #28,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        90: ldc           #15                 // String foo\n+        92: ldc           #17                 // String bar\n+        94: invokeinterface #95,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         99: pop\n        100: aload_0\n        101: aload_1\n-       102: invokevirtual #29                 // Method dev/langchain4j/data/document/Document.toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-       105: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       108: new           #30                 // class dev/langchain4j/data/segment/TextSegment\n+       102: invokevirtual #99                 // Method dev/langchain4j/data/document/Document.toTextSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       105: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       108: new           #103                // class dev/langchain4j/data/segment/TextSegment\n        111: dup\n-       112: ldc           #2                  // String foo bar\n-       114: new           #31                 // class dev/langchain4j/data/document/Metadata\n+       112: ldc           #7                  // String foo bar\n+       114: new           #20                 // class dev/langchain4j/data/document/Metadata\n        117: dup\n        118: aload_2\n-       119: invokespecial #32                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n-       122: invokespecial #33                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-       125: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       119: invokespecial #105                // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n+       122: invokespecial #108                // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+       125: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        128: pop\n        129: return\n       LineNumberTable:\n         line 47: 0\n         line 48: 13\n         line 50: 27\n         line 51: 43\n@@ -416,79 +416,79 @@\n             0     130     0  this   Ldev/langchain4j/data/document/DocumentTest;\n            13     117     1 document   Ldev/langchain4j/data/document/Document;\n            78      52     2 expectedMetadata   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            78      52     2 expectedMetadata   Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #146()\n         org.junit.jupiter.api.Test\n \n   public void test_from();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #2                  // String foo bar\n-         3: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-         6: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-         9: new           #38                 // class dev/langchain4j/data/document/Document\n+         1: ldc           #7                  // String foo bar\n+         3: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+         6: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+         9: new           #10                 // class dev/langchain4j/data/document/Document\n         12: dup\n-        13: ldc           #2                  // String foo bar\n-        15: new           #31                 // class dev/langchain4j/data/document/Metadata\n+        13: ldc           #7                  // String foo bar\n+        15: new           #20                 // class dev/langchain4j/data/document/Metadata\n         18: dup\n-        19: invokespecial #39                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        22: invokespecial #40                 // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-        25: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        19: invokespecial #125                // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        22: invokespecial #126                // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        25: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         28: pop\n         29: aload_0\n-        30: ldc           #2                  // String foo bar\n-        32: ldc           #4                  // String foo\n-        34: ldc           #5                  // String bar\n-        36: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        39: invokestatic  #7                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-        42: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        45: new           #38                 // class dev/langchain4j/data/document/Document\n+        30: ldc           #7                  // String foo bar\n+        32: ldc           #15                 // String foo\n+        34: ldc           #17                 // String bar\n+        36: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        39: invokestatic  #24                 // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        42: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        45: new           #10                 // class dev/langchain4j/data/document/Document\n         48: dup\n-        49: ldc           #2                  // String foo bar\n-        51: ldc           #4                  // String foo\n-        53: ldc           #5                  // String bar\n-        55: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        58: invokespecial #40                 // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-        61: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        49: ldc           #7                  // String foo bar\n+        51: ldc           #15                 // String foo\n+        53: ldc           #17                 // String bar\n+        55: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        58: invokespecial #126                // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        61: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         64: pop\n         65: aload_0\n-        66: ldc           #2                  // String foo bar\n-        68: invokestatic  #41                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-        71: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        74: new           #38                 // class dev/langchain4j/data/document/Document\n+        66: ldc           #7                  // String foo bar\n+        68: invokestatic  #127                // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        71: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        74: new           #10                 // class dev/langchain4j/data/document/Document\n         77: dup\n-        78: ldc           #2                  // String foo bar\n-        80: new           #31                 // class dev/langchain4j/data/document/Metadata\n+        78: ldc           #7                  // String foo bar\n+        80: new           #20                 // class dev/langchain4j/data/document/Metadata\n         83: dup\n-        84: invokespecial #39                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        87: invokespecial #40                 // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-        90: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        84: invokespecial #125                // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        87: invokespecial #126                // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        90: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         93: pop\n         94: aload_0\n-        95: ldc           #2                  // String foo bar\n-        97: ldc           #4                  // String foo\n-        99: ldc           #5                  // String bar\n-       101: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       104: invokestatic  #42                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-       107: invokevirtual #8                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       110: new           #38                 // class dev/langchain4j/data/document/Document\n+        95: ldc           #7                  // String foo bar\n+        97: ldc           #15                 // String foo\n+        99: ldc           #17                 // String bar\n+       101: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       104: invokestatic  #130                // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+       107: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       110: new           #10                 // class dev/langchain4j/data/document/Document\n        113: dup\n-       114: ldc           #2                  // String foo bar\n-       116: ldc           #4                  // String foo\n-       118: ldc           #5                  // String bar\n-       120: invokestatic  #6                  // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       123: invokespecial #40                 // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-       126: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       114: ldc           #7                  // String foo bar\n+       116: ldc           #15                 // String foo\n+       118: ldc           #17                 // String bar\n+       120: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       123: invokespecial #126                // Method dev/langchain4j/data/document/Document.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+       126: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        129: pop\n        130: return\n       LineNumberTable:\n         line 64: 0\n         line 65: 25\n         line 67: 29\n         line 68: 55\n@@ -497,11 +497,11 @@\n         line 72: 94\n         line 73: 120\n         line 74: 130\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     131     0  this   Ldev/langchain4j/data/document/DocumentTest;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #146()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"DocumentTest.java\"\n"}]}, {"source1": "dev/langchain4j/data/document/DocumentTransformerTest.class", "source2": "dev/langchain4j/data/document/DocumentTransformerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,147 +1,147 @@\n-  SHA-256 checksum 54d9726eaede1bf00efb5af95f28df8a8ee5bc7b3286c1ab2f993f9547499627\n+  SHA-256 checksum bf0ba212617603c550b4805e215625bb37fe0f5d905d1302b47c5601c6cc3c1d\n   Compiled from \"DocumentTransformerTest.java\"\n class dev.langchain4j.data.document.DocumentTransformerTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #26                         // dev/langchain4j/data/document/DocumentTransformerTest\n-  super_class: #27                        // java/lang/Object\n+  this_class: #51                         // dev/langchain4j/data/document/DocumentTransformerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 3\n Constant pool:\n-    #1 = Methodref          #27.#51       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #52           // java/util/ArrayList\n-    #3 = Methodref          #2.#51        // java/util/ArrayList.\"<init>\":()V\n-    #4 = String             #53           // abc xyz\n-    #5 = String             #54           // lang\n-    #6 = String             #55           // en\n-    #7 = Methodref          #56.#57       // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-    #8 = Methodref          #16.#58       // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-    #9 = InterfaceMethodref #59.#60       // java/util/List.add:(Ljava/lang/Object;)Z\n-   #10 = String             #61           // jkl 123\n-   #11 = String             #62           // mno qrs\n-   #12 = String             #63           // fr\n-   #13 = InvokeDynamic      #0:#68        // #0:transform:()Ldev/langchain4j/data/document/DocumentTransformer;\n-   #14 = InterfaceMethodref #69.#70       // dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-   #15 = Methodref          #26.#71       // dev/langchain4j/data/document/DocumentTransformerTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #16 = Class              #72           // dev/langchain4j/data/document/Document\n-   #17 = String             #73           // ABC XYZ\n-   #18 = String             #74           // JKL 123\n-   #19 = Methodref          #75.#76       // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #20 = Methodref          #16.#77       // dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #21 = Methodref          #56.#78       // dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n-   #22 = Methodref          #79.#80       // java/lang/String.equals:(Ljava/lang/Object;)Z\n-   #23 = Methodref          #16.#81       // dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-   #24 = Fieldref           #82.#83       // java/util/Locale.ROOT:Ljava/util/Locale;\n-   #25 = Methodref          #79.#84       // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-   #26 = Class              #85           // dev/langchain4j/data/document/DocumentTransformerTest\n-   #27 = Class              #86           // java/lang/Object\n-   #28 = Class              #87           // org/assertj/core/api/WithAssertions\n-   #29 = Utf8               <init>\n-   #30 = Utf8               ()V\n-   #31 = Utf8               Code\n-   #32 = Utf8               LineNumberTable\n-   #33 = Utf8               LocalVariableTable\n-   #34 = Utf8               this\n-   #35 = Utf8               Ldev/langchain4j/data/document/DocumentTransformerTest;\n-   #36 = Utf8               test\n-   #37 = Utf8               docs\n-   #38 = Utf8               Ljava/util/List;\n-   #39 = Utf8               results\n-   #40 = Utf8               LocalVariableTypeTable\n-   #41 = Utf8               Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n-   #42 = Utf8               RuntimeVisibleAnnotations\n-   #43 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #44 = Utf8               lambda$test$0\n-   #45 = Utf8               (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-   #46 = Utf8               document\n-   #47 = Utf8               Ldev/langchain4j/data/document/Document;\n-   #48 = Utf8               StackMapTable\n-   #49 = Utf8               SourceFile\n-   #50 = Utf8               DocumentTransformerTest.java\n-   #51 = NameAndType        #29:#30       // \"<init>\":()V\n-   #52 = Utf8               java/util/ArrayList\n-   #53 = Utf8               abc xyz\n-   #54 = Utf8               lang\n-   #55 = Utf8               en\n-   #56 = Class              #88           // dev/langchain4j/data/document/Metadata\n-   #57 = NameAndType        #89:#90       // metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #58 = NameAndType        #46:#91       // document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-   #59 = Class              #92           // java/util/List\n-   #60 = NameAndType        #93:#94       // add:(Ljava/lang/Object;)Z\n-   #61 = Utf8               jkl 123\n-   #62 = Utf8               mno qrs\n-   #63 = Utf8               fr\n-   #64 = Utf8               BootstrapMethods\n-   #65 = MethodHandle       6:#95         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #66 = MethodType         #45           //  (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-   #67 = MethodHandle       6:#96         // REF_invokeStatic dev/langchain4j/data/document/DocumentTransformerTest.lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-   #68 = NameAndType        #97:#98       // transform:()Ldev/langchain4j/data/document/DocumentTransformer;\n-   #69 = Class              #99           // dev/langchain4j/data/document/DocumentTransformer\n-   #70 = NameAndType        #100:#101     // transformAll:(Ljava/util/List;)Ljava/util/List;\n-   #71 = NameAndType        #102:#103     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #72 = Utf8               dev/langchain4j/data/document/Document\n-   #73 = Utf8               ABC XYZ\n-   #74 = Utf8               JKL 123\n-   #75 = Class              #104          // org/assertj/core/api/ListAssert\n-   #76 = NameAndType        #105:#106     // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #77 = NameAndType        #89:#107      // metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #78 = NameAndType        #108:#109     // get:(Ljava/lang/String;)Ljava/lang/String;\n-   #79 = Class              #110          // java/lang/String\n-   #80 = NameAndType        #111:#94      // equals:(Ljava/lang/Object;)Z\n-   #81 = NameAndType        #112:#113     // text:()Ljava/lang/String;\n-   #82 = Class              #114          // java/util/Locale\n-   #83 = NameAndType        #115:#116     // ROOT:Ljava/util/Locale;\n-   #84 = NameAndType        #117:#118     // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-   #85 = Utf8               dev/langchain4j/data/document/DocumentTransformerTest\n-   #86 = Utf8               java/lang/Object\n-   #87 = Utf8               org/assertj/core/api/WithAssertions\n-   #88 = Utf8               dev/langchain4j/data/document/Metadata\n-   #89 = Utf8               metadata\n-   #90 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #91 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-   #92 = Utf8               java/util/List\n-   #93 = Utf8               add\n-   #94 = Utf8               (Ljava/lang/Object;)Z\n-   #95 = Methodref          #119.#120     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #96 = Methodref          #26.#121      // dev/langchain4j/data/document/DocumentTransformerTest.lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-   #97 = Utf8               transform\n-   #98 = Utf8               ()Ldev/langchain4j/data/document/DocumentTransformer;\n-   #99 = Utf8               dev/langchain4j/data/document/DocumentTransformer\n-  #100 = Utf8               transformAll\n-  #101 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #102 = Utf8               assertThat\n-  #103 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #104 = Utf8               org/assertj/core/api/ListAssert\n-  #105 = Utf8               containsOnly\n-  #106 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #107 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #108 = Utf8               get\n-  #109 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n-  #110 = Utf8               java/lang/String\n-  #111 = Utf8               equals\n-  #112 = Utf8               text\n-  #113 = Utf8               ()Ljava/lang/String;\n-  #114 = Utf8               java/util/Locale\n-  #115 = Utf8               ROOT\n-  #116 = Utf8               Ljava/util/Locale;\n-  #117 = Utf8               toUpperCase\n-  #118 = Utf8               (Ljava/util/Locale;)Ljava/lang/String;\n-  #119 = Class              #122          // java/lang/invoke/LambdaMetafactory\n-  #120 = NameAndType        #123:#127     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #121 = NameAndType        #44:#45       // lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-  #122 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #123 = Utf8               metafactory\n-  #124 = Class              #129          // java/lang/invoke/MethodHandles$Lookup\n-  #125 = Utf8               Lookup\n-  #126 = Utf8               InnerClasses\n-  #127 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #128 = Class              #130          // java/lang/invoke/MethodHandles\n-  #129 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #130 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/util/ArrayList\n+    #8 = Utf8               java/util/ArrayList\n+    #9 = Methodref          #7.#3         // java/util/ArrayList.\"<init>\":()V\n+   #10 = String             #11           // abc xyz\n+   #11 = Utf8               abc xyz\n+   #12 = String             #13           // lang\n+   #13 = Utf8               lang\n+   #14 = String             #15           // en\n+   #15 = Utf8               en\n+   #16 = Methodref          #17.#18       // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #17 = Class              #19           // dev/langchain4j/data/document/Metadata\n+   #18 = NameAndType        #20:#21       // metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #19 = Utf8               dev/langchain4j/data/document/Metadata\n+   #20 = Utf8               metadata\n+   #21 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #22 = Methodref          #23.#24       // dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #23 = Class              #25           // dev/langchain4j/data/document/Document\n+   #24 = NameAndType        #26:#27       // document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #25 = Utf8               dev/langchain4j/data/document/Document\n+   #26 = Utf8               document\n+   #27 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+   #28 = InterfaceMethodref #29.#30       // java/util/List.add:(Ljava/lang/Object;)Z\n+   #29 = Class              #31           // java/util/List\n+   #30 = NameAndType        #32:#33       // add:(Ljava/lang/Object;)Z\n+   #31 = Utf8               java/util/List\n+   #32 = Utf8               add\n+   #33 = Utf8               (Ljava/lang/Object;)Z\n+   #34 = String             #35           // jkl 123\n+   #35 = Utf8               jkl 123\n+   #36 = String             #37           // mno qrs\n+   #37 = Utf8               mno qrs\n+   #38 = String             #39           // fr\n+   #39 = Utf8               fr\n+   #40 = InvokeDynamic      #0:#41        // #0:transform:()Ldev/langchain4j/data/document/DocumentTransformer;\n+   #41 = NameAndType        #42:#43       // transform:()Ldev/langchain4j/data/document/DocumentTransformer;\n+   #42 = Utf8               transform\n+   #43 = Utf8               ()Ldev/langchain4j/data/document/DocumentTransformer;\n+   #44 = InterfaceMethodref #45.#46       // dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+   #45 = Class              #47           // dev/langchain4j/data/document/DocumentTransformer\n+   #46 = NameAndType        #48:#49       // transformAll:(Ljava/util/List;)Ljava/util/List;\n+   #47 = Utf8               dev/langchain4j/data/document/DocumentTransformer\n+   #48 = Utf8               transformAll\n+   #49 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+   #50 = Methodref          #51.#52       // dev/langchain4j/data/document/DocumentTransformerTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #51 = Class              #53           // dev/langchain4j/data/document/DocumentTransformerTest\n+   #52 = NameAndType        #54:#55       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #53 = Utf8               dev/langchain4j/data/document/DocumentTransformerTest\n+   #54 = Utf8               assertThat\n+   #55 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #56 = String             #57           // ABC XYZ\n+   #57 = Utf8               ABC XYZ\n+   #58 = String             #59           // JKL 123\n+   #59 = Utf8               JKL 123\n+   #60 = Methodref          #61.#62       // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #61 = Class              #63           // org/assertj/core/api/ListAssert\n+   #62 = NameAndType        #64:#65       // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #63 = Utf8               org/assertj/core/api/ListAssert\n+   #64 = Utf8               containsOnly\n+   #65 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #66 = Methodref          #23.#67       // dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #67 = NameAndType        #20:#68       // metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #68 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+   #69 = Methodref          #17.#70       // dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n+   #70 = NameAndType        #71:#72       // get:(Ljava/lang/String;)Ljava/lang/String;\n+   #71 = Utf8               get\n+   #72 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+   #73 = Methodref          #74.#75       // java/lang/String.equals:(Ljava/lang/Object;)Z\n+   #74 = Class              #76           // java/lang/String\n+   #75 = NameAndType        #77:#33       // equals:(Ljava/lang/Object;)Z\n+   #76 = Utf8               java/lang/String\n+   #77 = Utf8               equals\n+   #78 = Methodref          #23.#79       // dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+   #79 = NameAndType        #80:#81       // text:()Ljava/lang/String;\n+   #80 = Utf8               text\n+   #81 = Utf8               ()Ljava/lang/String;\n+   #82 = Fieldref           #83.#84       // java/util/Locale.ROOT:Ljava/util/Locale;\n+   #83 = Class              #85           // java/util/Locale\n+   #84 = NameAndType        #86:#87       // ROOT:Ljava/util/Locale;\n+   #85 = Utf8               java/util/Locale\n+   #86 = Utf8               ROOT\n+   #87 = Utf8               Ljava/util/Locale;\n+   #88 = Methodref          #74.#89       // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+   #89 = NameAndType        #90:#91       // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+   #90 = Utf8               toUpperCase\n+   #91 = Utf8               (Ljava/util/Locale;)Ljava/lang/String;\n+   #92 = Class              #93           // org/assertj/core/api/WithAssertions\n+   #93 = Utf8               org/assertj/core/api/WithAssertions\n+   #94 = Utf8               Code\n+   #95 = Utf8               LineNumberTable\n+   #96 = Utf8               LocalVariableTable\n+   #97 = Utf8               this\n+   #98 = Utf8               Ldev/langchain4j/data/document/DocumentTransformerTest;\n+   #99 = Utf8               test\n+  #100 = Utf8               docs\n+  #101 = Utf8               Ljava/util/List;\n+  #102 = Utf8               results\n+  #103 = Utf8               LocalVariableTypeTable\n+  #104 = Utf8               Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n+  #105 = Utf8               RuntimeVisibleAnnotations\n+  #106 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #107 = Utf8               lambda$test$0\n+  #108 = Utf8               (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+  #109 = Utf8               Ldev/langchain4j/data/document/Document;\n+  #110 = Utf8               StackMapTable\n+  #111 = Utf8               SourceFile\n+  #112 = Utf8               DocumentTransformerTest.java\n+  #113 = Utf8               BootstrapMethods\n+  #114 = MethodHandle       6:#115        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #115 = Methodref          #116.#117     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #116 = Class              #118          // java/lang/invoke/LambdaMetafactory\n+  #117 = NameAndType        #119:#120     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #118 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #119 = Utf8               metafactory\n+  #120 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #121 = MethodType         #108          //  (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+  #122 = MethodHandle       6:#123        // REF_invokeStatic dev/langchain4j/data/document/DocumentTransformerTest.lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+  #123 = Methodref          #51.#124      // dev/langchain4j/data/document/DocumentTransformerTest.lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+  #124 = NameAndType        #107:#108     // lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+  #125 = Utf8               InnerClasses\n+  #126 = Class              #127          // java/lang/invoke/MethodHandles$Lookup\n+  #127 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #128 = Class              #129          // java/lang/invoke/MethodHandles\n+  #129 = Utf8               java/lang/invoke/MethodHandles\n+  #130 = Utf8               Lookup\n {\n   dev.langchain4j.data.document.DocumentTransformerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -154,68 +154,68 @@\n             0       5     0  this   Ldev/langchain4j/data/document/DocumentTransformerTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=3, args_size=1\n-         0: new           #2                  // class java/util/ArrayList\n+         0: new           #7                  // class java/util/ArrayList\n          3: dup\n-         4: invokespecial #3                  // Method java/util/ArrayList.\"<init>\":()V\n+         4: invokespecial #9                  // Method java/util/ArrayList.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String abc xyz\n-        11: ldc           #5                  // String lang\n-        13: ldc           #6                  // String en\n-        15: invokestatic  #7                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        18: invokestatic  #8                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-        21: invokeinterface #9,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+         9: ldc           #10                 // String abc xyz\n+        11: ldc           #12                 // String lang\n+        13: ldc           #14                 // String en\n+        15: invokestatic  #16                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        18: invokestatic  #22                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        21: invokeinterface #28,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         26: pop\n         27: aload_1\n-        28: ldc           #10                 // String jkl 123\n-        30: ldc           #5                  // String lang\n-        32: ldc           #6                  // String en\n-        34: invokestatic  #7                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        37: invokestatic  #8                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-        40: invokeinterface #9,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        28: ldc           #34                 // String jkl 123\n+        30: ldc           #12                 // String lang\n+        32: ldc           #14                 // String en\n+        34: invokestatic  #16                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        37: invokestatic  #22                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        40: invokeinterface #28,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         45: pop\n         46: aload_1\n-        47: ldc           #11                 // String mno qrs\n-        49: ldc           #5                  // String lang\n-        51: ldc           #12                 // String fr\n-        53: invokestatic  #7                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        56: invokestatic  #8                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n-        59: invokeinterface #9,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        47: ldc           #36                 // String mno qrs\n+        49: ldc           #12                 // String lang\n+        51: ldc           #38                 // String fr\n+        53: invokestatic  #16                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        56: invokestatic  #22                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        59: invokeinterface #28,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         64: pop\n-        65: invokedynamic #13,  0             // InvokeDynamic #0:transform:()Ldev/langchain4j/data/document/DocumentTransformer;\n+        65: invokedynamic #40,  0             // InvokeDynamic #0:transform:()Ldev/langchain4j/data/document/DocumentTransformer;\n         70: aload_1\n-        71: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+        71: invokeinterface #44,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n         76: astore_2\n         77: aload_0\n         78: aload_2\n-        79: invokevirtual #15                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        79: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         82: iconst_2\n-        83: anewarray     #16                 // class dev/langchain4j/data/document/Document\n+        83: anewarray     #23                 // class dev/langchain4j/data/document/Document\n         86: dup\n         87: iconst_0\n-        88: ldc           #17                 // String ABC XYZ\n-        90: ldc           #5                  // String lang\n-        92: ldc           #6                  // String en\n-        94: invokestatic  #7                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        97: invokestatic  #8                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        88: ldc           #56                 // String ABC XYZ\n+        90: ldc           #12                 // String lang\n+        92: ldc           #14                 // String en\n+        94: invokestatic  #16                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        97: invokestatic  #22                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n        100: aastore\n        101: dup\n        102: iconst_1\n-       103: ldc           #18                 // String JKL 123\n-       105: ldc           #5                  // String lang\n-       107: ldc           #6                  // String en\n-       109: invokestatic  #7                  // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       112: invokestatic  #8                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+       103: ldc           #58                 // String JKL 123\n+       105: ldc           #12                 // String lang\n+       107: ldc           #14                 // String en\n+       109: invokestatic  #16                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       112: invokestatic  #22                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n        115: aastore\n-       116: invokevirtual #19                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       116: invokevirtual #60                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        119: pop\n        120: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 8\n         line 15: 27\n         line 16: 46\n@@ -232,36 +232,36 @@\n             8     113     1  docs   Ljava/util/List;\n            77      44     2 results   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8     113     1  docs   Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n            77      44     2 results   Ljava/util/List<Ldev/langchain4j/data/document/Document;>;\n     RuntimeVisibleAnnotations:\n-      0: #43()\n+      0: #106()\n         org.junit.jupiter.api.Test\n \n   private static dev.langchain4j.data.document.Document lambda$test$0(dev.langchain4j.data.document.Document);\n     descriptor: (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #20                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-         4: ldc           #5                  // String lang\n-         6: invokevirtual #21                 // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n-         9: ldc           #6                  // String en\n-        11: invokevirtual #22                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+         1: invokevirtual #66                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+         4: ldc           #12                 // String lang\n+         6: invokevirtual #69                 // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n+         9: ldc           #14                 // String en\n+        11: invokevirtual #73                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         14: ifeq          35\n         17: aload_0\n-        18: invokevirtual #23                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n-        21: getstatic     #24                 // Field java/util/Locale.ROOT:Ljava/util/Locale;\n-        24: invokevirtual #25                 // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+        18: invokevirtual #78                 // Method dev/langchain4j/data/document/Document.text:()Ljava/lang/String;\n+        21: getstatic     #82                 // Field java/util/Locale.ROOT:Ljava/util/Locale;\n+        24: invokevirtual #88                 // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n         27: aload_0\n-        28: invokevirtual #20                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n-        31: invokestatic  #8                  // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n+        28: invokevirtual #66                 // Method dev/langchain4j/data/document/Document.metadata:()Ldev/langchain4j/data/document/Metadata;\n+        31: invokestatic  #22                 // Method dev/langchain4j/data/document/Document.document:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/document/Document;\n         34: areturn\n         35: aconst_null\n         36: areturn\n       LineNumberTable:\n         line 19: 0\n         line 20: 17\n         line 21: 18\n@@ -271,15 +271,15 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      37     0 document   Ldev/langchain4j/data/document/Document;\n       StackMapTable: number_of_entries = 1\n         frame_type = 35 /* same */\n }\n SourceFile: \"DocumentTransformerTest.java\"\n-InnerClasses:\n-  public static final #125= #124 of #128; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #65 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #114 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #66 (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-      #67 REF_invokeStatic dev/langchain4j/data/document/DocumentTransformerTest.lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n-      #66 (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+      #121 (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+      #122 REF_invokeStatic dev/langchain4j/data/document/DocumentTransformerTest.lambda$test$0:(Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+      #121 (Ldev/langchain4j/data/document/Document;)Ldev/langchain4j/data/document/Document;\n+InnerClasses:\n+  public static final #130= #126 of #128; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/data/document/MetadataTest.class", "source2": "dev/langchain4j/data/document/MetadataTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,176 +1,176 @@\n-  SHA-256 checksum cc8e3254fc04b56539a64ea12f6ed0b80a63ee40329e23416f625cb93b6cedce\n+  SHA-256 checksum d6c23c1eaac1b8bf3d78aaad90ff33b8e9b5a3ebabaa6dcd23394438fe24e4c4\n   Compiled from \"MetadataTest.java\"\n class dev.langchain4j.data.document.MetadataTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #44                         // dev/langchain4j/data/document/MetadataTest\n-  super_class: #32                        // java/lang/Object\n+  this_class: #17                         // dev/langchain4j/data/document/MetadataTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 8, attributes: 1\n Constant pool:\n-    #1 = Methodref          #32.#77       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #78           // dev/langchain4j/data/document/Metadata\n-    #3 = Methodref          #2.#77        // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-    #4 = String             #79           // foo\n-    #5 = Methodref          #2.#80        // dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n-    #6 = Methodref          #44.#81       // dev/langchain4j/data/document/MetadataTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #7 = Methodref          #82.#83       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n-    #8 = String             #84           // bar\n-    #9 = Methodref          #2.#85        // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #10 = Methodref          #82.#86       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #11 = String             #87           // xyz\n-   #12 = Methodref          #88.#89       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #13 = Methodref          #2.#90        // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-   #14 = String             #91           // 2\n-   #15 = Class              #92           // java/util/HashMap\n-   #16 = Methodref          #15.#77       // java/util/HashMap.\"<init>\":()V\n-   #17 = InterfaceMethodref #93.#94       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #18 = Methodref          #2.#95        // dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n-   #19 = Methodref          #15.#95       // java/util/HashMap.\"<init>\":(Ljava/util/Map;)V\n-   #20 = String             #96           // baz\n-   #21 = String             #97           // qux\n-   #22 = Methodref          #2.#98        // dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n-   #23 = Methodref          #44.#99       // dev/langchain4j/data/document/MetadataTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-   #24 = Methodref          #100.#101     // org/assertj/core/api/MapAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-   #25 = Methodref          #2.#102       // dev/langchain4j/data/document/Metadata.toString:()Ljava/lang/String;\n-   #26 = String             #103          // Metadata { metadata = {foo=bar, baz=qux} }\n-   #27 = String             #104          // different\n-   #28 = String             #105          // value\n-   #29 = Methodref          #44.#106      // dev/langchain4j/data/document/MetadataTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #30 = Methodref          #31.#107      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #31 = Class              #108          // org/assertj/core/api/ObjectAssert\n-   #32 = Class              #109          // java/lang/Object\n-   #33 = Methodref          #31.#110      // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #34 = Methodref          #31.#111      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #35 = Methodref          #31.#112      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #36 = Methodref          #2.#113       // dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n-   #37 = Methodref          #2.#114       // dev/langchain4j/data/document/Metadata.from:(Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n-   #38 = Methodref          #2.#115       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #39 = Methodref          #2.#116       // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #40 = Methodref          #2.#117       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-   #41 = Methodref          #2.#118       // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-   #42 = Methodref          #2.#119       // dev/langchain4j/data/document/Metadata.remove:(Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #43 = Methodref          #31.#120      // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #44 = Class              #121          // dev/langchain4j/data/document/MetadataTest\n-   #45 = Class              #122          // org/assertj/core/api/WithAssertions\n-   #46 = Utf8               <init>\n-   #47 = Utf8               ()V\n-   #48 = Utf8               Code\n-   #49 = Utf8               LineNumberTable\n-   #50 = Utf8               LocalVariableTable\n-   #51 = Utf8               this\n-   #52 = Utf8               Ldev/langchain4j/data/document/MetadataTest;\n-   #53 = Utf8               test_add_get_put\n-   #54 = Utf8               m\n-   #55 = Utf8               Ldev/langchain4j/data/document/Metadata;\n-   #56 = Utf8               RuntimeVisibleAnnotations\n-   #57 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #58 = Utf8               test_map_constructor_copies\n-   #59 = Utf8               source\n-   #60 = Utf8               Ljava/util/Map;\n-   #61 = Utf8               sourceCopy\n-   #62 = Utf8               LocalVariableTypeTable\n-   #63 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n-   #64 = Utf8               test_toString\n-   #65 = Utf8               test_equals_hash\n-   #66 = Utf8               m1\n-   #67 = Utf8               m2\n-   #68 = Utf8               m3\n-   #69 = Utf8               m4\n-   #70 = Utf8               test_copy\n-   #71 = Utf8               test_builders\n-   #72 = Utf8               emptyMap\n-   #73 = Utf8               map\n-   #74 = Utf8               test_remove\n-   #75 = Utf8               SourceFile\n-   #76 = Utf8               MetadataTest.java\n-   #77 = NameAndType        #46:#47       // \"<init>\":()V\n-   #78 = Utf8               dev/langchain4j/data/document/Metadata\n-   #79 = Utf8               foo\n-   #80 = NameAndType        #123:#124     // get:(Ljava/lang/String;)Ljava/lang/String;\n-   #81 = NameAndType        #125:#126     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #82 = Class              #127          // org/assertj/core/api/AbstractStringAssert\n-   #83 = NameAndType        #128:#47      // isNull:()V\n-   #84 = Utf8               bar\n-   #85 = NameAndType        #129:#130     // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #86 = NameAndType        #131:#126     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #87 = Utf8               xyz\n-   #88 = Class              #132          // java/lang/Integer\n-   #89 = NameAndType        #133:#134     // valueOf:(I)Ljava/lang/Integer;\n-   #90 = NameAndType        #129:#135     // add:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-   #91 = Utf8               2\n-   #92 = Utf8               java/util/HashMap\n-   #93 = Class              #136          // java/util/Map\n-   #94 = NameAndType        #137:#138     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #95 = NameAndType        #46:#139      // \"<init>\":(Ljava/util/Map;)V\n-   #96 = Utf8               baz\n-   #97 = Utf8               qux\n-   #98 = NameAndType        #140:#141     // asMap:()Ljava/util/Map;\n-   #99 = NameAndType        #125:#142     // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #100 = Class              #143          // org/assertj/core/api/MapAssert\n-  #101 = NameAndType        #131:#144     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-  #102 = NameAndType        #145:#146     // toString:()Ljava/lang/String;\n-  #103 = Utf8               Metadata { metadata = {foo=bar, baz=qux} }\n-  #104 = Utf8               different\n-  #105 = Utf8               value\n-  #106 = NameAndType        #125:#147     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #107 = NameAndType        #148:#149     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #108 = Utf8               org/assertj/core/api/ObjectAssert\n-  #109 = Utf8               java/lang/Object\n-  #110 = NameAndType        #131:#149     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #111 = NameAndType        #150:#149     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #112 = NameAndType        #151:#149     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #113 = NameAndType        #152:#153     // copy:()Ldev/langchain4j/data/document/Metadata;\n-  #114 = NameAndType        #154:#155     // from:(Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n-  #115 = NameAndType        #154:#130     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #116 = NameAndType        #156:#130     // metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #117 = NameAndType        #154:#135     // from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-  #118 = NameAndType        #156:#135     // metadata:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-  #119 = NameAndType        #157:#158     // remove:(Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #120 = NameAndType        #159:#149     // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #121 = Utf8               dev/langchain4j/data/document/MetadataTest\n-  #122 = Utf8               org/assertj/core/api/WithAssertions\n-  #123 = Utf8               get\n-  #124 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n-  #125 = Utf8               assertThat\n-  #126 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #127 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #128 = Utf8               isNull\n-  #129 = Utf8               add\n-  #130 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #131 = Utf8               isEqualTo\n-  #132 = Utf8               java/lang/Integer\n-  #133 = Utf8               valueOf\n-  #134 = Utf8               (I)Ljava/lang/Integer;\n-  #135 = Utf8               (Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-  #136 = Utf8               java/util/Map\n-  #137 = Utf8               put\n-  #138 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #139 = Utf8               (Ljava/util/Map;)V\n-  #140 = Utf8               asMap\n-  #141 = Utf8               ()Ljava/util/Map;\n-  #142 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n-  #143 = Utf8               org/assertj/core/api/MapAssert\n-  #144 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n-  #145 = Utf8               toString\n-  #146 = Utf8               ()Ljava/lang/String;\n-  #147 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #148 = Utf8               isNotEqualTo\n-  #149 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #150 = Utf8               hasSameHashCodeAs\n-  #151 = Utf8               doesNotHaveSameHashCodeAs\n-  #152 = Utf8               copy\n-  #153 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #154 = Utf8               from\n-  #155 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n-  #156 = Utf8               metadata\n-  #157 = Utf8               remove\n-  #158 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #159 = Utf8               isSameAs\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/data/document/Metadata\n+    #8 = Utf8               dev/langchain4j/data/document/Metadata\n+    #9 = Methodref          #7.#3         // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+   #10 = String             #11           // foo\n+   #11 = Utf8               foo\n+   #12 = Methodref          #7.#13        // dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n+   #13 = NameAndType        #14:#15       // get:(Ljava/lang/String;)Ljava/lang/String;\n+   #14 = Utf8               get\n+   #15 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+   #16 = Methodref          #17.#18       // dev/langchain4j/data/document/MetadataTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #17 = Class              #19           // dev/langchain4j/data/document/MetadataTest\n+   #18 = NameAndType        #20:#21       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #19 = Utf8               dev/langchain4j/data/document/MetadataTest\n+   #20 = Utf8               assertThat\n+   #21 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #22 = Methodref          #23.#24       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n+   #23 = Class              #25           // org/assertj/core/api/AbstractStringAssert\n+   #24 = NameAndType        #26:#6        // isNull:()V\n+   #25 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #26 = Utf8               isNull\n+   #27 = String             #28           // bar\n+   #28 = Utf8               bar\n+   #29 = Methodref          #7.#30        // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #30 = NameAndType        #31:#32       // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #31 = Utf8               add\n+   #32 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #33 = Methodref          #23.#34       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #34 = NameAndType        #35:#21       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #35 = Utf8               isEqualTo\n+   #36 = String             #37           // xyz\n+   #37 = Utf8               xyz\n+   #38 = Methodref          #39.#40       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #39 = Class              #41           // java/lang/Integer\n+   #40 = NameAndType        #42:#43       // valueOf:(I)Ljava/lang/Integer;\n+   #41 = Utf8               java/lang/Integer\n+   #42 = Utf8               valueOf\n+   #43 = Utf8               (I)Ljava/lang/Integer;\n+   #44 = Methodref          #7.#45        // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+   #45 = NameAndType        #31:#46       // add:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+   #46 = Utf8               (Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+   #47 = String             #48           // 2\n+   #48 = Utf8               2\n+   #49 = Class              #50           // java/util/HashMap\n+   #50 = Utf8               java/util/HashMap\n+   #51 = Methodref          #49.#3        // java/util/HashMap.\"<init>\":()V\n+   #52 = InterfaceMethodref #53.#54       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #53 = Class              #55           // java/util/Map\n+   #54 = NameAndType        #56:#57       // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #55 = Utf8               java/util/Map\n+   #56 = Utf8               put\n+   #57 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #58 = Methodref          #7.#59        // dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n+   #59 = NameAndType        #5:#60        // \"<init>\":(Ljava/util/Map;)V\n+   #60 = Utf8               (Ljava/util/Map;)V\n+   #61 = Methodref          #49.#59       // java/util/HashMap.\"<init>\":(Ljava/util/Map;)V\n+   #62 = String             #63           // baz\n+   #63 = Utf8               baz\n+   #64 = String             #65           // qux\n+   #65 = Utf8               qux\n+   #66 = Methodref          #7.#67        // dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n+   #67 = NameAndType        #68:#69       // asMap:()Ljava/util/Map;\n+   #68 = Utf8               asMap\n+   #69 = Utf8               ()Ljava/util/Map;\n+   #70 = Methodref          #17.#71       // dev/langchain4j/data/document/MetadataTest.assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #71 = NameAndType        #20:#72       // assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #72 = Utf8               (Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+   #73 = Methodref          #74.#75       // org/assertj/core/api/MapAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+   #74 = Class              #76           // org/assertj/core/api/MapAssert\n+   #75 = NameAndType        #35:#77       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+   #76 = Utf8               org/assertj/core/api/MapAssert\n+   #77 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+   #78 = Methodref          #7.#79        // dev/langchain4j/data/document/Metadata.toString:()Ljava/lang/String;\n+   #79 = NameAndType        #80:#81       // toString:()Ljava/lang/String;\n+   #80 = Utf8               toString\n+   #81 = Utf8               ()Ljava/lang/String;\n+   #82 = String             #83           // Metadata { metadata = {foo=bar, baz=qux} }\n+   #83 = Utf8               Metadata { metadata = {foo=bar, baz=qux} }\n+   #84 = String             #85           // different\n+   #85 = Utf8               different\n+   #86 = String             #87           // value\n+   #87 = Utf8               value\n+   #88 = Methodref          #17.#89       // dev/langchain4j/data/document/MetadataTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #89 = NameAndType        #20:#90       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #90 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #91 = Methodref          #92.#93       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #92 = Class              #94           // org/assertj/core/api/ObjectAssert\n+   #93 = NameAndType        #95:#96       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = Utf8               org/assertj/core/api/ObjectAssert\n+   #95 = Utf8               isNotEqualTo\n+   #96 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #97 = Methodref          #92.#98       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #98 = NameAndType        #35:#96       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #99 = Methodref          #92.#100      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #100 = NameAndType        #101:#96      // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #101 = Utf8               hasSameHashCodeAs\n+  #102 = Methodref          #92.#103      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #103 = NameAndType        #104:#96      // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #104 = Utf8               doesNotHaveSameHashCodeAs\n+  #105 = Methodref          #7.#106       // dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n+  #106 = NameAndType        #107:#108     // copy:()Ldev/langchain4j/data/document/Metadata;\n+  #107 = Utf8               copy\n+  #108 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+  #109 = Methodref          #7.#110       // dev/langchain4j/data/document/Metadata.from:(Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n+  #110 = NameAndType        #111:#112     // from:(Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n+  #111 = Utf8               from\n+  #112 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n+  #113 = Methodref          #7.#114       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #114 = NameAndType        #111:#32      // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #115 = Methodref          #7.#116       // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #116 = NameAndType        #117:#32      // metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #117 = Utf8               metadata\n+  #118 = Methodref          #7.#119       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+  #119 = NameAndType        #111:#46      // from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+  #120 = Methodref          #7.#121       // dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+  #121 = NameAndType        #117:#46      // metadata:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+  #122 = Methodref          #7.#123       // dev/langchain4j/data/document/Metadata.remove:(Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #123 = NameAndType        #124:#125     // remove:(Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #124 = Utf8               remove\n+  #125 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #126 = Methodref          #92.#127      // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #127 = NameAndType        #128:#96      // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #128 = Utf8               isSameAs\n+  #129 = Class              #130          // org/assertj/core/api/WithAssertions\n+  #130 = Utf8               org/assertj/core/api/WithAssertions\n+  #131 = Utf8               Code\n+  #132 = Utf8               LineNumberTable\n+  #133 = Utf8               LocalVariableTable\n+  #134 = Utf8               this\n+  #135 = Utf8               Ldev/langchain4j/data/document/MetadataTest;\n+  #136 = Utf8               test_add_get_put\n+  #137 = Utf8               m\n+  #138 = Utf8               Ldev/langchain4j/data/document/Metadata;\n+  #139 = Utf8               RuntimeVisibleAnnotations\n+  #140 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #141 = Utf8               test_map_constructor_copies\n+  #142 = Utf8               source\n+  #143 = Utf8               Ljava/util/Map;\n+  #144 = Utf8               sourceCopy\n+  #145 = Utf8               LocalVariableTypeTable\n+  #146 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n+  #147 = Utf8               test_toString\n+  #148 = Utf8               test_equals_hash\n+  #149 = Utf8               m1\n+  #150 = Utf8               m2\n+  #151 = Utf8               m3\n+  #152 = Utf8               m4\n+  #153 = Utf8               test_copy\n+  #154 = Utf8               test_builders\n+  #155 = Utf8               emptyMap\n+  #156 = Utf8               map\n+  #157 = Utf8               test_remove\n+  #158 = Utf8               SourceFile\n+  #159 = Utf8               MetadataTest.java\n {\n   dev.langchain4j.data.document.MetadataTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -183,50 +183,50 @@\n             0       5     0  this   Ldev/langchain4j/data/document/MetadataTest;\n \n   public void test_add_get_put();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/document/Metadata\n+         0: new           #7                  // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String foo\n-        12: invokevirtual #5                  // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n-        15: invokevirtual #6                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        18: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        10: ldc           #10                 // String foo\n+        12: invokevirtual #12                 // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n+        15: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        18: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         21: aload_1\n-        22: ldc           #4                  // String foo\n-        24: ldc           #8                  // String bar\n-        26: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        22: ldc           #10                 // String foo\n+        24: ldc           #27                 // String bar\n+        26: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         29: pop\n         30: aload_0\n         31: aload_1\n-        32: ldc           #4                  // String foo\n-        34: invokevirtual #5                  // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n-        37: invokevirtual #6                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        40: ldc           #8                  // String bar\n-        42: invokevirtual #10                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        32: ldc           #10                 // String foo\n+        34: invokevirtual #12                 // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n+        37: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        40: ldc           #27                 // String bar\n+        42: invokevirtual #33                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         45: pop\n         46: aload_1\n-        47: ldc           #11                 // String xyz\n+        47: ldc           #36                 // String xyz\n         49: iconst_2\n-        50: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        53: invokevirtual #13                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+        50: invokestatic  #38                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        53: invokevirtual #44                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n         56: pop\n         57: aload_0\n         58: aload_1\n-        59: ldc           #11                 // String xyz\n-        61: invokevirtual #5                  // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n-        64: invokevirtual #6                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        67: ldc           #14                 // String 2\n-        69: invokevirtual #10                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        59: ldc           #36                 // String xyz\n+        61: invokevirtual #12                 // Method dev/langchain4j/data/document/Metadata.get:(Ljava/lang/String;)Ljava/lang/String;\n+        64: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        67: ldc           #47                 // String 2\n+        69: invokevirtual #33                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         72: pop\n         73: return\n       LineNumberTable:\n         line 12: 0\n         line 14: 8\n         line 15: 21\n         line 16: 30\n@@ -234,52 +234,52 @@\n         line 19: 57\n         line 20: 73\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      74     0  this   Ldev/langchain4j/data/document/MetadataTest;\n             8      66     1     m   Ldev/langchain4j/data/document/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n \n   public void test_map_constructor_copies();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: new           #15                 // class java/util/HashMap\n+         0: new           #49                 // class java/util/HashMap\n          3: dup\n-         4: invokespecial #16                 // Method java/util/HashMap.\"<init>\":()V\n+         4: invokespecial #51                 // Method java/util/HashMap.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String foo\n-        11: ldc           #8                  // String bar\n-        13: invokeinterface #17,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+         9: ldc           #10                 // String foo\n+        11: ldc           #27                 // String bar\n+        13: invokeinterface #52,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         18: pop\n-        19: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        19: new           #7                  // class dev/langchain4j/data/document/Metadata\n         22: dup\n         23: aload_1\n-        24: invokespecial #18                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n+        24: invokespecial #58                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n         27: astore_2\n-        28: new           #15                 // class java/util/HashMap\n+        28: new           #49                 // class java/util/HashMap\n         31: dup\n         32: aload_1\n-        33: invokespecial #19                 // Method java/util/HashMap.\"<init>\":(Ljava/util/Map;)V\n+        33: invokespecial #61                 // Method java/util/HashMap.\"<init>\":(Ljava/util/Map;)V\n         36: astore_3\n         37: aload_1\n-        38: ldc           #20                 // String baz\n-        40: ldc           #21                 // String qux\n-        42: invokeinterface #17,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        38: ldc           #62                 // String baz\n+        40: ldc           #64                 // String qux\n+        42: invokeinterface #52,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         47: pop\n         48: aload_0\n         49: aload_2\n-        50: invokevirtual #22                 // Method dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n-        53: invokevirtual #23                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n+        50: invokevirtual #66                 // Method dev/langchain4j/data/document/Metadata.asMap:()Ljava/util/Map;\n+        53: invokevirtual #70                 // Method assertThat:(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;\n         56: aload_3\n-        57: invokevirtual #24                 // Method org/assertj/core/api/MapAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n+        57: invokevirtual #73                 // Method org/assertj/core/api/MapAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractMapAssert;\n         60: pop\n         61: return\n       LineNumberTable:\n         line 24: 0\n         line 25: 8\n         line 27: 19\n         line 28: 28\n@@ -293,133 +293,133 @@\n            28      34     2     m   Ldev/langchain4j/data/document/Metadata;\n            37      25     3 sourceCopy   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      54     1 source   Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n            37      25     3 sourceCopy   Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n \n   public void test_toString();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/document/Metadata\n+         0: new           #7                  // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String foo\n-        11: ldc           #8                  // String bar\n-        13: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+         9: ldc           #10                 // String foo\n+        11: ldc           #27                 // String bar\n+        13: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         16: pop\n         17: aload_1\n-        18: ldc           #20                 // String baz\n-        20: ldc           #21                 // String qux\n-        22: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        18: ldc           #62                 // String baz\n+        20: ldc           #64                 // String qux\n+        22: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         25: pop\n         26: aload_0\n         27: aload_1\n-        28: invokevirtual #25                 // Method dev/langchain4j/data/document/Metadata.toString:()Ljava/lang/String;\n-        31: invokevirtual #6                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        34: ldc           #26                 // String Metadata { metadata = {foo=bar, baz=qux} }\n-        36: invokevirtual #10                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        28: invokevirtual #78                 // Method dev/langchain4j/data/document/Metadata.toString:()Ljava/lang/String;\n+        31: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        34: ldc           #82                 // String Metadata { metadata = {foo=bar, baz=qux} }\n+        36: invokevirtual #33                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         39: pop\n         40: return\n       LineNumberTable:\n         line 36: 0\n         line 37: 8\n         line 38: 17\n         line 39: 26\n         line 40: 40\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      41     0  this   Ldev/langchain4j/data/document/MetadataTest;\n             8      33     1     m   Ldev/langchain4j/data/document/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/document/Metadata\n+         0: new           #7                  // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: astore_1\n-         8: new           #2                  // class dev/langchain4j/data/document/Metadata\n+         8: new           #7                  // class dev/langchain4j/data/document/Metadata\n         11: dup\n-        12: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        12: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         15: astore_2\n         16: aload_1\n-        17: ldc           #4                  // String foo\n-        19: ldc           #8                  // String bar\n-        21: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        17: ldc           #10                 // String foo\n+        19: ldc           #27                 // String bar\n+        21: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         24: pop\n         25: aload_2\n-        26: ldc           #4                  // String foo\n-        28: ldc           #8                  // String bar\n-        30: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        26: ldc           #10                 // String foo\n+        28: ldc           #27                 // String bar\n+        30: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         33: pop\n-        34: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        34: new           #7                  // class dev/langchain4j/data/document/Metadata\n         37: dup\n-        38: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        38: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         41: astore_3\n-        42: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        42: new           #7                  // class dev/langchain4j/data/document/Metadata\n         45: dup\n-        46: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        46: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         49: astore        4\n         51: aload_3\n-        52: ldc           #27                 // String different\n-        54: ldc           #28                 // String value\n-        56: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        52: ldc           #84                 // String different\n+        54: ldc           #86                 // String value\n+        56: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         59: pop\n         60: aload         4\n-        62: ldc           #27                 // String different\n-        64: ldc           #28                 // String value\n-        66: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        62: ldc           #84                 // String different\n+        64: ldc           #86                 // String value\n+        66: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         69: pop\n         70: aload_0\n         71: aload_1\n-        72: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        72: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         75: aconst_null\n-        76: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        79: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n-        82: new           #32                 // class java/lang/Object\n+        76: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        79: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n+        82: new           #2                  // class java/lang/Object\n         85: dup\n         86: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        89: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        92: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+        89: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        92: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n         95: aload_2\n-        96: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        99: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+        96: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        99: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        102: aload_2\n-       103: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       103: invokevirtual #99                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        106: pop\n        107: aload_0\n        108: aload_1\n-       109: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       109: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        112: aload_3\n-       113: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       116: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+       113: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       116: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        119: aload_3\n-       120: invokevirtual #35                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       120: invokevirtual #102                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        123: pop\n        124: aload_0\n        125: aload_3\n-       126: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       126: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        129: aload         4\n-       131: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       134: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+       131: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       134: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        137: aload         4\n-       139: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       139: invokevirtual #99                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        142: pop\n        143: return\n       LineNumberTable:\n         line 44: 0\n         line 45: 8\n         line 46: 16\n         line 47: 25\n@@ -443,50 +443,50 @@\n         Start  Length  Slot  Name   Signature\n             0     144     0  this   Ldev/langchain4j/data/document/MetadataTest;\n             8     136     1    m1   Ldev/langchain4j/data/document/Metadata;\n            16     128     2    m2   Ldev/langchain4j/data/document/Metadata;\n            42     102     3    m3   Ldev/langchain4j/data/document/Metadata;\n            51      93     4    m4   Ldev/langchain4j/data/document/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n \n   public void test_copy();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/document/Metadata\n+         0: new           #7                  // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String foo\n-        11: ldc           #8                  // String bar\n-        13: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+         9: ldc           #10                 // String foo\n+        11: ldc           #27                 // String bar\n+        13: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         16: pop\n         17: aload_1\n-        18: invokevirtual #36                 // Method dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n+        18: invokevirtual #105                // Method dev/langchain4j/data/document/Metadata.copy:()Ldev/langchain4j/data/document/Metadata;\n         21: astore_2\n         22: aload_0\n         23: aload_1\n-        24: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        24: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         27: aload_2\n-        28: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        28: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         31: pop\n         32: aload_1\n-        33: ldc           #4                  // String foo\n-        35: ldc           #20                 // String baz\n-        37: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        33: ldc           #10                 // String foo\n+        35: ldc           #62                 // String baz\n+        37: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         40: pop\n         41: aload_0\n         42: aload_1\n-        43: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        43: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         46: aload_2\n-        47: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        47: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         50: pop\n         51: return\n       LineNumberTable:\n         line 71: 0\n         line 72: 8\n         line 73: 17\n         line 74: 22\n@@ -495,119 +495,119 @@\n         line 77: 51\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      52     0  this   Ldev/langchain4j/data/document/MetadataTest;\n             8      44     1    m1   Ldev/langchain4j/data/document/Metadata;\n            22      30     2    m2   Ldev/langchain4j/data/document/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=1\n-         0: new           #15                 // class java/util/HashMap\n+         0: new           #49                 // class java/util/HashMap\n          3: dup\n-         4: invokespecial #16                 // Method java/util/HashMap.\"<init>\":()V\n+         4: invokespecial #51                 // Method java/util/HashMap.\"<init>\":()V\n          7: astore_1\n-         8: new           #15                 // class java/util/HashMap\n+         8: new           #49                 // class java/util/HashMap\n         11: dup\n-        12: invokespecial #16                 // Method java/util/HashMap.\"<init>\":()V\n+        12: invokespecial #51                 // Method java/util/HashMap.\"<init>\":()V\n         15: astore_2\n         16: aload_2\n-        17: ldc           #4                  // String foo\n-        19: ldc           #8                  // String bar\n-        21: invokeinterface #17,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        17: ldc           #10                 // String foo\n+        19: ldc           #27                 // String bar\n+        21: invokeinterface #52,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         26: pop\n         27: aload_2\n-        28: ldc           #20                 // String baz\n-        30: ldc           #21                 // String qux\n-        32: invokeinterface #17,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        28: ldc           #62                 // String baz\n+        30: ldc           #64                 // String qux\n+        32: invokeinterface #52,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         37: pop\n         38: aload_0\n-        39: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        39: new           #7                  // class dev/langchain4j/data/document/Metadata\n         42: dup\n-        43: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        46: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        49: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        43: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        46: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        49: new           #7                  // class dev/langchain4j/data/document/Metadata\n         52: dup\n         53: aload_1\n-        54: invokespecial #18                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n-        57: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        54: invokespecial #58                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":(Ljava/util/Map;)V\n+        57: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         60: pop\n         61: aload_0\n         62: aload_2\n-        63: invokestatic  #37                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n-        66: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        69: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        63: invokestatic  #109                // Method dev/langchain4j/data/document/Metadata.from:(Ljava/util/Map;)Ldev/langchain4j/data/document/Metadata;\n+        66: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        69: new           #7                  // class dev/langchain4j/data/document/Metadata\n         72: dup\n-        73: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        76: ldc           #4                  // String foo\n-        78: ldc           #8                  // String bar\n-        80: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        83: ldc           #20                 // String baz\n-        85: ldc           #21                 // String qux\n-        87: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        90: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        73: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        76: ldc           #10                 // String foo\n+        78: ldc           #27                 // String bar\n+        80: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        83: ldc           #62                 // String baz\n+        85: ldc           #64                 // String qux\n+        87: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        90: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         93: pop\n         94: aload_0\n-        95: ldc           #4                  // String foo\n-        97: ldc           #8                  // String bar\n-        99: invokestatic  #38                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       102: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       105: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        95: ldc           #10                 // String foo\n+        97: ldc           #27                 // String bar\n+        99: invokestatic  #113                // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       102: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       105: new           #7                  // class dev/langchain4j/data/document/Metadata\n        108: dup\n-       109: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-       112: ldc           #4                  // String foo\n-       114: ldc           #8                  // String bar\n-       116: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       119: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       109: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+       112: ldc           #10                 // String foo\n+       114: ldc           #27                 // String bar\n+       116: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       119: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        122: pop\n        123: aload_0\n-       124: ldc           #4                  // String foo\n-       126: ldc           #8                  // String bar\n-       128: invokestatic  #39                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       131: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       134: new           #2                  // class dev/langchain4j/data/document/Metadata\n+       124: ldc           #10                 // String foo\n+       126: ldc           #27                 // String bar\n+       128: invokestatic  #115                // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       131: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       134: new           #7                  // class dev/langchain4j/data/document/Metadata\n        137: dup\n-       138: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-       141: ldc           #4                  // String foo\n-       143: ldc           #8                  // String bar\n-       145: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       148: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       138: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+       141: ldc           #10                 // String foo\n+       143: ldc           #27                 // String bar\n+       145: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       148: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        151: pop\n        152: aload_0\n-       153: ldc           #4                  // String foo\n+       153: ldc           #10                 // String foo\n        155: iconst_2\n-       156: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       159: invokestatic  #40                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-       162: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       165: new           #2                  // class dev/langchain4j/data/document/Metadata\n+       156: invokestatic  #38                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       159: invokestatic  #118                // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+       162: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       165: new           #7                  // class dev/langchain4j/data/document/Metadata\n        168: dup\n-       169: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-       172: ldc           #4                  // String foo\n-       174: ldc           #14                 // String 2\n-       176: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       179: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       169: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+       172: ldc           #10                 // String foo\n+       174: ldc           #47                 // String 2\n+       176: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       179: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        182: pop\n        183: aload_0\n-       184: ldc           #4                  // String foo\n+       184: ldc           #10                 // String foo\n        186: iconst_2\n-       187: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       190: invokestatic  #41                 // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n-       193: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       196: new           #2                  // class dev/langchain4j/data/document/Metadata\n+       187: invokestatic  #38                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       190: invokestatic  #120                // Method dev/langchain4j/data/document/Metadata.metadata:(Ljava/lang/String;Ljava/lang/Object;)Ldev/langchain4j/data/document/Metadata;\n+       193: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       196: new           #7                  // class dev/langchain4j/data/document/Metadata\n        199: dup\n-       200: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-       203: ldc           #4                  // String foo\n-       205: ldc           #14                 // String 2\n-       207: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-       210: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       200: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+       203: ldc           #10                 // String foo\n+       205: ldc           #47                 // String 2\n+       207: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+       210: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        213: pop\n        214: return\n       LineNumberTable:\n         line 81: 0\n         line 82: 8\n         line 83: 16\n         line 84: 27\n@@ -630,65 +630,65 @@\n             8     207     1 emptyMap   Ljava/util/Map;\n            16     199     2   map   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8     207     1 emptyMap   Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n            16     199     2   map   Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n \n   public void test_remove();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/document/Metadata\n+         0: new           #7                  // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String foo\n-        11: ldc           #8                  // String bar\n-        13: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+         9: ldc           #10                 // String foo\n+        11: ldc           #27                 // String bar\n+        13: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         16: pop\n         17: aload_1\n-        18: ldc           #20                 // String baz\n-        20: ldc           #21                 // String qux\n-        22: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        18: ldc           #62                 // String baz\n+        20: ldc           #64                 // String qux\n+        22: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         25: pop\n         26: aload_0\n         27: aload_1\n-        28: ldc           #4                  // String foo\n-        30: invokevirtual #42                 // Method dev/langchain4j/data/document/Metadata.remove:(Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        33: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        28: ldc           #10                 // String foo\n+        30: invokevirtual #122                // Method dev/langchain4j/data/document/Metadata.remove:(Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        33: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         36: aload_1\n-        37: invokevirtual #43                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        37: invokevirtual #126                // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         40: pop\n         41: aload_0\n         42: aload_1\n-        43: invokevirtual #29                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        46: new           #2                  // class dev/langchain4j/data/document/Metadata\n+        43: invokevirtual #88                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        46: new           #7                  // class dev/langchain4j/data/document/Metadata\n         49: dup\n-        50: invokespecial #3                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        53: ldc           #20                 // String baz\n-        55: ldc           #21                 // String qux\n-        57: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        60: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        50: invokespecial #9                  // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        53: ldc           #62                 // String baz\n+        55: ldc           #64                 // String qux\n+        57: invokevirtual #29                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        60: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         63: pop\n         64: return\n       LineNumberTable:\n         line 106: 0\n         line 107: 8\n         line 108: 17\n         line 109: 26\n         line 110: 41\n         line 111: 64\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      65     0  this   Ldev/langchain4j/data/document/MetadataTest;\n             8      57     1    m1   Ldev/langchain4j/data/document/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #57()\n+      0: #140()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"MetadataTest.java\"\n"}]}, {"source1": "dev/langchain4j/data/embedding/EmbeddingTest.class", "source2": "dev/langchain4j/data/embedding/EmbeddingTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,143 +1,143 @@\n-  SHA-256 checksum 3c69085cbef47664a6667f2c6a1f95dd30f8b8a66058931bb606e9ef75ca215e\n+  SHA-256 checksum 6b025197a00a911755bb59d5d29763c956f657762ed5c5f185ec3c5aca6e09d8\n   Compiled from \"EmbeddingTest.java\"\n class dev.langchain4j.data.embedding.EmbeddingTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #36                         // dev/langchain4j/data/embedding/EmbeddingTest\n-  super_class: #9                         // java/lang/Object\n+  this_class: #14                         // dev/langchain4j/data/embedding/EmbeddingTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 5, attributes: 1\n Constant pool:\n-    #1 = Methodref          #9.#62        // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #63           // dev/langchain4j/data/embedding/Embedding\n-    #3 = Float              3.0f\n-    #4 = Methodref          #2.#64        // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-    #5 = Methodref          #36.#65       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-    #6 = Methodref          #7.#66        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-    #7 = Class              #67           // org/assertj/core/api/ObjectAssert\n-    #8 = Methodref          #7.#68        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-    #9 = Class              #69           // java/lang/Object\n-   #10 = Methodref          #7.#70        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #11 = Float              99.0f\n-   #12 = Float              4.0f\n-   #13 = Methodref          #2.#71        // dev/langchain4j/data/embedding/Embedding.dimension:()I\n-   #14 = Methodref          #36.#72       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #15 = Methodref          #73.#74       // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #16 = Methodref          #2.#75        // dev/langchain4j/data/embedding/Embedding.vector:()[F\n-   #17 = Methodref          #36.#76       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #18 = Methodref          #77.#78       // org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #19 = Methodref          #2.#79        // dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n-   #20 = Methodref          #36.#80       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #21 = Class              #81           // java/lang/Float\n-   #22 = Methodref          #21.#82       // java/lang/Float.valueOf:(F)Ljava/lang/Float;\n-   #23 = Methodref          #83.#84       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #24 = String             #85           // Embedding { vector = [1.0, 2.0, 3.0] }\n-   #25 = Methodref          #7.#86        // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Methodref          #2.#87        // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #27 = Class              #88           // java/util/ArrayList\n-   #28 = Methodref          #27.#62       // java/util/ArrayList.\"<init>\":()V\n-   #29 = InterfaceMethodref #89.#90       // java/util/List.add:(Ljava/lang/Object;)Z\n-   #30 = Methodref          #2.#91        // dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-   #31 = Float              6.0f\n-   #32 = Float              8.0f\n-   #33 = Methodref          #2.#92        // dev/langchain4j/data/embedding/Embedding.normalize:()V\n-   #34 = Float              0.6f\n-   #35 = Float              0.8f\n-   #36 = Class              #93           // dev/langchain4j/data/embedding/EmbeddingTest\n-   #37 = Class              #94           // org/assertj/core/api/WithAssertions\n-   #38 = Utf8               <init>\n-   #39 = Utf8               ()V\n-   #40 = Utf8               Code\n-   #41 = Utf8               LineNumberTable\n-   #42 = Utf8               LocalVariableTable\n-   #43 = Utf8               this\n-   #44 = Utf8               Ldev/langchain4j/data/embedding/EmbeddingTest;\n-   #45 = Utf8               test_equals_hash\n-   #46 = Utf8               e1\n-   #47 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n-   #48 = Utf8               e2\n-   #49 = Utf8               RuntimeVisibleAnnotations\n-   #50 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #51 = Utf8               test_accessors\n-   #52 = Utf8               test_from\n-   #53 = Utf8               list\n-   #54 = Utf8               Ljava/util/List;\n-   #55 = Utf8               LocalVariableTypeTable\n-   #56 = Utf8               Ljava/util/List<Ljava/lang/Float;>;\n-   #57 = Utf8               test_normalize\n-   #58 = Utf8               embedding\n-   #59 = Utf8               expect\n-   #60 = Utf8               SourceFile\n-   #61 = Utf8               EmbeddingTest.java\n-   #62 = NameAndType        #38:#39       // \"<init>\":()V\n-   #63 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #64 = NameAndType        #38:#95       // \"<init>\":([F)V\n-   #65 = NameAndType        #96:#97       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #66 = NameAndType        #98:#99       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #67 = Utf8               org/assertj/core/api/ObjectAssert\n-   #68 = NameAndType        #100:#99      // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #69 = Utf8               java/lang/Object\n-   #70 = NameAndType        #101:#99      // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #71 = NameAndType        #102:#103     // dimension:()I\n-   #72 = NameAndType        #96:#104      // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #73 = Class              #105          // org/assertj/core/api/AbstractIntegerAssert\n-   #74 = NameAndType        #98:#104      // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #75 = NameAndType        #106:#107     // vector:()[F\n-   #76 = NameAndType        #96:#108      // assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #77 = Class              #109          // org/assertj/core/api/AbstractFloatArrayAssert\n-   #78 = NameAndType        #110:#108     // containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #79 = NameAndType        #111:#112     // vectorAsList:()Ljava/util/List;\n-   #80 = NameAndType        #96:#113      // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #81 = Utf8               java/lang/Float\n-   #82 = NameAndType        #114:#115     // valueOf:(F)Ljava/lang/Float;\n-   #83 = Class              #116          // org/assertj/core/api/ListAssert\n-   #84 = NameAndType        #110:#117     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #85 = Utf8               Embedding { vector = [1.0, 2.0, 3.0] }\n-   #86 = NameAndType        #118:#119     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #87 = NameAndType        #120:#121     // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #88 = Utf8               java/util/ArrayList\n-   #89 = Class              #122          // java/util/List\n-   #90 = NameAndType        #123:#124     // add:(Ljava/lang/Object;)Z\n-   #91 = NameAndType        #120:#125     // from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-   #92 = NameAndType        #126:#39      // normalize:()V\n-   #93 = Utf8               dev/langchain4j/data/embedding/EmbeddingTest\n-   #94 = Utf8               org/assertj/core/api/WithAssertions\n-   #95 = Utf8               ([F)V\n-   #96 = Utf8               assertThat\n-   #97 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #98 = Utf8               isEqualTo\n-   #99 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #100 = Utf8               isNotEqualTo\n-  #101 = Utf8               hasSameHashCodeAs\n-  #102 = Utf8               dimension\n-  #103 = Utf8               ()I\n-  #104 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #105 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n-  #106 = Utf8               vector\n-  #107 = Utf8               ()[F\n-  #108 = Utf8               ([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-  #109 = Utf8               org/assertj/core/api/AbstractFloatArrayAssert\n-  #110 = Utf8               containsExactly\n-  #111 = Utf8               vectorAsList\n-  #112 = Utf8               ()Ljava/util/List;\n-  #113 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #114 = Utf8               valueOf\n-  #115 = Utf8               (F)Ljava/lang/Float;\n-  #116 = Utf8               org/assertj/core/api/ListAssert\n-  #117 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #118 = Utf8               hasToString\n-  #119 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #120 = Utf8               from\n-  #121 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n-  #122 = Utf8               java/util/List\n-  #123 = Utf8               add\n-  #124 = Utf8               (Ljava/lang/Object;)Z\n-  #125 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-  #126 = Utf8               normalize\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/data/embedding/Embedding\n+    #8 = Utf8               dev/langchain4j/data/embedding/Embedding\n+    #9 = Float              3.0f\n+   #10 = Methodref          #7.#11        // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+   #11 = NameAndType        #5:#12        // \"<init>\":([F)V\n+   #12 = Utf8               ([F)V\n+   #13 = Methodref          #14.#15       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #14 = Class              #16           // dev/langchain4j/data/embedding/EmbeddingTest\n+   #15 = NameAndType        #17:#18       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #16 = Utf8               dev/langchain4j/data/embedding/EmbeddingTest\n+   #17 = Utf8               assertThat\n+   #18 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #20 = Class              #22           // org/assertj/core/api/ObjectAssert\n+   #21 = NameAndType        #23:#24       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #22 = Utf8               org/assertj/core/api/ObjectAssert\n+   #23 = Utf8               isEqualTo\n+   #24 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #25 = Methodref          #20.#26       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #26 = NameAndType        #27:#24       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #27 = Utf8               isNotEqualTo\n+   #28 = Methodref          #20.#29       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #29 = NameAndType        #30:#24       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #30 = Utf8               hasSameHashCodeAs\n+   #31 = Float              99.0f\n+   #32 = Float              4.0f\n+   #33 = Methodref          #7.#34        // dev/langchain4j/data/embedding/Embedding.dimension:()I\n+   #34 = NameAndType        #35:#36       // dimension:()I\n+   #35 = Utf8               dimension\n+   #36 = Utf8               ()I\n+   #37 = Methodref          #14.#38       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #38 = NameAndType        #17:#39       // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #39 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #40 = Methodref          #41.#42       // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #41 = Class              #43           // org/assertj/core/api/AbstractIntegerAssert\n+   #42 = NameAndType        #23:#39       // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #43 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n+   #44 = Methodref          #7.#45        // dev/langchain4j/data/embedding/Embedding.vector:()[F\n+   #45 = NameAndType        #46:#47       // vector:()[F\n+   #46 = Utf8               vector\n+   #47 = Utf8               ()[F\n+   #48 = Methodref          #14.#49       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #49 = NameAndType        #17:#50       // assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #50 = Utf8               ([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #51 = Methodref          #52.#53       // org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #52 = Class              #54           // org/assertj/core/api/AbstractFloatArrayAssert\n+   #53 = NameAndType        #55:#50       // containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #54 = Utf8               org/assertj/core/api/AbstractFloatArrayAssert\n+   #55 = Utf8               containsExactly\n+   #56 = Methodref          #7.#57        // dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n+   #57 = NameAndType        #58:#59       // vectorAsList:()Ljava/util/List;\n+   #58 = Utf8               vectorAsList\n+   #59 = Utf8               ()Ljava/util/List;\n+   #60 = Methodref          #14.#61       // dev/langchain4j/data/embedding/EmbeddingTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #61 = NameAndType        #17:#62       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #62 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #63 = Class              #64           // java/lang/Float\n+   #64 = Utf8               java/lang/Float\n+   #65 = Methodref          #63.#66       // java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+   #66 = NameAndType        #67:#68       // valueOf:(F)Ljava/lang/Float;\n+   #67 = Utf8               valueOf\n+   #68 = Utf8               (F)Ljava/lang/Float;\n+   #69 = Methodref          #70.#71       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #70 = Class              #72           // org/assertj/core/api/ListAssert\n+   #71 = NameAndType        #55:#73       // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #72 = Utf8               org/assertj/core/api/ListAssert\n+   #73 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #74 = String             #75           // Embedding { vector = [1.0, 2.0, 3.0] }\n+   #75 = Utf8               Embedding { vector = [1.0, 2.0, 3.0] }\n+   #76 = Methodref          #20.#77       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = NameAndType        #78:#79       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #78 = Utf8               hasToString\n+   #79 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #80 = Methodref          #7.#81        // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #81 = NameAndType        #82:#83       // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #82 = Utf8               from\n+   #83 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #84 = Class              #85           // java/util/ArrayList\n+   #85 = Utf8               java/util/ArrayList\n+   #86 = Methodref          #84.#3        // java/util/ArrayList.\"<init>\":()V\n+   #87 = InterfaceMethodref #88.#89       // java/util/List.add:(Ljava/lang/Object;)Z\n+   #88 = Class              #90           // java/util/List\n+   #89 = NameAndType        #91:#92       // add:(Ljava/lang/Object;)Z\n+   #90 = Utf8               java/util/List\n+   #91 = Utf8               add\n+   #92 = Utf8               (Ljava/lang/Object;)Z\n+   #93 = Methodref          #7.#94        // dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+   #94 = NameAndType        #82:#95       // from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+   #95 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+   #96 = Float              6.0f\n+   #97 = Float              8.0f\n+   #98 = Methodref          #7.#99        // dev/langchain4j/data/embedding/Embedding.normalize:()V\n+   #99 = NameAndType        #100:#6       // normalize:()V\n+  #100 = Utf8               normalize\n+  #101 = Float              0.6f\n+  #102 = Float              0.8f\n+  #103 = Class              #104          // org/assertj/core/api/WithAssertions\n+  #104 = Utf8               org/assertj/core/api/WithAssertions\n+  #105 = Utf8               Code\n+  #106 = Utf8               LineNumberTable\n+  #107 = Utf8               LocalVariableTable\n+  #108 = Utf8               this\n+  #109 = Utf8               Ldev/langchain4j/data/embedding/EmbeddingTest;\n+  #110 = Utf8               test_equals_hash\n+  #111 = Utf8               e1\n+  #112 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n+  #113 = Utf8               e2\n+  #114 = Utf8               RuntimeVisibleAnnotations\n+  #115 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #116 = Utf8               test_accessors\n+  #117 = Utf8               test_from\n+  #118 = Utf8               list\n+  #119 = Utf8               Ljava/util/List;\n+  #120 = Utf8               LocalVariableTypeTable\n+  #121 = Utf8               Ljava/util/List<Ljava/lang/Float;>;\n+  #122 = Utf8               test_normalize\n+  #123 = Utf8               embedding\n+  #124 = Utf8               expect\n+  #125 = Utf8               SourceFile\n+  #126 = Utf8               EmbeddingTest.java\n {\n   dev.langchain4j.data.embedding.EmbeddingTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -150,117 +150,117 @@\n             0       5     0  this   Ldev/langchain4j/data/embedding/EmbeddingTest;\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+         0: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n          3: dup\n          4: iconst_3\n          5: newarray       float\n          7: dup\n          8: iconst_0\n          9: fconst_1\n         10: fastore\n         11: dup\n         12: iconst_1\n         13: fconst_2\n         14: fastore\n         15: dup\n         16: iconst_2\n-        17: ldc           #3                  // float 3.0f\n+        17: ldc           #9                  // float 3.0f\n         19: fastore\n-        20: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        20: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         23: astore_1\n-        24: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+        24: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n         27: dup\n         28: iconst_3\n         29: newarray       float\n         31: dup\n         32: iconst_0\n         33: fconst_1\n         34: fastore\n         35: dup\n         36: iconst_1\n         37: fconst_2\n         38: fastore\n         39: dup\n         40: iconst_2\n-        41: ldc           #3                  // float 3.0f\n+        41: ldc           #9                  // float 3.0f\n         43: fastore\n-        44: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        44: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         47: astore_2\n         48: aload_0\n         49: aload_1\n-        50: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        50: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         53: aload_1\n-        54: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        57: checkcast     #7                  // class org/assertj/core/api/ObjectAssert\n+        54: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        57: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n         60: aconst_null\n-        61: invokevirtual #8                  // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        64: checkcast     #7                  // class org/assertj/core/api/ObjectAssert\n-        67: new           #9                  // class java/lang/Object\n+        61: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        64: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+        67: new           #2                  // class java/lang/Object\n         70: dup\n         71: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        74: invokevirtual #8                  // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        77: checkcast     #7                  // class org/assertj/core/api/ObjectAssert\n+        74: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        77: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n         80: aload_2\n-        81: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        84: checkcast     #7                  // class org/assertj/core/api/ObjectAssert\n+        81: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        84: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n         87: aload_2\n-        88: invokevirtual #10                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        88: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         91: pop\n         92: aload_0\n-        93: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+        93: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n         96: dup\n         97: iconst_3\n         98: newarray       float\n        100: dup\n        101: iconst_0\n-       102: ldc           #11                 // float 99.0f\n+       102: ldc           #31                 // float 99.0f\n        104: fastore\n        105: dup\n        106: iconst_1\n        107: fconst_2\n        108: fastore\n        109: dup\n        110: iconst_2\n-       111: ldc           #3                  // float 3.0f\n+       111: ldc           #9                  // float 3.0f\n        113: fastore\n-       114: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-       117: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       114: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+       117: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        120: aload_1\n-       121: invokevirtual #8                  // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       121: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        124: pop\n        125: aload_0\n-       126: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+       126: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n        129: dup\n        130: iconst_4\n        131: newarray       float\n        133: dup\n        134: iconst_0\n        135: fconst_1\n        136: fastore\n        137: dup\n        138: iconst_1\n        139: fconst_2\n        140: fastore\n        141: dup\n        142: iconst_2\n-       143: ldc           #3                  // float 3.0f\n+       143: ldc           #9                  // float 3.0f\n        145: fastore\n        146: dup\n        147: iconst_3\n-       148: ldc           #12                 // float 4.0f\n+       148: ldc           #32                 // float 4.0f\n        150: fastore\n-       151: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-       154: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       151: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+       154: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        157: aload_1\n-       158: invokevirtual #8                  // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       158: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        161: pop\n        162: return\n       LineNumberTable:\n         line 12: 0\n         line 13: 24\n         line 15: 48\n         line 16: 54\n@@ -275,110 +275,110 @@\n         line 26: 162\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     163     0  this   Ldev/langchain4j/data/embedding/EmbeddingTest;\n            24     139     1    e1   Ldev/langchain4j/data/embedding/Embedding;\n            48     115     2    e2   Ldev/langchain4j/data/embedding/Embedding;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #115()\n         org.junit.jupiter.api.Test\n \n   public void test_accessors();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+         0: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n          3: dup\n          4: iconst_3\n          5: newarray       float\n          7: dup\n          8: iconst_0\n          9: fconst_1\n         10: fastore\n         11: dup\n         12: iconst_1\n         13: fconst_2\n         14: fastore\n         15: dup\n         16: iconst_2\n-        17: ldc           #3                  // float 3.0f\n+        17: ldc           #9                  // float 3.0f\n         19: fastore\n-        20: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        20: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         23: astore_1\n         24: aload_0\n         25: aload_1\n-        26: invokevirtual #13                 // Method dev/langchain4j/data/embedding/Embedding.dimension:()I\n-        29: invokevirtual #14                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        26: invokevirtual #33                 // Method dev/langchain4j/data/embedding/Embedding.dimension:()I\n+        29: invokevirtual #37                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         32: iconst_3\n-        33: invokevirtual #15                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        33: invokevirtual #40                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         36: pop\n         37: aload_0\n         38: aload_1\n-        39: invokevirtual #16                 // Method dev/langchain4j/data/embedding/Embedding.vector:()[F\n-        42: invokevirtual #17                 // Method assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+        39: invokevirtual #44                 // Method dev/langchain4j/data/embedding/Embedding.vector:()[F\n+        42: invokevirtual #48                 // Method assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n         45: iconst_3\n         46: newarray       float\n         48: dup\n         49: iconst_0\n         50: fconst_1\n         51: fastore\n         52: dup\n         53: iconst_1\n         54: fconst_2\n         55: fastore\n         56: dup\n         57: iconst_2\n-        58: ldc           #3                  // float 3.0f\n+        58: ldc           #9                  // float 3.0f\n         60: fastore\n-        61: invokevirtual #18                 // Method org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+        61: invokevirtual #51                 // Method org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n         64: pop\n         65: aload_0\n         66: aload_1\n-        67: invokevirtual #19                 // Method dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n-        70: invokevirtual #20                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        67: invokevirtual #56                 // Method dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n+        70: invokevirtual #60                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         73: iconst_3\n-        74: anewarray     #21                 // class java/lang/Float\n+        74: anewarray     #63                 // class java/lang/Float\n         77: dup\n         78: iconst_0\n         79: fconst_1\n-        80: invokestatic  #22                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        80: invokestatic  #65                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         83: aastore\n         84: dup\n         85: iconst_1\n         86: fconst_2\n-        87: invokestatic  #22                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        87: invokestatic  #65                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         90: aastore\n         91: dup\n         92: iconst_2\n-        93: ldc           #3                  // float 3.0f\n-        95: invokestatic  #22                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        93: ldc           #9                  // float 3.0f\n+        95: invokestatic  #65                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         98: aastore\n-        99: invokevirtual #23                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        99: invokevirtual #69                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        102: pop\n        103: aload_0\n        104: aload_1\n-       105: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       108: ldc           #24                 // String Embedding { vector = [1.0, 2.0, 3.0] }\n-       110: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+       105: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       108: ldc           #74                 // String Embedding { vector = [1.0, 2.0, 3.0] }\n+       110: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n        113: pop\n        114: return\n       LineNumberTable:\n         line 30: 0\n         line 31: 24\n         line 32: 37\n         line 33: 65\n         line 35: 103\n         line 36: 114\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     115     0  this   Ldev/langchain4j/data/embedding/EmbeddingTest;\n            24      91     1    e1   Ldev/langchain4j/data/embedding/Embedding;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #115()\n         org.junit.jupiter.api.Test\n \n   public void test_from();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=2, args_size=1\n@@ -391,78 +391,78 @@\n          7: fastore\n          8: dup\n          9: iconst_1\n         10: fconst_2\n         11: fastore\n         12: dup\n         13: iconst_2\n-        14: ldc           #3                  // float 3.0f\n+        14: ldc           #9                  // float 3.0f\n         16: fastore\n-        17: invokestatic  #26                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-        20: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        23: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+        17: invokestatic  #80                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        20: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        23: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n         26: dup\n         27: iconst_3\n         28: newarray       float\n         30: dup\n         31: iconst_0\n         32: fconst_1\n         33: fastore\n         34: dup\n         35: iconst_1\n         36: fconst_2\n         37: fastore\n         38: dup\n         39: iconst_2\n-        40: ldc           #3                  // float 3.0f\n+        40: ldc           #9                  // float 3.0f\n         42: fastore\n-        43: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-        46: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        43: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        46: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         49: pop\n-        50: new           #27                 // class java/util/ArrayList\n+        50: new           #84                 // class java/util/ArrayList\n         53: dup\n-        54: invokespecial #28                 // Method java/util/ArrayList.\"<init>\":()V\n+        54: invokespecial #86                 // Method java/util/ArrayList.\"<init>\":()V\n         57: astore_1\n         58: aload_1\n         59: fconst_1\n-        60: invokestatic  #22                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n-        63: invokeinterface #29,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        60: invokestatic  #65                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        63: invokeinterface #87,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         68: pop\n         69: aload_1\n         70: fconst_2\n-        71: invokestatic  #22                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n-        74: invokeinterface #29,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        71: invokestatic  #65                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        74: invokeinterface #87,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         79: pop\n         80: aload_1\n-        81: ldc           #3                  // float 3.0f\n-        83: invokestatic  #22                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n-        86: invokeinterface #29,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        81: ldc           #9                  // float 3.0f\n+        83: invokestatic  #65                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        86: invokeinterface #87,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         91: pop\n         92: aload_0\n         93: aload_1\n-        94: invokestatic  #30                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-        97: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       100: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+        94: invokestatic  #93                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+        97: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       100: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n        103: dup\n        104: iconst_3\n        105: newarray       float\n        107: dup\n        108: iconst_0\n        109: fconst_1\n        110: fastore\n        111: dup\n        112: iconst_1\n        113: fconst_2\n        114: fastore\n        115: dup\n        116: iconst_2\n-       117: ldc           #3                  // float 3.0f\n+       117: ldc           #9                  // float 3.0f\n        119: fastore\n-       120: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-       123: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       120: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+       123: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        126: pop\n        127: return\n       LineNumberTable:\n         line 40: 0\n         line 41: 46\n         line 43: 50\n         line 44: 58\n@@ -475,68 +475,68 @@\n         Start  Length  Slot  Name   Signature\n             0     128     0  this   Ldev/langchain4j/data/embedding/EmbeddingTest;\n            58      70     1  list   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            58      70     1  list   Ljava/util/List<Ljava/lang/Float;>;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #115()\n         org.junit.jupiter.api.Test\n \n   void test_normalize();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+         0: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n          3: dup\n          4: iconst_2\n          5: newarray       float\n          7: dup\n          8: iconst_0\n-         9: ldc           #31                 // float 6.0f\n+         9: ldc           #96                 // float 6.0f\n         11: fastore\n         12: dup\n         13: iconst_1\n-        14: ldc           #32                 // float 8.0f\n+        14: ldc           #97                 // float 8.0f\n         16: fastore\n-        17: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        17: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         20: astore_1\n         21: aload_1\n-        22: invokevirtual #33                 // Method dev/langchain4j/data/embedding/Embedding.normalize:()V\n-        25: new           #2                  // class dev/langchain4j/data/embedding/Embedding\n+        22: invokevirtual #98                 // Method dev/langchain4j/data/embedding/Embedding.normalize:()V\n+        25: new           #7                  // class dev/langchain4j/data/embedding/Embedding\n         28: dup\n         29: iconst_2\n         30: newarray       float\n         32: dup\n         33: iconst_0\n-        34: ldc           #34                 // float 0.6f\n+        34: ldc           #101                // float 0.6f\n         36: fastore\n         37: dup\n         38: iconst_1\n-        39: ldc           #35                 // float 0.8f\n+        39: ldc           #102                // float 0.8f\n         41: fastore\n-        42: invokespecial #4                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        42: invokespecial #10                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         45: astore_2\n         46: aload_0\n         47: aload_1\n-        48: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        48: invokevirtual #13                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         51: aload_2\n-        52: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        52: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         55: pop\n         56: return\n       LineNumberTable:\n         line 53: 0\n         line 54: 21\n         line 56: 25\n         line 57: 46\n         line 58: 56\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      57     0  this   Ldev/langchain4j/data/embedding/EmbeddingTest;\n            21      36     1 embedding   Ldev/langchain4j/data/embedding/Embedding;\n            46      11     2 expect   Ldev/langchain4j/data/embedding/Embedding;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #115()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"EmbeddingTest.java\"\n"}]}, {"source1": "dev/langchain4j/data/image/ImageTest.class", "source2": "dev/langchain4j/data/image/ImageTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,150 +1,150 @@\n-  SHA-256 checksum 73fd1f92310bb66fb9838561b98323855e0ad46e21c0fe5094a8e64b557ff63b\n+  SHA-256 checksum 6c3798af5a64fdaa05ac3c309926acc06a8c573169b636b3bf687f2dcf08f4aa\n   Compiled from \"ImageTest.java\"\n class dev.langchain4j.data.image.ImageTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #38                         // dev/langchain4j/data/image/ImageTest\n-  super_class: #33                        // java/lang/Object\n+  this_class: #52                         // dev/langchain4j/data/image/ImageTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-    #1 = Methodref          #33.#60       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #61.#62       // dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-    #3 = Class              #63           // java/net/URI\n-    #4 = String             #64           // https://example.com/image.png\n-    #5 = Methodref          #3.#65        // java/net/URI.\"<init>\":(Ljava/lang/String;)V\n-    #6 = Methodref          #66.#67       // dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-    #7 = String             #68           // base64Data\n-    #8 = Methodref          #66.#69       // dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-    #9 = String             #70           // image/png\n-   #10 = Methodref          #66.#71       // dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #11 = String             #72           // revisedPrompt\n-   #12 = Methodref          #66.#73       // dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #13 = Methodref          #66.#74       // dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n-   #14 = Methodref          #61.#75       // dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-   #15 = Methodref          #3.#76        // java/net/URI.toString:()Ljava/lang/String;\n-   #16 = Methodref          #38.#77       // dev/langchain4j/data/image/ImageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #17 = Methodref          #78.#79       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #18 = Methodref          #61.#80       // dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n-   #19 = Methodref          #61.#81       // dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-   #20 = Methodref          #61.#82       // dev/langchain4j/data/image/Image.revisedPrompt:()Ljava/lang/String;\n-   #21 = Methodref          #38.#83       // dev/langchain4j/data/image/ImageTest.assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n-   #22 = Methodref          #84.#85       // org/assertj/core/api/AbstractUriAssert.isNull:()V\n-   #23 = Methodref          #78.#85       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n-   #24 = Methodref          #66.#86       // dev/langchain4j/data/image/Image$Builder.url:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #25 = Methodref          #84.#87       // org/assertj/core/api/AbstractUriAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Methodref          #3.#88        // java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-   #27 = Methodref          #38.#89       // dev/langchain4j/data/image/ImageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #28 = String             #90           // Image { url = \\\"https://example.com/image.png\\\", base64Data = \\\"base64Data\\\", mimeType = \\\"image/png\\\", revisedPrompt = \\\"revisedPrompt\\\" }\n-   #29 = Methodref          #31.#91       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #30 = Methodref          #31.#87       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #31 = Class              #92           // org/assertj/core/api/ObjectAssert\n-   #32 = Methodref          #31.#93       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #33 = Class              #94           // java/lang/Object\n-   #34 = Methodref          #31.#95       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #35 = String             #96           // https://change\n-   #36 = Methodref          #31.#97       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #37 = String             #98           // changed\n-   #38 = Class              #99           // dev/langchain4j/data/image/ImageTest\n-   #39 = Class              #100          // org/assertj/core/api/WithAssertions\n-   #40 = Utf8               <init>\n-   #41 = Utf8               ()V\n-   #42 = Utf8               Code\n-   #43 = Utf8               LineNumberTable\n-   #44 = Utf8               LocalVariableTable\n-   #45 = Utf8               this\n-   #46 = Utf8               Ldev/langchain4j/data/image/ImageTest;\n-   #47 = Utf8               testBuilder\n-   #48 = Utf8               image\n-   #49 = Utf8               Ldev/langchain4j/data/image/Image;\n-   #50 = Utf8               Exceptions\n-   #51 = Class              #101          // java/lang/Exception\n-   #52 = Utf8               RuntimeVisibleAnnotations\n-   #53 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #54 = Utf8               test_toString\n-   #55 = Utf8               test_equals_hash\n-   #56 = Utf8               image1\n-   #57 = Utf8               image2\n-   #58 = Utf8               SourceFile\n-   #59 = Utf8               ImageTest.java\n-   #60 = NameAndType        #40:#41       // \"<init>\":()V\n-   #61 = Class              #102          // dev/langchain4j/data/image/Image\n-   #62 = NameAndType        #103:#106     // builder:()Ldev/langchain4j/data/image/Image$Builder;\n-   #63 = Utf8               java/net/URI\n-   #64 = Utf8               https://example.com/image.png\n-   #65 = NameAndType        #40:#107      // \"<init>\":(Ljava/lang/String;)V\n-   #66 = Class              #108          // dev/langchain4j/data/image/Image$Builder\n-   #67 = NameAndType        #109:#110     // url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-   #68 = Utf8               base64Data\n-   #69 = NameAndType        #68:#111      // base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #70 = Utf8               image/png\n-   #71 = NameAndType        #112:#111     // mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #72 = Utf8               revisedPrompt\n-   #73 = NameAndType        #72:#111      // revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #74 = NameAndType        #113:#114     // build:()Ldev/langchain4j/data/image/Image;\n-   #75 = NameAndType        #109:#115     // url:()Ljava/net/URI;\n-   #76 = NameAndType        #116:#117     // toString:()Ljava/lang/String;\n-   #77 = NameAndType        #118:#119     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #78 = Class              #120          // org/assertj/core/api/AbstractStringAssert\n-   #79 = NameAndType        #121:#119     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #80 = NameAndType        #68:#117      // base64Data:()Ljava/lang/String;\n-   #81 = NameAndType        #112:#117     // mimeType:()Ljava/lang/String;\n-   #82 = NameAndType        #72:#117      // revisedPrompt:()Ljava/lang/String;\n-   #83 = NameAndType        #118:#122     // assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n-   #84 = Class              #123          // org/assertj/core/api/AbstractUriAssert\n-   #85 = NameAndType        #124:#41      // isNull:()V\n-   #86 = NameAndType        #109:#111     // url:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #87 = NameAndType        #121:#125     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #88 = NameAndType        #126:#127     // create:(Ljava/lang/String;)Ljava/net/URI;\n-   #89 = NameAndType        #118:#128     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+    #8 = Class              #10           // dev/langchain4j/data/image/Image\n+    #9 = NameAndType        #11:#12       // builder:()Ldev/langchain4j/data/image/Image$Builder;\n+   #10 = Utf8               dev/langchain4j/data/image/Image\n+   #11 = Utf8               builder\n+   #12 = Utf8               ()Ldev/langchain4j/data/image/Image$Builder;\n+   #13 = Class              #14           // java/net/URI\n+   #14 = Utf8               java/net/URI\n+   #15 = String             #16           // https://example.com/image.png\n+   #16 = Utf8               https://example.com/image.png\n+   #17 = Methodref          #13.#18       // java/net/URI.\"<init>\":(Ljava/lang/String;)V\n+   #18 = NameAndType        #5:#19        // \"<init>\":(Ljava/lang/String;)V\n+   #19 = Utf8               (Ljava/lang/String;)V\n+   #20 = Methodref          #21.#22       // dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+   #21 = Class              #23           // dev/langchain4j/data/image/Image$Builder\n+   #22 = NameAndType        #24:#25       // url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+   #23 = Utf8               dev/langchain4j/data/image/Image$Builder\n+   #24 = Utf8               url\n+   #25 = Utf8               (Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+   #26 = String             #27           // base64Data\n+   #27 = Utf8               base64Data\n+   #28 = Methodref          #21.#29       // dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #29 = NameAndType        #27:#30       // base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #30 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #31 = String             #32           // image/png\n+   #32 = Utf8               image/png\n+   #33 = Methodref          #21.#34       // dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #34 = NameAndType        #35:#30       // mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #35 = Utf8               mimeType\n+   #36 = String             #37           // revisedPrompt\n+   #37 = Utf8               revisedPrompt\n+   #38 = Methodref          #21.#39       // dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #39 = NameAndType        #37:#30       // revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #40 = Methodref          #21.#41       // dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+   #41 = NameAndType        #42:#43       // build:()Ldev/langchain4j/data/image/Image;\n+   #42 = Utf8               build\n+   #43 = Utf8               ()Ldev/langchain4j/data/image/Image;\n+   #44 = Methodref          #8.#45        // dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+   #45 = NameAndType        #24:#46       // url:()Ljava/net/URI;\n+   #46 = Utf8               ()Ljava/net/URI;\n+   #47 = Methodref          #13.#48       // java/net/URI.toString:()Ljava/lang/String;\n+   #48 = NameAndType        #49:#50       // toString:()Ljava/lang/String;\n+   #49 = Utf8               toString\n+   #50 = Utf8               ()Ljava/lang/String;\n+   #51 = Methodref          #52.#53       // dev/langchain4j/data/image/ImageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #52 = Class              #54           // dev/langchain4j/data/image/ImageTest\n+   #53 = NameAndType        #55:#56       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #54 = Utf8               dev/langchain4j/data/image/ImageTest\n+   #55 = Utf8               assertThat\n+   #56 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #57 = Methodref          #58.#59       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #58 = Class              #60           // org/assertj/core/api/AbstractStringAssert\n+   #59 = NameAndType        #61:#56       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #60 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #61 = Utf8               isEqualTo\n+   #62 = Methodref          #8.#63        // dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+   #63 = NameAndType        #27:#50       // base64Data:()Ljava/lang/String;\n+   #64 = Methodref          #8.#65        // dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+   #65 = NameAndType        #35:#50       // mimeType:()Ljava/lang/String;\n+   #66 = Methodref          #8.#67        // dev/langchain4j/data/image/Image.revisedPrompt:()Ljava/lang/String;\n+   #67 = NameAndType        #37:#50       // revisedPrompt:()Ljava/lang/String;\n+   #68 = Methodref          #52.#69       // dev/langchain4j/data/image/ImageTest.assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n+   #69 = NameAndType        #55:#70       // assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n+   #70 = Utf8               (Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n+   #71 = Methodref          #72.#73       // org/assertj/core/api/AbstractUriAssert.isNull:()V\n+   #72 = Class              #74           // org/assertj/core/api/AbstractUriAssert\n+   #73 = NameAndType        #75:#6        // isNull:()V\n+   #74 = Utf8               org/assertj/core/api/AbstractUriAssert\n+   #75 = Utf8               isNull\n+   #76 = Methodref          #58.#73       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n+   #77 = Methodref          #21.#78       // dev/langchain4j/data/image/Image$Builder.url:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #78 = NameAndType        #24:#30       // url:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+   #79 = Methodref          #72.#80       // org/assertj/core/api/AbstractUriAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #80 = NameAndType        #61:#81       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #81 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #82 = Methodref          #13.#83       // java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+   #83 = NameAndType        #84:#85       // create:(Ljava/lang/String;)Ljava/net/URI;\n+   #84 = Utf8               create\n+   #85 = Utf8               (Ljava/lang/String;)Ljava/net/URI;\n+   #86 = Methodref          #52.#87       // dev/langchain4j/data/image/ImageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #87 = NameAndType        #55:#88       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #88 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #89 = String             #90           // Image { url = \\\"https://example.com/image.png\\\", base64Data = \\\"base64Data\\\", mimeType = \\\"image/png\\\", revisedPrompt = \\\"revisedPrompt\\\" }\n    #90 = Utf8               Image { url = \\\"https://example.com/image.png\\\", base64Data = \\\"base64Data\\\", mimeType = \\\"image/png\\\", revisedPrompt = \\\"revisedPrompt\\\" }\n-   #91 = NameAndType        #129:#130     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #92 = Utf8               org/assertj/core/api/ObjectAssert\n-   #93 = NameAndType        #131:#125     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #94 = Utf8               java/lang/Object\n-   #95 = NameAndType        #132:#125     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #96 = Utf8               https://change\n-   #97 = NameAndType        #133:#125     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #98 = Utf8               changed\n-   #99 = Utf8               dev/langchain4j/data/image/ImageTest\n-  #100 = Utf8               org/assertj/core/api/WithAssertions\n-  #101 = Utf8               java/lang/Exception\n-  #102 = Utf8               dev/langchain4j/data/image/Image\n-  #103 = Utf8               builder\n-  #104 = Utf8               Builder\n-  #105 = Utf8               InnerClasses\n-  #106 = Utf8               ()Ldev/langchain4j/data/image/Image$Builder;\n-  #107 = Utf8               (Ljava/lang/String;)V\n-  #108 = Utf8               dev/langchain4j/data/image/Image$Builder\n-  #109 = Utf8               url\n-  #110 = Utf8               (Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-  #111 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-  #112 = Utf8               mimeType\n-  #113 = Utf8               build\n-  #114 = Utf8               ()Ldev/langchain4j/data/image/Image;\n-  #115 = Utf8               ()Ljava/net/URI;\n-  #116 = Utf8               toString\n-  #117 = Utf8               ()Ljava/lang/String;\n-  #118 = Utf8               assertThat\n-  #119 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #120 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #121 = Utf8               isEqualTo\n-  #122 = Utf8               (Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n-  #123 = Utf8               org/assertj/core/api/AbstractUriAssert\n-  #124 = Utf8               isNull\n-  #125 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #126 = Utf8               create\n-  #127 = Utf8               (Ljava/lang/String;)Ljava/net/URI;\n-  #128 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #129 = Utf8               hasToString\n-  #130 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #131 = Utf8               isNotEqualTo\n-  #132 = Utf8               hasSameHashCodeAs\n-  #133 = Utf8               doesNotHaveSameHashCodeAs\n+   #91 = Methodref          #92.#93       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #92 = Class              #94           // org/assertj/core/api/ObjectAssert\n+   #93 = NameAndType        #95:#96       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = Utf8               org/assertj/core/api/ObjectAssert\n+   #95 = Utf8               hasToString\n+   #96 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #97 = Methodref          #92.#80       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #98 = Methodref          #92.#99       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #99 = NameAndType        #100:#81      // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #100 = Utf8               isNotEqualTo\n+  #101 = Methodref          #92.#102      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #102 = NameAndType        #103:#81      // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #103 = Utf8               hasSameHashCodeAs\n+  #104 = String             #105          // https://change\n+  #105 = Utf8               https://change\n+  #106 = Methodref          #92.#107      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #107 = NameAndType        #108:#81      // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #108 = Utf8               doesNotHaveSameHashCodeAs\n+  #109 = String             #110          // changed\n+  #110 = Utf8               changed\n+  #111 = Class              #112          // org/assertj/core/api/WithAssertions\n+  #112 = Utf8               org/assertj/core/api/WithAssertions\n+  #113 = Utf8               Code\n+  #114 = Utf8               LineNumberTable\n+  #115 = Utf8               LocalVariableTable\n+  #116 = Utf8               this\n+  #117 = Utf8               Ldev/langchain4j/data/image/ImageTest;\n+  #118 = Utf8               testBuilder\n+  #119 = Utf8               image\n+  #120 = Utf8               Ldev/langchain4j/data/image/Image;\n+  #121 = Utf8               Exceptions\n+  #122 = Class              #123          // java/lang/Exception\n+  #123 = Utf8               java/lang/Exception\n+  #124 = Utf8               RuntimeVisibleAnnotations\n+  #125 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #126 = Utf8               test_toString\n+  #127 = Utf8               test_equals_hash\n+  #128 = Utf8               image1\n+  #129 = Utf8               image2\n+  #130 = Utf8               SourceFile\n+  #131 = Utf8               ImageTest.java\n+  #132 = Utf8               InnerClasses\n+  #133 = Utf8               Builder\n {\n   dev.langchain4j.data.image.ImageTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -157,94 +157,94 @@\n             0       5     0  this   Ldev/langchain4j/data/image/ImageTest;\n \n   public void testBuilder() throws java.lang.Exception;\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-         3: new           #3                  // class java/net/URI\n+         0: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+         3: new           #13                 // class java/net/URI\n          6: dup\n-         7: ldc           #4                  // String https://example.com/image.png\n-         9: invokespecial #5                  // Method java/net/URI.\"<init>\":(Ljava/lang/String;)V\n-        12: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-        15: ldc           #7                  // String base64Data\n-        17: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        20: ldc           #9                  // String image/png\n-        22: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        25: ldc           #11                 // String revisedPrompt\n-        27: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        30: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+         7: ldc           #15                 // String https://example.com/image.png\n+         9: invokespecial #17                 // Method java/net/URI.\"<init>\":(Ljava/lang/String;)V\n+        12: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+        15: ldc           #26                 // String base64Data\n+        17: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        20: ldc           #31                 // String image/png\n+        22: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        25: ldc           #36                 // String revisedPrompt\n+        27: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        30: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         33: astore_1\n         34: aload_0\n         35: aload_1\n-        36: invokevirtual #14                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-        39: invokevirtual #15                 // Method java/net/URI.toString:()Ljava/lang/String;\n-        42: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        45: ldc           #4                  // String https://example.com/image.png\n-        47: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        36: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+        39: invokevirtual #47                 // Method java/net/URI.toString:()Ljava/lang/String;\n+        42: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        45: ldc           #15                 // String https://example.com/image.png\n+        47: invokevirtual #57                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         50: pop\n         51: aload_0\n         52: aload_1\n-        53: invokevirtual #18                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n-        56: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        59: ldc           #7                  // String base64Data\n-        61: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        53: invokevirtual #62                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+        56: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        59: ldc           #26                 // String base64Data\n+        61: invokevirtual #57                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         64: pop\n         65: aload_0\n         66: aload_1\n-        67: invokevirtual #19                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-        70: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        73: ldc           #9                  // String image/png\n-        75: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        67: invokevirtual #64                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+        70: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        73: ldc           #31                 // String image/png\n+        75: invokevirtual #57                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         78: pop\n         79: aload_0\n         80: aload_1\n-        81: invokevirtual #20                 // Method dev/langchain4j/data/image/Image.revisedPrompt:()Ljava/lang/String;\n-        84: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        87: ldc           #11                 // String revisedPrompt\n-        89: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        81: invokevirtual #66                 // Method dev/langchain4j/data/image/Image.revisedPrompt:()Ljava/lang/String;\n+        84: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        87: ldc           #36                 // String revisedPrompt\n+        89: invokevirtual #57                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         92: pop\n-        93: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-        96: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+        93: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+        96: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         99: astore_1\n        100: aload_0\n        101: aload_1\n-       102: invokevirtual #14                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       105: invokevirtual #21                 // Method assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n-       108: invokevirtual #22                 // Method org/assertj/core/api/AbstractUriAssert.isNull:()V\n+       102: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       105: invokevirtual #68                 // Method assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n+       108: invokevirtual #71                 // Method org/assertj/core/api/AbstractUriAssert.isNull:()V\n        111: aload_0\n        112: aload_1\n-       113: invokevirtual #18                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n-       116: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       119: invokevirtual #23                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+       113: invokevirtual #62                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+       116: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       119: invokevirtual #76                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n        122: aload_0\n        123: aload_1\n-       124: invokevirtual #19                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-       127: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       130: invokevirtual #23                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+       124: invokevirtual #64                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+       127: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       130: invokevirtual #76                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n        133: aload_0\n        134: aload_1\n-       135: invokevirtual #20                 // Method dev/langchain4j/data/image/Image.revisedPrompt:()Ljava/lang/String;\n-       138: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       141: invokevirtual #23                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n-       144: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-       147: ldc           #4                  // String https://example.com/image.png\n-       149: invokevirtual #24                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       152: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+       135: invokevirtual #66                 // Method dev/langchain4j/data/image/Image.revisedPrompt:()Ljava/lang/String;\n+       138: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       141: invokevirtual #76                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+       144: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+       147: ldc           #15                 // String https://example.com/image.png\n+       149: invokevirtual #77                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       152: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n        155: astore_1\n        156: aload_0\n        157: aload_1\n-       158: invokevirtual #14                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       161: invokevirtual #21                 // Method assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n-       164: new           #3                  // class java/net/URI\n+       158: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       161: invokevirtual #68                 // Method assertThat:(Ljava/net/URI;)Lorg/assertj/core/api/AbstractUriAssert;\n+       164: new           #13                 // class java/net/URI\n        167: dup\n-       168: ldc           #4                  // String https://example.com/image.png\n-       170: invokespecial #5                  // Method java/net/URI.\"<init>\":(Ljava/lang/String;)V\n-       173: invokevirtual #25                 // Method org/assertj/core/api/AbstractUriAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       168: ldc           #15                 // String https://example.com/image.png\n+       170: invokespecial #17                 // Method java/net/URI.\"<init>\":(Ljava/lang/String;)V\n+       173: invokevirtual #79                 // Method org/assertj/core/api/AbstractUriAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        176: pop\n        177: return\n       LineNumberTable:\n         line 12: 0\n         line 13: 12\n         line 14: 17\n         line 15: 22\n@@ -269,39 +269,39 @@\n            34      59     1 image   Ldev/langchain4j/data/image/Image;\n           100      44     1 image   Ldev/langchain4j/data/image/Image;\n           156      21     1 image   Ldev/langchain4j/data/image/Image;\n             0     178     0  this   Ldev/langchain4j/data/image/ImageTest;\n     Exceptions:\n       throws java.lang.Exception\n     RuntimeVisibleAnnotations:\n-      0: #53()\n+      0: #125()\n         org.junit.jupiter.api.Test\n \n   public void test_toString();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-         3: ldc           #4                  // String https://example.com/image.png\n-         5: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-         8: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-        11: ldc           #7                  // String base64Data\n-        13: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        16: ldc           #9                  // String image/png\n-        18: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        21: ldc           #11                 // String revisedPrompt\n-        23: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        26: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+         0: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+         3: ldc           #15                 // String https://example.com/image.png\n+         5: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+         8: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+        11: ldc           #26                 // String base64Data\n+        13: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        16: ldc           #31                 // String image/png\n+        18: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        21: ldc           #36                 // String revisedPrompt\n+        23: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        26: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         29: astore_1\n         30: aload_0\n         31: aload_1\n-        32: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        35: ldc           #28                 // String Image { url = \\\"https://example.com/image.png\\\", base64Data = \\\"base64Data\\\", mimeType = \\\"image/png\\\", revisedPrompt = \\\"revisedPrompt\\\" }\n-        37: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        32: invokevirtual #86                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        35: ldc           #89                 // String Image { url = \\\"https://example.com/image.png\\\", base64Data = \\\"base64Data\\\", mimeType = \\\"image/png\\\", revisedPrompt = \\\"revisedPrompt\\\" }\n+        37: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         40: pop\n         41: return\n       LineNumberTable:\n         line 42: 0\n         line 43: 5\n         line 44: 13\n         line 45: 18\n@@ -311,141 +311,141 @@\n         line 50: 37\n         line 52: 41\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      42     0  this   Ldev/langchain4j/data/image/ImageTest;\n            30      12     1 image   Ldev/langchain4j/data/image/Image;\n     RuntimeVisibleAnnotations:\n-      0: #53()\n+      0: #125()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-         3: ldc           #4                  // String https://example.com/image.png\n-         5: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-         8: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-        11: ldc           #7                  // String base64Data\n-        13: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        16: ldc           #9                  // String image/png\n-        18: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        21: ldc           #11                 // String revisedPrompt\n-        23: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        26: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+         0: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+         3: ldc           #15                 // String https://example.com/image.png\n+         5: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+         8: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+        11: ldc           #26                 // String base64Data\n+        13: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        16: ldc           #31                 // String image/png\n+        18: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        21: ldc           #36                 // String revisedPrompt\n+        23: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        26: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         29: astore_1\n-        30: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-        33: ldc           #4                  // String https://example.com/image.png\n-        35: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-        38: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-        41: ldc           #7                  // String base64Data\n-        43: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        46: ldc           #9                  // String image/png\n-        48: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        51: ldc           #11                 // String revisedPrompt\n-        53: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-        56: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+        30: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+        33: ldc           #15                 // String https://example.com/image.png\n+        35: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+        38: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+        41: ldc           #26                 // String base64Data\n+        43: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        46: ldc           #31                 // String image/png\n+        48: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        51: ldc           #36                 // String revisedPrompt\n+        53: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+        56: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         59: astore_2\n         60: aload_0\n         61: aload_1\n-        62: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        62: invokevirtual #86                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         65: aload_1\n-        66: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        69: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+        66: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        69: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n         72: aconst_null\n-        73: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        76: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n-        79: new           #33                 // class java/lang/Object\n+        73: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        76: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n+        79: new           #2                  // class java/lang/Object\n         82: dup\n         83: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        86: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        89: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+        86: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        89: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n         92: aload_2\n-        93: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        96: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+        93: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        96: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n         99: aload_2\n-       100: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       100: invokevirtual #101                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        103: pop\n        104: aload_0\n-       105: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-       108: ldc           #35                 // String https://change\n-       110: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-       113: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-       116: ldc           #7                  // String base64Data\n-       118: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       121: ldc           #9                  // String image/png\n-       123: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       126: ldc           #11                 // String revisedPrompt\n-       128: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       131: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n-       134: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       105: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+       108: ldc           #104                // String https://change\n+       110: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+       113: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+       116: ldc           #26                 // String base64Data\n+       118: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       121: ldc           #31                 // String image/png\n+       123: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       126: ldc           #36                 // String revisedPrompt\n+       128: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       131: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+       134: invokevirtual #86                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        137: aload_1\n-       138: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       141: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+       138: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       141: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        144: aload_1\n-       145: invokevirtual #36                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       145: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        148: pop\n        149: aload_0\n-       150: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-       153: ldc           #4                  // String https://example.com/image.png\n-       155: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-       158: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-       161: ldc           #37                 // String changed\n-       163: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       166: ldc           #9                  // String image/png\n-       168: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       171: ldc           #11                 // String revisedPrompt\n-       173: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       176: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n-       179: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       150: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+       153: ldc           #15                 // String https://example.com/image.png\n+       155: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+       158: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+       161: ldc           #109                // String changed\n+       163: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       166: ldc           #31                 // String image/png\n+       168: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       171: ldc           #36                 // String revisedPrompt\n+       173: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       176: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+       179: invokevirtual #86                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        182: aload_1\n-       183: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       186: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+       183: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       186: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        189: aload_1\n-       190: invokevirtual #36                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       190: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        193: pop\n        194: aload_0\n-       195: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-       198: ldc           #4                  // String https://example.com/image.png\n-       200: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-       203: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-       206: ldc           #7                  // String base64Data\n-       208: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       211: ldc           #37                 // String changed\n-       213: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       216: ldc           #11                 // String revisedPrompt\n-       218: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       221: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n-       224: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       195: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+       198: ldc           #15                 // String https://example.com/image.png\n+       200: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+       203: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+       206: ldc           #26                 // String base64Data\n+       208: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       211: ldc           #109                // String changed\n+       213: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       216: ldc           #36                 // String revisedPrompt\n+       218: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       221: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+       224: invokevirtual #86                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        227: aload_1\n-       228: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       231: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+       228: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       231: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        234: aload_1\n-       235: invokevirtual #36                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       235: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        238: pop\n        239: aload_0\n-       240: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-       243: ldc           #4                  // String https://example.com/image.png\n-       245: invokestatic  #26                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-       248: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-       251: ldc           #7                  // String base64Data\n-       253: invokevirtual #8                  // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       256: ldc           #9                  // String image/png\n-       258: invokevirtual #10                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       261: ldc           #37                 // String changed\n-       263: invokevirtual #12                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       266: invokevirtual #13                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n-       269: invokevirtual #27                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       240: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+       243: ldc           #15                 // String https://example.com/image.png\n+       245: invokestatic  #82                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+       248: invokevirtual #20                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+       251: ldc           #26                 // String base64Data\n+       253: invokevirtual #28                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       256: ldc           #31                 // String image/png\n+       258: invokevirtual #33                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       261: ldc           #109                // String changed\n+       263: invokevirtual #38                 // Method dev/langchain4j/data/image/Image$Builder.revisedPrompt:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       266: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+       269: invokevirtual #86                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        272: aload_1\n-       273: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       276: checkcast     #31                 // class org/assertj/core/api/ObjectAssert\n+       273: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       276: checkcast     #92                 // class org/assertj/core/api/ObjectAssert\n        279: aload_1\n-       280: invokevirtual #36                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       280: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        283: pop\n        284: return\n       LineNumberTable:\n         line 56: 0\n         line 57: 5\n         line 58: 13\n         line 59: 18\n@@ -506,13 +506,13 @@\n         line 115: 284\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     285     0  this   Ldev/langchain4j/data/image/ImageTest;\n            30     255     1 image1   Ldev/langchain4j/data/image/Image;\n            60     225     2 image2   Ldev/langchain4j/data/image/Image;\n     RuntimeVisibleAnnotations:\n-      0: #53()\n+      0: #125()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ImageTest.java\"\n InnerClasses:\n-  public static #104= #66 of #61;         // Builder=class dev/langchain4j/data/image/Image$Builder of class dev/langchain4j/data/image/Image\n+  public static #133= #21 of #8;          // Builder=class dev/langchain4j/data/image/Image$Builder of class dev/langchain4j/data/image/Image\n"}]}, {"source1": "dev/langchain4j/data/message/AiMessageTest.class", "source2": "dev/langchain4j/data/message/AiMessageTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,195 +1,195 @@\n-  SHA-256 checksum 2c3ceb1f57c4879f91298af657c27b5e1d0714f5090042fe7cd53640fde30680\n+  SHA-256 checksum aef434d35305dcde7c2f1c3c7b1d044c9f4edbf71a3493cbb4d26e58c6b48a85\n   Compiled from \"AiMessageTest.java\"\n class dev.langchain4j.data.message.AiMessageTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #47                         // dev/langchain4j/data/message/AiMessageTest\n-  super_class: #36                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/data/message/AiMessageTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-    #1 = Methodref          #36.#72       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #73           // dev/langchain4j/data/message/AiMessage\n-    #3 = String             #74           // text\n-    #4 = Methodref          #2.#75        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-    #5 = Methodref          #2.#76        // dev/langchain4j/data/message/AiMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-    #6 = Methodref          #47.#77       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-    #7 = Fieldref           #78.#79       // dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n-    #8 = Methodref          #80.#81       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-    #9 = Methodref          #2.#82        // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-   #10 = Methodref          #47.#83       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #11 = Methodref          #84.#85       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #12 = Methodref          #2.#86        // dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-   #13 = Methodref          #47.#87       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #14 = Methodref          #88.#89       // org/assertj/core/api/ListAssert.isNull:()V\n-   #15 = Methodref          #2.#90        // dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n-   #16 = Methodref          #47.#91       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #17 = Methodref          #92.#93       // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #18 = Methodref          #47.#94       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #19 = String             #95           // AiMessage { text = \\\"text\\\" toolExecutionRequests = null }\n-   #20 = Methodref          #34.#96       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #21 = Class              #97           // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #22 = Methodref          #21.#98       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #23 = String             #99           // foo\n-   #24 = Methodref          #100.#101     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #25 = Methodref          #100.#102     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #26 = String             #103          // bar\n-   #27 = Methodref          #104.#105     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #28 = Methodref          #2.#106       // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/util/List;)V\n-   #29 = Methodref          #84.#89       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n-   #30 = Methodref          #88.#107      // org/assertj/core/api/ListAssert.hasSize:(I)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #31 = Methodref          #92.#108      // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #32 = String             #109          // AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \\\"foo\\\", name = null, arguments = null }, ToolExecutionRequest { id = \\\"bar\\\", name = null, arguments = null }] }\n-   #33 = Methodref          #34.#81       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #34 = Class              #110          // org/assertj/core/api/ObjectAssert\n-   #35 = Methodref          #34.#111      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #36 = Class              #112          // java/lang/Object\n-   #37 = Methodref          #34.#113      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #38 = String             #114          // different\n-   #39 = Methodref          #34.#115      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #40 = Methodref          #2.#116       // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-   #41 = Methodref          #88.#117      // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #42 = Methodref          #2.#118       // dev/langchain4j/data/message/AiMessage.aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-   #43 = Methodref          #2.#119       // dev/langchain4j/data/message/AiMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-   #44 = Methodref          #2.#120       // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-   #45 = Methodref          #2.#121       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #46 = Methodref          #2.#122       // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #47 = Class              #123          // dev/langchain4j/data/message/AiMessageTest\n-   #48 = Class              #124          // org/assertj/core/api/WithAssertions\n-   #49 = Utf8               <init>\n-   #50 = Utf8               ()V\n-   #51 = Utf8               Code\n-   #52 = Utf8               LineNumberTable\n-   #53 = Utf8               LocalVariableTable\n-   #54 = Utf8               this\n-   #55 = Utf8               Ldev/langchain4j/data/message/AiMessageTest;\n-   #56 = Utf8               test_accessors\n-   #57 = Utf8               m\n-   #58 = Utf8               Ldev/langchain4j/data/message/AiMessage;\n-   #59 = Utf8               RuntimeVisibleAnnotations\n-   #60 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #61 = Utf8               test_equals_and_hashCode\n-   #62 = Utf8               m1\n-   #63 = Utf8               m2\n-   #64 = Utf8               m3\n-   #65 = Utf8               m4\n-   #66 = Utf8               m5\n-   #67 = Utf8               test_from\n-   #68 = Utf8               requests\n-   #69 = Utf8               [Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #70 = Utf8               SourceFile\n-   #71 = Utf8               AiMessageTest.java\n-   #72 = NameAndType        #49:#50       // \"<init>\":()V\n-   #73 = Utf8               dev/langchain4j/data/message/AiMessage\n-   #74 = Utf8               text\n-   #75 = NameAndType        #49:#125      // \"<init>\":(Ljava/lang/String;)V\n-   #76 = NameAndType        #126:#127     // type:()Ldev/langchain4j/data/message/ChatMessageType;\n-   #77 = NameAndType        #128:#129     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #78 = Class              #130          // dev/langchain4j/data/message/ChatMessageType\n-   #79 = NameAndType        #131:#132     // AI:Ldev/langchain4j/data/message/ChatMessageType;\n-   #80 = Class              #133          // org/assertj/core/api/AbstractComparableAssert\n-   #81 = NameAndType        #134:#135     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #82 = NameAndType        #74:#136      // text:()Ljava/lang/String;\n-   #83 = NameAndType        #128:#137     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #84 = Class              #138          // org/assertj/core/api/AbstractStringAssert\n-   #85 = NameAndType        #134:#137     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #86 = NameAndType        #139:#140     // toolExecutionRequests:()Ljava/util/List;\n-   #87 = NameAndType        #128:#141     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #88 = Class              #142          // org/assertj/core/api/ListAssert\n-   #89 = NameAndType        #143:#50      // isNull:()V\n-   #90 = NameAndType        #144:#145     // hasToolExecutionRequests:()Z\n-   #91 = NameAndType        #128:#146     // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #92 = Class              #147          // org/assertj/core/api/AbstractBooleanAssert\n-   #93 = NameAndType        #148:#149     // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #94 = NameAndType        #128:#150     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #95 = Utf8               AiMessage { text = \\\"text\\\" toolExecutionRequests = null }\n-   #96 = NameAndType        #151:#152     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #97 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #98 = NameAndType        #153:#156     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #99 = Utf8               foo\n-  #100 = Class              #157          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #101 = NameAndType        #158:#159     // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #102 = NameAndType        #160:#161     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #103 = Utf8               bar\n-  #104 = Class              #162          // java/util/Arrays\n-  #105 = NameAndType        #163:#164     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #106 = NameAndType        #49:#165      // \"<init>\":(Ljava/util/List;)V\n-  #107 = NameAndType        #166:#167     // hasSize:(I)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #108 = NameAndType        #168:#149     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #109 = Utf8               AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \\\"foo\\\", name = null, arguments = null }, ToolExecutionRequest { id = \\\"bar\\\", name = null, arguments = null }] }\n-  #110 = Utf8               org/assertj/core/api/ObjectAssert\n-  #111 = NameAndType        #169:#135     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #112 = Utf8               java/lang/Object\n-  #113 = NameAndType        #170:#135     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #114 = Utf8               different\n-  #115 = NameAndType        #171:#135     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #116 = NameAndType        #172:#173     // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #117 = NameAndType        #174:#175     // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #118 = NameAndType        #176:#173     // aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #119 = NameAndType        #172:#177     // from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-  #120 = NameAndType        #176:#177     // aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-  #121 = NameAndType        #172:#178     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #122 = NameAndType        #176:#178     // aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #123 = Utf8               dev/langchain4j/data/message/AiMessageTest\n-  #124 = Utf8               org/assertj/core/api/WithAssertions\n-  #125 = Utf8               (Ljava/lang/String;)V\n-  #126 = Utf8               type\n-  #127 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n-  #128 = Utf8               assertThat\n-  #129 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #130 = Utf8               dev/langchain4j/data/message/ChatMessageType\n-  #131 = Utf8               AI\n-  #132 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n-  #133 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #134 = Utf8               isEqualTo\n-  #135 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #136 = Utf8               ()Ljava/lang/String;\n-  #137 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #138 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #139 = Utf8               toolExecutionRequests\n-  #140 = Utf8               ()Ljava/util/List;\n-  #141 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #142 = Utf8               org/assertj/core/api/ListAssert\n-  #143 = Utf8               isNull\n-  #144 = Utf8               hasToolExecutionRequests\n-  #145 = Utf8               ()Z\n-  #146 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #147 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n-  #148 = Utf8               isFalse\n-  #149 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #150 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #151 = Utf8               hasToString\n-  #152 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #153 = Utf8               builder\n-  #154 = Utf8               Builder\n-  #155 = Utf8               InnerClasses\n-  #156 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #157 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #158 = Utf8               id\n-  #159 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #160 = Utf8               build\n-  #161 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #162 = Utf8               java/util/Arrays\n-  #163 = Utf8               asList\n-  #164 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #165 = Utf8               (Ljava/util/List;)V\n-  #166 = Utf8               hasSize\n-  #167 = Utf8               (I)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #168 = Utf8               isTrue\n-  #169 = Utf8               isNotEqualTo\n-  #170 = Utf8               hasSameHashCodeAs\n-  #171 = Utf8               doesNotHaveSameHashCodeAs\n-  #172 = Utf8               from\n-  #173 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #174 = Utf8               containsOnly\n-  #175 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #176 = Utf8               aiMessage\n-  #177 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-  #178 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/data/message/AiMessage\n+    #8 = Utf8               dev/langchain4j/data/message/AiMessage\n+    #9 = String             #10           // text\n+   #10 = Utf8               text\n+   #11 = Methodref          #7.#12        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+   #12 = NameAndType        #5:#13        // \"<init>\":(Ljava/lang/String;)V\n+   #13 = Utf8               (Ljava/lang/String;)V\n+   #14 = Methodref          #7.#15        // dev/langchain4j/data/message/AiMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+   #15 = NameAndType        #16:#17       // type:()Ldev/langchain4j/data/message/ChatMessageType;\n+   #16 = Utf8               type\n+   #17 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n+   #18 = Methodref          #19.#20       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #19 = Class              #21           // dev/langchain4j/data/message/AiMessageTest\n+   #20 = NameAndType        #22:#23       // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #21 = Utf8               dev/langchain4j/data/message/AiMessageTest\n+   #22 = Utf8               assertThat\n+   #23 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #24 = Fieldref           #25.#26       // dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n+   #25 = Class              #27           // dev/langchain4j/data/message/ChatMessageType\n+   #26 = NameAndType        #28:#29       // AI:Ldev/langchain4j/data/message/ChatMessageType;\n+   #27 = Utf8               dev/langchain4j/data/message/ChatMessageType\n+   #28 = Utf8               AI\n+   #29 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n+   #30 = Methodref          #31.#32       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #31 = Class              #33           // org/assertj/core/api/AbstractComparableAssert\n+   #32 = NameAndType        #34:#35       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #33 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+   #34 = Utf8               isEqualTo\n+   #35 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #36 = Methodref          #7.#37        // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+   #37 = NameAndType        #10:#38       // text:()Ljava/lang/String;\n+   #38 = Utf8               ()Ljava/lang/String;\n+   #39 = Methodref          #19.#40       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #40 = NameAndType        #22:#41       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #41 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #42 = Methodref          #43.#44       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #43 = Class              #45           // org/assertj/core/api/AbstractStringAssert\n+   #44 = NameAndType        #34:#41       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #45 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #46 = Methodref          #7.#47        // dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+   #47 = NameAndType        #48:#49       // toolExecutionRequests:()Ljava/util/List;\n+   #48 = Utf8               toolExecutionRequests\n+   #49 = Utf8               ()Ljava/util/List;\n+   #50 = Methodref          #19.#51       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #51 = NameAndType        #22:#52       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #52 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #53 = Methodref          #54.#55       // org/assertj/core/api/ListAssert.isNull:()V\n+   #54 = Class              #56           // org/assertj/core/api/ListAssert\n+   #55 = NameAndType        #57:#6        // isNull:()V\n+   #56 = Utf8               org/assertj/core/api/ListAssert\n+   #57 = Utf8               isNull\n+   #58 = Methodref          #7.#59        // dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n+   #59 = NameAndType        #60:#61       // hasToolExecutionRequests:()Z\n+   #60 = Utf8               hasToolExecutionRequests\n+   #61 = Utf8               ()Z\n+   #62 = Methodref          #19.#63       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #63 = NameAndType        #22:#64       // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #64 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #65 = Methodref          #66.#67       // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #66 = Class              #68           // org/assertj/core/api/AbstractBooleanAssert\n+   #67 = NameAndType        #69:#70       // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #68 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n+   #69 = Utf8               isFalse\n+   #70 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #71 = Methodref          #19.#72       // dev/langchain4j/data/message/AiMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #72 = NameAndType        #22:#73       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #73 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #74 = String             #75           // AiMessage { text = \\\"text\\\" toolExecutionRequests = null }\n+   #75 = Utf8               AiMessage { text = \\\"text\\\" toolExecutionRequests = null }\n+   #76 = Methodref          #77.#78       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = Class              #79           // org/assertj/core/api/ObjectAssert\n+   #78 = NameAndType        #80:#81       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #79 = Utf8               org/assertj/core/api/ObjectAssert\n+   #80 = Utf8               hasToString\n+   #81 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #82 = Class              #83           // dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #83 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #84 = Methodref          #82.#85       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #85 = NameAndType        #86:#87       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #86 = Utf8               builder\n+   #87 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #88 = String             #89           // foo\n+   #89 = Utf8               foo\n+   #90 = Methodref          #91.#92       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #91 = Class              #93           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #92 = NameAndType        #94:#95       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #93 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #94 = Utf8               id\n+   #95 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #96 = Methodref          #91.#97       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #97 = NameAndType        #98:#99       // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #98 = Utf8               build\n+   #99 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #100 = String             #101          // bar\n+  #101 = Utf8               bar\n+  #102 = Methodref          #103.#104     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #103 = Class              #105          // java/util/Arrays\n+  #104 = NameAndType        #106:#107     // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #105 = Utf8               java/util/Arrays\n+  #106 = Utf8               asList\n+  #107 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #108 = Methodref          #7.#109       // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/util/List;)V\n+  #109 = NameAndType        #5:#110       // \"<init>\":(Ljava/util/List;)V\n+  #110 = Utf8               (Ljava/util/List;)V\n+  #111 = Methodref          #43.#55       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n+  #112 = Methodref          #54.#113      // org/assertj/core/api/ListAssert.hasSize:(I)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #113 = NameAndType        #114:#115     // hasSize:(I)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #114 = Utf8               hasSize\n+  #115 = Utf8               (I)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #116 = Methodref          #66.#117      // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #117 = NameAndType        #118:#70      // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #118 = Utf8               isTrue\n+  #119 = String             #120          // AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \\\"foo\\\", name = null, arguments = null }, ToolExecutionRequest { id = \\\"bar\\\", name = null, arguments = null }] }\n+  #120 = Utf8               AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \\\"foo\\\", name = null, arguments = null }, ToolExecutionRequest { id = \\\"bar\\\", name = null, arguments = null }] }\n+  #121 = Methodref          #77.#32       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #122 = Methodref          #77.#123      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #123 = NameAndType        #124:#35      // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #124 = Utf8               isNotEqualTo\n+  #125 = Methodref          #77.#126      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #126 = NameAndType        #127:#35      // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #127 = Utf8               hasSameHashCodeAs\n+  #128 = String             #129          // different\n+  #129 = Utf8               different\n+  #130 = Methodref          #77.#131      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #131 = NameAndType        #132:#35      // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #132 = Utf8               doesNotHaveSameHashCodeAs\n+  #133 = Methodref          #7.#134       // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #134 = NameAndType        #135:#136     // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #135 = Utf8               from\n+  #136 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #137 = Methodref          #54.#138      // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #138 = NameAndType        #139:#140     // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #139 = Utf8               containsOnly\n+  #140 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #141 = Methodref          #7.#142       // dev/langchain4j/data/message/AiMessage.aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #142 = NameAndType        #143:#136     // aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #143 = Utf8               aiMessage\n+  #144 = Methodref          #7.#145       // dev/langchain4j/data/message/AiMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #145 = NameAndType        #135:#146     // from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #146 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #147 = Methodref          #7.#148       // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #148 = NameAndType        #143:#146     // aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #149 = Methodref          #7.#150       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #150 = NameAndType        #135:#151     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #151 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #152 = Methodref          #7.#153       // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #153 = NameAndType        #143:#151     // aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #154 = Class              #155          // org/assertj/core/api/WithAssertions\n+  #155 = Utf8               org/assertj/core/api/WithAssertions\n+  #156 = Utf8               Code\n+  #157 = Utf8               LineNumberTable\n+  #158 = Utf8               LocalVariableTable\n+  #159 = Utf8               this\n+  #160 = Utf8               Ldev/langchain4j/data/message/AiMessageTest;\n+  #161 = Utf8               test_accessors\n+  #162 = Utf8               m\n+  #163 = Utf8               Ldev/langchain4j/data/message/AiMessage;\n+  #164 = Utf8               RuntimeVisibleAnnotations\n+  #165 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #166 = Utf8               test_equals_and_hashCode\n+  #167 = Utf8               m1\n+  #168 = Utf8               m2\n+  #169 = Utf8               m3\n+  #170 = Utf8               m4\n+  #171 = Utf8               m5\n+  #172 = Utf8               test_from\n+  #173 = Utf8               requests\n+  #174 = Utf8               [Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #175 = Utf8               SourceFile\n+  #176 = Utf8               AiMessageTest.java\n+  #177 = Utf8               InnerClasses\n+  #178 = Utf8               Builder\n {\n   dev.langchain4j.data.message.AiMessageTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -202,101 +202,101 @@\n             0       5     0  this   Ldev/langchain4j/data/message/AiMessageTest;\n \n   public void test_accessors();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/AiMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/AiMessage\n          3: dup\n-         4: ldc           #3                  // String text\n-         6: invokespecial #4                  // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #9                  // String text\n+         6: invokespecial #11                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n          9: astore_1\n         10: aload_0\n         11: aload_1\n-        12: invokevirtual #5                  // Method dev/langchain4j/data/message/AiMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-        15: invokevirtual #6                  // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        18: getstatic     #7                  // Field dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n-        21: invokevirtual #8                  // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        12: invokevirtual #14                 // Method dev/langchain4j/data/message/AiMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+        15: invokevirtual #18                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        18: getstatic     #24                 // Field dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n+        21: invokevirtual #30                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         24: pop\n         25: aload_0\n         26: aload_1\n-        27: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-        30: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        33: ldc           #3                  // String text\n-        35: invokevirtual #11                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        27: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+        30: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        33: ldc           #9                  // String text\n+        35: invokevirtual #42                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         38: pop\n         39: aload_0\n         40: aload_1\n-        41: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-        44: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        47: invokevirtual #14                 // Method org/assertj/core/api/ListAssert.isNull:()V\n+        41: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+        44: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        47: invokevirtual #53                 // Method org/assertj/core/api/ListAssert.isNull:()V\n         50: aload_0\n         51: aload_1\n-        52: invokevirtual #15                 // Method dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n-        55: invokevirtual #16                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        58: invokevirtual #17                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        52: invokevirtual #58                 // Method dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n+        55: invokevirtual #62                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        58: invokevirtual #65                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         61: pop\n         62: aload_0\n         63: aload_1\n-        64: invokevirtual #18                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        67: ldc           #19                 // String AiMessage { text = \\\"text\\\" toolExecutionRequests = null }\n-        69: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        64: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        67: ldc           #74                 // String AiMessage { text = \\\"text\\\" toolExecutionRequests = null }\n+        69: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         72: pop\n-        73: new           #2                  // class dev/langchain4j/data/message/AiMessage\n+        73: new           #7                  // class dev/langchain4j/data/message/AiMessage\n         76: dup\n         77: iconst_2\n-        78: anewarray     #21                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+        78: anewarray     #82                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n         81: dup\n         82: iconst_0\n-        83: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        86: ldc           #23                 // String foo\n-        88: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        91: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        83: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        86: ldc           #88                 // String foo\n+        88: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        91: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         94: aastore\n         95: dup\n         96: iconst_1\n-        97: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       100: ldc           #26                 // String bar\n-       102: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       105: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        97: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       100: ldc           #100                // String bar\n+       102: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       105: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        108: aastore\n-       109: invokestatic  #27                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       112: invokespecial #28                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/util/List;)V\n+       109: invokestatic  #102                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       112: invokespecial #108                // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/util/List;)V\n        115: astore_1\n        116: aload_0\n        117: aload_1\n-       118: invokevirtual #5                  // Method dev/langchain4j/data/message/AiMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-       121: invokevirtual #6                  // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       124: getstatic     #7                  // Field dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n-       127: invokevirtual #8                  // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       118: invokevirtual #14                 // Method dev/langchain4j/data/message/AiMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+       121: invokevirtual #18                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       124: getstatic     #24                 // Field dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n+       127: invokevirtual #30                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        130: pop\n        131: aload_0\n        132: aload_1\n-       133: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       136: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       139: invokevirtual #29                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+       133: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       136: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       139: invokevirtual #111                // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n        142: aload_0\n        143: aload_1\n-       144: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-       147: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       144: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       147: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        150: iconst_2\n-       151: invokevirtual #30                 // Method org/assertj/core/api/ListAssert.hasSize:(I)Lorg/assertj/core/api/AbstractIterableAssert;\n+       151: invokevirtual #112                // Method org/assertj/core/api/ListAssert.hasSize:(I)Lorg/assertj/core/api/AbstractIterableAssert;\n        154: pop\n        155: aload_0\n        156: aload_1\n-       157: invokevirtual #15                 // Method dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n-       160: invokevirtual #16                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       163: invokevirtual #31                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       157: invokevirtual #58                 // Method dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n+       160: invokevirtual #62                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       163: invokevirtual #116                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        166: pop\n        167: aload_0\n        168: aload_1\n-       169: invokevirtual #18                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       172: ldc           #32                 // String AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \\\"foo\\\", name = null, arguments = null }, ToolExecutionRequest { id = \\\"bar\\\", name = null, arguments = null }] }\n-       174: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+       169: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       172: ldc           #119                // String AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \\\"foo\\\", name = null, arguments = null }, ToolExecutionRequest { id = \\\"bar\\\", name = null, arguments = null }] }\n+       174: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n        177: pop\n        178: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 10\n         line 15: 25\n         line 16: 39\n@@ -318,116 +318,116 @@\n         line 36: 178\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n            10      63     1     m   Ldev/langchain4j/data/message/AiMessage;\n           116      62     1     m   Ldev/langchain4j/data/message/AiMessage;\n             0     179     0  this   Ldev/langchain4j/data/message/AiMessageTest;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #165()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_and_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=6, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/AiMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/AiMessage\n          3: dup\n-         4: ldc           #3                  // String text\n-         6: invokespecial #4                  // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #9                  // String text\n+         6: invokespecial #11                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n          9: astore_1\n-        10: new           #2                  // class dev/langchain4j/data/message/AiMessage\n+        10: new           #7                  // class dev/langchain4j/data/message/AiMessage\n         13: dup\n-        14: ldc           #3                  // String text\n-        16: invokespecial #4                  // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        14: ldc           #9                  // String text\n+        16: invokespecial #11                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n         19: astore_2\n         20: aload_0\n         21: aload_1\n-        22: invokevirtual #18                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        22: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         25: aload_1\n-        26: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        29: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+        26: invokevirtual #121                // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        29: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         32: aconst_null\n-        33: invokevirtual #35                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        36: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n-        39: new           #36                 // class java/lang/Object\n+        33: invokevirtual #122                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        36: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+        39: new           #2                  // class java/lang/Object\n         42: dup\n         43: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        46: invokevirtual #35                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        49: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+        46: invokevirtual #122                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        49: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         52: aload_2\n-        53: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        56: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+        53: invokevirtual #121                // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        56: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         59: aload_2\n-        60: invokevirtual #37                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        60: invokevirtual #125                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         63: pop\n-        64: new           #2                  // class dev/langchain4j/data/message/AiMessage\n+        64: new           #7                  // class dev/langchain4j/data/message/AiMessage\n         67: dup\n-        68: ldc           #38                 // String different\n-        70: invokespecial #4                  // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        68: ldc           #128                // String different\n+        70: invokespecial #11                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n         73: astore_3\n         74: aload_0\n         75: aload_1\n-        76: invokevirtual #18                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        76: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         79: aload_3\n-        80: invokevirtual #35                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        83: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+        80: invokevirtual #122                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        83: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         86: aload_3\n-        87: invokevirtual #39                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        87: invokevirtual #130                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         90: pop\n         91: iconst_2\n-        92: anewarray     #21                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+        92: anewarray     #82                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n         95: dup\n         96: iconst_0\n-        97: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       100: ldc           #23                 // String foo\n-       102: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       105: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        97: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       100: ldc           #88                 // String foo\n+       102: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       105: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        108: aastore\n        109: dup\n        110: iconst_1\n-       111: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       114: ldc           #26                 // String bar\n-       116: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       119: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       111: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       114: ldc           #100                // String bar\n+       116: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       119: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        122: aastore\n-       123: invokestatic  #40                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+       123: invokestatic  #133                // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n        126: astore        4\n        128: iconst_2\n-       129: anewarray     #21                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+       129: anewarray     #82                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n        132: dup\n        133: iconst_0\n-       134: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       137: ldc           #23                 // String foo\n-       139: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       142: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       134: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       137: ldc           #88                 // String foo\n+       139: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       142: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        145: aastore\n        146: dup\n        147: iconst_1\n-       148: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       151: ldc           #26                 // String bar\n-       153: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       156: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       148: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       151: ldc           #100                // String bar\n+       153: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       156: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        159: aastore\n-       160: invokestatic  #40                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+       160: invokestatic  #133                // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n        163: astore        5\n        165: aload_0\n        166: aload         4\n-       168: invokevirtual #18                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       168: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        171: aload_1\n-       172: invokevirtual #35                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       175: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+       172: invokevirtual #122                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       175: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        178: aload_1\n-       179: invokevirtual #39                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       182: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+       179: invokevirtual #130                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       182: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        185: aload         5\n-       187: invokevirtual #33                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       190: checkcast     #34                 // class org/assertj/core/api/ObjectAssert\n+       187: invokevirtual #121                // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       190: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        193: aload         5\n-       195: invokevirtual #37                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       195: invokevirtual #125                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        198: pop\n        199: return\n       LineNumberTable:\n         line 40: 0\n         line 41: 10\n         line 42: 20\n         line 43: 26\n@@ -466,131 +466,131 @@\n             0     200     0  this   Ldev/langchain4j/data/message/AiMessageTest;\n            10     190     1    m1   Ldev/langchain4j/data/message/AiMessage;\n            20     180     2    m2   Ldev/langchain4j/data/message/AiMessage;\n            74     126     3    m3   Ldev/langchain4j/data/message/AiMessage;\n           128      72     4    m4   Ldev/langchain4j/data/message/AiMessage;\n           165      35     5    m5   Ldev/langchain4j/data/message/AiMessage;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #165()\n         org.junit.jupiter.api.Test\n \n   public void test_from();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=3, args_size=1\n          0: iconst_2\n-         1: anewarray     #21                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+         1: anewarray     #82                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n          4: dup\n          5: iconst_0\n-         6: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         9: ldc           #23                 // String foo\n-        11: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        14: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+         6: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         9: ldc           #88                 // String foo\n+        11: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        14: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         17: aastore\n         18: dup\n         19: iconst_1\n-        20: invokestatic  #22                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        23: ldc           #26                 // String bar\n-        25: invokevirtual #24                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        28: invokevirtual #25                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        20: invokestatic  #84                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        23: ldc           #100                // String bar\n+        25: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        28: invokevirtual #96                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         31: aastore\n         32: astore_1\n         33: aload_1\n-        34: invokestatic  #40                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+        34: invokestatic  #133                // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n         37: astore_2\n         38: aload_0\n         39: aload_2\n-        40: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-        43: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        46: invokevirtual #29                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        40: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+        43: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        46: invokevirtual #111                // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         49: aload_0\n         50: aload_2\n-        51: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-        54: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        51: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+        54: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         57: aload_1\n-        58: invokevirtual #41                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        58: invokevirtual #137                // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         61: pop\n         62: aload_1\n-        63: invokestatic  #42                 // Method dev/langchain4j/data/message/AiMessage.aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+        63: invokestatic  #141                // Method dev/langchain4j/data/message/AiMessage.aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n         66: astore_2\n         67: aload_0\n         68: aload_2\n-        69: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-        72: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        75: invokevirtual #29                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        69: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+        72: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        75: invokevirtual #111                // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         78: aload_0\n         79: aload_2\n-        80: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-        83: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        80: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+        83: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         86: aload_1\n-        87: invokevirtual #41                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        87: invokevirtual #137                // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         90: pop\n         91: aload_1\n-        92: invokestatic  #27                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        95: invokestatic  #43                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+        92: invokestatic  #102                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        95: invokestatic  #144                // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n         98: astore_2\n         99: aload_0\n        100: aload_2\n-       101: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       104: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       107: invokevirtual #29                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+       101: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       104: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       107: invokevirtual #111                // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n        110: aload_0\n        111: aload_2\n-       112: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-       115: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       112: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       115: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        118: aload_1\n-       119: invokevirtual #41                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       119: invokevirtual #137                // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        122: pop\n        123: aload_1\n-       124: invokestatic  #27                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       127: invokestatic  #44                 // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+       124: invokestatic  #102                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       127: invokestatic  #147                // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n        130: astore_2\n        131: aload_0\n        132: aload_2\n-       133: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       136: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       139: invokevirtual #29                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+       133: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       136: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       139: invokevirtual #111                // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n        142: aload_0\n        143: aload_2\n-       144: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-       147: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       144: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       147: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        150: aload_1\n-       151: invokevirtual #41                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       151: invokevirtual #137                // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        154: pop\n-       155: ldc           #3                  // String text\n-       157: invokestatic  #45                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+       155: ldc           #9                  // String text\n+       157: invokestatic  #149                // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n        160: astore_2\n        161: aload_0\n        162: aload_2\n-       163: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       166: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       169: ldc           #3                  // String text\n-       171: invokevirtual #11                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       163: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       166: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       169: ldc           #9                  // String text\n+       171: invokevirtual #42                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        174: pop\n        175: aload_0\n        176: aload_2\n-       177: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-       180: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-       183: invokevirtual #14                 // Method org/assertj/core/api/ListAssert.isNull:()V\n-       186: ldc           #3                  // String text\n-       188: invokestatic  #46                 // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+       177: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       180: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       183: invokevirtual #53                 // Method org/assertj/core/api/ListAssert.isNull:()V\n+       186: ldc           #9                  // String text\n+       188: invokestatic  #152                // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n        191: astore_2\n        192: aload_0\n        193: aload_2\n-       194: invokevirtual #9                  // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       197: invokevirtual #10                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       200: ldc           #3                  // String text\n-       202: invokevirtual #11                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       194: invokevirtual #36                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       197: invokevirtual #39                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       200: ldc           #9                  // String text\n+       202: invokevirtual #42                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        205: pop\n        206: aload_0\n        207: aload_2\n-       208: invokevirtual #12                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-       211: invokevirtual #13                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-       214: invokevirtual #14                 // Method org/assertj/core/api/ListAssert.isNull:()V\n+       208: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       211: invokevirtual #50                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       214: invokevirtual #53                 // Method org/assertj/core/api/ListAssert.isNull:()V\n        217: return\n       LineNumberTable:\n         line 78: 0\n         line 79: 6\n         line 80: 11\n         line 81: 14\n         line 82: 20\n@@ -622,13 +622,13 @@\n            99      24     2     m   Ldev/langchain4j/data/message/AiMessage;\n           131      24     2     m   Ldev/langchain4j/data/message/AiMessage;\n           161      25     2     m   Ldev/langchain4j/data/message/AiMessage;\n           192      25     2     m   Ldev/langchain4j/data/message/AiMessage;\n             0     218     0  this   Ldev/langchain4j/data/message/AiMessageTest;\n            33     185     1 requests   [Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     RuntimeVisibleAnnotations:\n-      0: #60()\n+      0: #165()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"AiMessageTest.java\"\n InnerClasses:\n-  public static final #154= #100 of #21;  // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static final #178= #91 of #82;   // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n"}]}, {"source1": "dev/langchain4j/data/message/ChatMessageSerializerTest.class", "source2": "dev/langchain4j/data/message/ChatMessageSerializerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,242 +1,242 @@\n-  SHA-256 checksum 1cdc95511a9fc2034a0f7b572958f25aaac783eaf1a93861e6cfd088e62f418e\n+  SHA-256 checksum 7e0bd907291a55643b460d9cbb33e6cda6b6cc86eba3f801e09611b17122ac60\n   Compiled from \"ChatMessageSerializerTest.java\"\n class dev.langchain4j.data.message.ChatMessageSerializerTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #58                         // dev/langchain4j/data/message/ChatMessageSerializerTest\n-  super_class: #9                         // java/lang/Object\n+  this_class: #190                        // dev/langchain4j/data/message/ChatMessageSerializerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 8, attributes: 2\n Constant pool:\n-    #1 = Methodref          #9.#93        // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #94.#95       // dev/langchain4j/data/message/ChatMessageSerializer.messageToJson:(Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n-    #3 = Methodref          #96.#97       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #4 = Methodref          #98.#99       // org/assertj/core/api/AbstractStringAssert.isEqualToIgnoringWhitespace:(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-    #5 = Methodref          #100.#101     // dev/langchain4j/data/message/ChatMessageDeserializer.messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n-    #6 = Methodref          #96.#102      // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-    #7 = Methodref          #103.#104     // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-    #8 = Class              #105          // org/junit/jupiter/params/provider/Arguments\n-    #9 = Class              #106          // java/lang/Object\n-   #10 = String             #107          // hello\n-   #11 = Methodref          #108.#109     // dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-   #12 = String             #110          // {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"SYSTEM\\\"}\n-   #13 = InterfaceMethodref #8.#111       // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #14 = Methodref          #112.#113     // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #15 = String             #114          // {\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n-   #16 = String             #115          // Klaus\n-   #17 = Methodref          #112.#116     // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #18 = String             #117          // {\\\"name\\\":\\\"Klaus\\\",\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n-   #19 = Class              #118          // dev/langchain4j/data/message/Content\n-   #20 = String             #119          // http://image.url\n-   #21 = Methodref          #120.#121     // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-   #22 = Methodref          #112.#122     // dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-   #23 = String             #123          // {\\\"contents\\\":[{\\\"image\\\":{\\\"url\\\":\\\"http://image.url\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n-   #24 = String             #124          // aGVsbG8=\n-   #25 = String             #125          // image/png\n-   #26 = Methodref          #120.#126     // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-   #27 = String             #127          // {\\\"contents\\\":[{\\\"image\\\":{\\\"base64Data\\\":\\\"aGVsbG8\\\\u003d\\\",\\\"mimeType\\\":\\\"image/png\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n-   #28 = Methodref          #128.#129     // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #29 = String             #130          // {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"AI\\\"}\n-   #30 = Class              #131          // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #31 = Methodref          #30.#132      // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #32 = String             #133          // weather\n-   #33 = Methodref          #134.#135     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #34 = String             #136          // {\\\"city\\\": \\\"Munich\\\"}\n-   #35 = Methodref          #134.#137     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #36 = Methodref          #134.#138     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #37 = Methodref          #128.#139     // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-   #38 = String             #140          // {\\\"toolExecutionRequests\\\":[{\\\"name\\\":\\\"weather\\\",\\\"arguments\\\":\\\"{\\\\\\\"city\\\\\\\": \\\\\\\"Munich\\\\\\\"}\\\"}],\\\"type\\\":\\\"AI\\\"}\n-   #39 = String             #141          // 12345\n-   #40 = String             #142          // sunny\n-   #41 = Methodref          #143.#144     // dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #42 = String             #145          // {\\\"id\\\":\\\"12345\\\",\\\"toolName\\\":\\\"weather\\\",\\\"text\\\":\\\"sunny\\\",\\\"type\\\":\\\"TOOL_EXECUTION_RESULT\\\"}\n-   #43 = InterfaceMethodref #146.#147     // java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-   #44 = String             #148          // {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}\n-   #45 = Methodref          #149.#150     // java/util/Collections.emptyList:()Ljava/util/List;\n-   #46 = Methodref          #94.#151      // dev/langchain4j/data/message/ChatMessageSerializer.messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n-   #47 = Methodref          #100.#152     // dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n-   #48 = Methodref          #96.#153      // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #49 = Methodref          #154.#155     // org/assertj/core/api/ListAssert.isEmpty:()V\n-   #50 = Methodref          #112.#156     // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #51 = Methodref          #149.#157     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #52 = String             #158          // [{\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}]\n-   #53 = Methodref          #98.#159      // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #54 = Methodref          #154.#160     // org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #55 = String             #161          // [{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}]\n-   #56 = Class              #162          // dev/langchain4j/data/message/ChatMessage\n-   #57 = Methodref          #154.#163     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #58 = Class              #164          // dev/langchain4j/data/message/ChatMessageSerializerTest\n-   #59 = Utf8               <init>\n-   #60 = Utf8               ()V\n-   #61 = Utf8               Code\n-   #62 = Utf8               LineNumberTable\n-   #63 = Utf8               LocalVariableTable\n-   #64 = Utf8               this\n-   #65 = Utf8               Ldev/langchain4j/data/message/ChatMessageSerializerTest;\n-   #66 = Utf8               should_serialize_and_deserialize_chat_message\n-   #67 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;Ljava/lang/String;)V\n-   #68 = Utf8               message\n-   #69 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-   #70 = Utf8               expectedJson\n-   #71 = Utf8               Ljava/lang/String;\n-   #72 = Utf8               json\n-   #73 = Utf8               deserializedMessage\n-   #74 = Utf8               RuntimeVisibleAnnotations\n-   #75 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-   #76 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n-   #77 = Utf8               ()Ljava/util/stream/Stream;\n-   #78 = Utf8               Signature\n-   #79 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n-   #80 = Utf8               should_deserialize_user_message_in_old_schema\n-   #81 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #82 = Utf8               should_serialize_and_deserialize_empty_list\n-   #83 = Utf8               messages\n-   #84 = Utf8               Ljava/util/List;\n-   #85 = Utf8               deserializedMessages\n-   #86 = Utf8               LocalVariableTypeTable\n-   #87 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-   #88 = Utf8               should_deserialize_null_as_empty_list\n-   #89 = Utf8               should_serialize_and_deserialize_list_with_one_message\n-   #90 = Utf8               should_serialize_and_deserialize_list_with_one_message_in_old_schema\n-   #91 = Utf8               SourceFile\n-   #92 = Utf8               ChatMessageSerializerTest.java\n-   #93 = NameAndType        #59:#60       // \"<init>\":()V\n-   #94 = Class              #165          // dev/langchain4j/data/message/ChatMessageSerializer\n-   #95 = NameAndType        #166:#167     // messageToJson:(Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n-   #96 = Class              #168          // org/assertj/core/api/Assertions\n-   #97 = NameAndType        #169:#170     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #98 = Class              #171          // org/assertj/core/api/AbstractStringAssert\n-   #99 = NameAndType        #172:#173     // isEqualToIgnoringWhitespace:(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-  #100 = Class              #174          // dev/langchain4j/data/message/ChatMessageDeserializer\n-  #101 = NameAndType        #175:#176     // messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n-  #102 = NameAndType        #169:#177     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #103 = Class              #178          // org/assertj/core/api/ObjectAssert\n-  #104 = NameAndType        #179:#180     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #105 = Utf8               org/junit/jupiter/params/provider/Arguments\n-  #106 = Utf8               java/lang/Object\n-  #107 = Utf8               hello\n-  #108 = Class              #181          // dev/langchain4j/data/message/SystemMessage\n-  #109 = NameAndType        #182:#183     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #110 = Utf8               {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"SYSTEM\\\"}\n-  #111 = NameAndType        #184:#185     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #112 = Class              #186          // dev/langchain4j/data/message/UserMessage\n-  #113 = NameAndType        #182:#187     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #114 = Utf8               {\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n-  #115 = Utf8               Klaus\n-  #116 = NameAndType        #182:#188     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #117 = Utf8               {\\\"name\\\":\\\"Klaus\\\",\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n-  #118 = Utf8               dev/langchain4j/data/message/Content\n-  #119 = Utf8               http://image.url\n-  #120 = Class              #189          // dev/langchain4j/data/message/ImageContent\n-  #121 = NameAndType        #182:#190     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #122 = NameAndType        #182:#191     // from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #123 = Utf8               {\\\"contents\\\":[{\\\"image\\\":{\\\"url\\\":\\\"http://image.url\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n-  #124 = Utf8               aGVsbG8=\n-  #125 = Utf8               image/png\n-  #126 = NameAndType        #182:#192     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #127 = Utf8               {\\\"contents\\\":[{\\\"image\\\":{\\\"base64Data\\\":\\\"aGVsbG8\\\\u003d\\\",\\\"mimeType\\\":\\\"image/png\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n-  #128 = Class              #193          // dev/langchain4j/data/message/AiMessage\n-  #129 = NameAndType        #182:#194     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #130 = Utf8               {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"AI\\\"}\n-  #131 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #132 = NameAndType        #195:#198     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #133 = Utf8               weather\n-  #134 = Class              #199          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #135 = NameAndType        #200:#201     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #136 = Utf8               {\\\"city\\\": \\\"Munich\\\"}\n-  #137 = NameAndType        #202:#201     // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #138 = NameAndType        #203:#204     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #139 = NameAndType        #182:#205     // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #140 = Utf8               {\\\"toolExecutionRequests\\\":[{\\\"name\\\":\\\"weather\\\",\\\"arguments\\\":\\\"{\\\\\\\"city\\\\\\\": \\\\\\\"Munich\\\\\\\"}\\\"}],\\\"type\\\":\\\"AI\\\"}\n-  #141 = Utf8               12345\n-  #142 = Utf8               sunny\n-  #143 = Class              #206          // dev/langchain4j/data/message/ToolExecutionResultMessage\n-  #144 = NameAndType        #182:#207     // from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #145 = Utf8               {\\\"id\\\":\\\"12345\\\",\\\"toolName\\\":\\\"weather\\\",\\\"text\\\":\\\"sunny\\\",\\\"type\\\":\\\"TOOL_EXECUTION_RESULT\\\"}\n-  #146 = Class              #208          // java/util/stream/Stream\n-  #147 = NameAndType        #184:#209     // of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-  #148 = Utf8               {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}\n-  #149 = Class              #210          // java/util/Collections\n-  #150 = NameAndType        #211:#212     // emptyList:()Ljava/util/List;\n-  #151 = NameAndType        #213:#214     // messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n-  #152 = NameAndType        #215:#216     // messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n-  #153 = NameAndType        #169:#217     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #154 = Class              #218          // org/assertj/core/api/ListAssert\n-  #155 = NameAndType        #219:#60      // isEmpty:()V\n-  #156 = NameAndType        #220:#187     // userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #157 = NameAndType        #221:#222     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #158 = Utf8               [{\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}]\n-  #159 = NameAndType        #179:#170     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #160 = NameAndType        #179:#223     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-  #161 = Utf8               [{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}]\n-  #162 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #163 = NameAndType        #224:#225     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #164 = Utf8               dev/langchain4j/data/message/ChatMessageSerializerTest\n-  #165 = Utf8               dev/langchain4j/data/message/ChatMessageSerializer\n-  #166 = Utf8               messageToJson\n-  #167 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n-  #168 = Utf8               org/assertj/core/api/Assertions\n-  #169 = Utf8               assertThat\n-  #170 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #171 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #172 = Utf8               isEqualToIgnoringWhitespace\n-  #173 = Utf8               (Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-  #174 = Utf8               dev/langchain4j/data/message/ChatMessageDeserializer\n-  #175 = Utf8               messageFromJson\n-  #176 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n-  #177 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #178 = Utf8               org/assertj/core/api/ObjectAssert\n-  #179 = Utf8               isEqualTo\n-  #180 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #181 = Utf8               dev/langchain4j/data/message/SystemMessage\n-  #182 = Utf8               from\n-  #183 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #184 = Utf8               of\n-  #185 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #186 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #187 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #188 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #189 = Utf8               dev/langchain4j/data/message/ImageContent\n-  #190 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #191 = Utf8               ([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #192 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #193 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #194 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #195 = Utf8               builder\n-  #196 = Utf8               Builder\n-  #197 = Utf8               InnerClasses\n-  #198 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #199 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #200 = Utf8               name\n-  #201 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #202 = Utf8               arguments\n-  #203 = Utf8               build\n-  #204 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #205 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #206 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n-  #207 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #208 = Utf8               java/util/stream/Stream\n-  #209 = Utf8               ([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-  #210 = Utf8               java/util/Collections\n-  #211 = Utf8               emptyList\n-  #212 = Utf8               ()Ljava/util/List;\n-  #213 = Utf8               messagesToJson\n-  #214 = Utf8               (Ljava/util/List;)Ljava/lang/String;\n-  #215 = Utf8               messagesFromJson\n-  #216 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n-  #217 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #218 = Utf8               org/assertj/core/api/ListAssert\n-  #219 = Utf8               isEmpty\n-  #220 = Utf8               userMessage\n-  #221 = Utf8               singletonList\n-  #222 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #223 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-  #224 = Utf8               containsExactly\n-  #225 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/data/message/ChatMessageSerializer.messageToJson:(Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n+    #8 = Class              #10           // dev/langchain4j/data/message/ChatMessageSerializer\n+    #9 = NameAndType        #11:#12       // messageToJson:(Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n+   #10 = Utf8               dev/langchain4j/data/message/ChatMessageSerializer\n+   #11 = Utf8               messageToJson\n+   #12 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n+   #13 = Methodref          #14.#15       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #14 = Class              #16           // org/assertj/core/api/Assertions\n+   #15 = NameAndType        #17:#18       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #16 = Utf8               org/assertj/core/api/Assertions\n+   #17 = Utf8               assertThat\n+   #18 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/AbstractStringAssert.isEqualToIgnoringWhitespace:(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+   #20 = Class              #22           // org/assertj/core/api/AbstractStringAssert\n+   #21 = NameAndType        #23:#24       // isEqualToIgnoringWhitespace:(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+   #22 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #23 = Utf8               isEqualToIgnoringWhitespace\n+   #24 = Utf8               (Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+   #25 = Methodref          #26.#27       // dev/langchain4j/data/message/ChatMessageDeserializer.messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n+   #26 = Class              #28           // dev/langchain4j/data/message/ChatMessageDeserializer\n+   #27 = NameAndType        #29:#30       // messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n+   #28 = Utf8               dev/langchain4j/data/message/ChatMessageDeserializer\n+   #29 = Utf8               messageFromJson\n+   #30 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n+   #31 = Methodref          #14.#32       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #32 = NameAndType        #17:#33       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #33 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #34 = Methodref          #35.#36       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #35 = Class              #37           // org/assertj/core/api/ObjectAssert\n+   #36 = NameAndType        #38:#39       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #37 = Utf8               org/assertj/core/api/ObjectAssert\n+   #38 = Utf8               isEqualTo\n+   #39 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #40 = Class              #41           // org/junit/jupiter/params/provider/Arguments\n+   #41 = Utf8               org/junit/jupiter/params/provider/Arguments\n+   #42 = String             #43           // hello\n+   #43 = Utf8               hello\n+   #44 = Methodref          #45.#46       // dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #45 = Class              #47           // dev/langchain4j/data/message/SystemMessage\n+   #46 = NameAndType        #48:#49       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #47 = Utf8               dev/langchain4j/data/message/SystemMessage\n+   #48 = Utf8               from\n+   #49 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #50 = String             #51           // {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"SYSTEM\\\"}\n+   #51 = Utf8               {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"SYSTEM\\\"}\n+   #52 = InterfaceMethodref #40.#53       // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+   #53 = NameAndType        #54:#55       // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+   #54 = Utf8               of\n+   #55 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+   #56 = Methodref          #57.#58       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #57 = Class              #59           // dev/langchain4j/data/message/UserMessage\n+   #58 = NameAndType        #48:#60       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #59 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #60 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #61 = String             #62           // {\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #62 = Utf8               {\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #63 = String             #64           // Klaus\n+   #64 = Utf8               Klaus\n+   #65 = Methodref          #57.#66       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #66 = NameAndType        #48:#67       // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #67 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #68 = String             #69           // {\\\"name\\\":\\\"Klaus\\\",\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #69 = Utf8               {\\\"name\\\":\\\"Klaus\\\",\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #70 = Class              #71           // dev/langchain4j/data/message/Content\n+   #71 = Utf8               dev/langchain4j/data/message/Content\n+   #72 = String             #73           // http://image.url\n+   #73 = Utf8               http://image.url\n+   #74 = Methodref          #75.#76       // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #75 = Class              #77           // dev/langchain4j/data/message/ImageContent\n+   #76 = NameAndType        #48:#78       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #77 = Utf8               dev/langchain4j/data/message/ImageContent\n+   #78 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #79 = Methodref          #57.#80       // dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+   #80 = NameAndType        #48:#81       // from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+   #81 = Utf8               ([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+   #82 = String             #83           // {\\\"contents\\\":[{\\\"image\\\":{\\\"url\\\":\\\"http://image.url\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #83 = Utf8               {\\\"contents\\\":[{\\\"image\\\":{\\\"url\\\":\\\"http://image.url\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #84 = String             #85           // aGVsbG8=\n+   #85 = Utf8               aGVsbG8=\n+   #86 = String             #87           // image/png\n+   #87 = Utf8               image/png\n+   #88 = Methodref          #75.#89       // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #89 = NameAndType        #48:#90       // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #90 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #91 = String             #92           // {\\\"contents\\\":[{\\\"image\\\":{\\\"base64Data\\\":\\\"aGVsbG8\\\\u003d\\\",\\\"mimeType\\\":\\\"image/png\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #92 = Utf8               {\\\"contents\\\":[{\\\"image\\\":{\\\"base64Data\\\":\\\"aGVsbG8\\\\u003d\\\",\\\"mimeType\\\":\\\"image/png\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n+   #93 = Methodref          #94.#95       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #94 = Class              #96           // dev/langchain4j/data/message/AiMessage\n+   #95 = NameAndType        #48:#97       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #96 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #97 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #98 = String             #99           // {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"AI\\\"}\n+   #99 = Utf8               {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"AI\\\"}\n+  #100 = Class              #101          // dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #101 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #102 = Methodref          #100.#103     // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #103 = NameAndType        #104:#105     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #104 = Utf8               builder\n+  #105 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #106 = String             #107          // weather\n+  #107 = Utf8               weather\n+  #108 = Methodref          #109.#110     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #109 = Class              #111          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+  #110 = NameAndType        #112:#113     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #111 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+  #112 = Utf8               name\n+  #113 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #114 = String             #115          // {\\\"city\\\": \\\"Munich\\\"}\n+  #115 = Utf8               {\\\"city\\\": \\\"Munich\\\"}\n+  #116 = Methodref          #109.#117     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #117 = NameAndType        #118:#113     // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #118 = Utf8               arguments\n+  #119 = Methodref          #109.#120     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #120 = NameAndType        #121:#122     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #121 = Utf8               build\n+  #122 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #123 = Methodref          #94.#124      // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #124 = NameAndType        #48:#125      // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #125 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #126 = String             #127          // {\\\"toolExecutionRequests\\\":[{\\\"name\\\":\\\"weather\\\",\\\"arguments\\\":\\\"{\\\\\\\"city\\\\\\\": \\\\\\\"Munich\\\\\\\"}\\\"}],\\\"type\\\":\\\"AI\\\"}\n+  #127 = Utf8               {\\\"toolExecutionRequests\\\":[{\\\"name\\\":\\\"weather\\\",\\\"arguments\\\":\\\"{\\\\\\\"city\\\\\\\": \\\\\\\"Munich\\\\\\\"}\\\"}],\\\"type\\\":\\\"AI\\\"}\n+  #128 = String             #129          // 12345\n+  #129 = Utf8               12345\n+  #130 = String             #131          // sunny\n+  #131 = Utf8               sunny\n+  #132 = Methodref          #133.#134     // dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #133 = Class              #135          // dev/langchain4j/data/message/ToolExecutionResultMessage\n+  #134 = NameAndType        #48:#136      // from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #135 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n+  #136 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #137 = String             #138          // {\\\"id\\\":\\\"12345\\\",\\\"toolName\\\":\\\"weather\\\",\\\"text\\\":\\\"sunny\\\",\\\"type\\\":\\\"TOOL_EXECUTION_RESULT\\\"}\n+  #138 = Utf8               {\\\"id\\\":\\\"12345\\\",\\\"toolName\\\":\\\"weather\\\",\\\"text\\\":\\\"sunny\\\",\\\"type\\\":\\\"TOOL_EXECUTION_RESULT\\\"}\n+  #139 = InterfaceMethodref #140.#141     // java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+  #140 = Class              #142          // java/util/stream/Stream\n+  #141 = NameAndType        #54:#143      // of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+  #142 = Utf8               java/util/stream/Stream\n+  #143 = Utf8               ([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+  #144 = String             #145          // {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}\n+  #145 = Utf8               {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}\n+  #146 = Methodref          #147.#148     // java/util/Collections.emptyList:()Ljava/util/List;\n+  #147 = Class              #149          // java/util/Collections\n+  #148 = NameAndType        #150:#151     // emptyList:()Ljava/util/List;\n+  #149 = Utf8               java/util/Collections\n+  #150 = Utf8               emptyList\n+  #151 = Utf8               ()Ljava/util/List;\n+  #152 = Methodref          #8.#153       // dev/langchain4j/data/message/ChatMessageSerializer.messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n+  #153 = NameAndType        #154:#155     // messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n+  #154 = Utf8               messagesToJson\n+  #155 = Utf8               (Ljava/util/List;)Ljava/lang/String;\n+  #156 = Methodref          #26.#157      // dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n+  #157 = NameAndType        #158:#159     // messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n+  #158 = Utf8               messagesFromJson\n+  #159 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n+  #160 = Methodref          #14.#161      // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #161 = NameAndType        #17:#162      // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #162 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #163 = Methodref          #164.#165     // org/assertj/core/api/ListAssert.isEmpty:()V\n+  #164 = Class              #166          // org/assertj/core/api/ListAssert\n+  #165 = NameAndType        #167:#6       // isEmpty:()V\n+  #166 = Utf8               org/assertj/core/api/ListAssert\n+  #167 = Utf8               isEmpty\n+  #168 = Methodref          #57.#169      // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #169 = NameAndType        #170:#60      // userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #170 = Utf8               userMessage\n+  #171 = Methodref          #147.#172     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #172 = NameAndType        #173:#174     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #173 = Utf8               singletonList\n+  #174 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #175 = String             #176          // [{\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}]\n+  #176 = Utf8               [{\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}]\n+  #177 = Methodref          #20.#178      // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #178 = NameAndType        #38:#18       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #179 = Methodref          #164.#180     // org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+  #180 = NameAndType        #38:#181      // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+  #181 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+  #182 = String             #183          // [{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}]\n+  #183 = Utf8               [{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}]\n+  #184 = Class              #185          // dev/langchain4j/data/message/ChatMessage\n+  #185 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #186 = Methodref          #164.#187     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #187 = NameAndType        #188:#189     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #188 = Utf8               containsExactly\n+  #189 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #190 = Class              #191          // dev/langchain4j/data/message/ChatMessageSerializerTest\n+  #191 = Utf8               dev/langchain4j/data/message/ChatMessageSerializerTest\n+  #192 = Utf8               Code\n+  #193 = Utf8               LineNumberTable\n+  #194 = Utf8               LocalVariableTable\n+  #195 = Utf8               this\n+  #196 = Utf8               Ldev/langchain4j/data/message/ChatMessageSerializerTest;\n+  #197 = Utf8               should_serialize_and_deserialize_chat_message\n+  #198 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;Ljava/lang/String;)V\n+  #199 = Utf8               message\n+  #200 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #201 = Utf8               expectedJson\n+  #202 = Utf8               Ljava/lang/String;\n+  #203 = Utf8               json\n+  #204 = Utf8               deserializedMessage\n+  #205 = Utf8               RuntimeVisibleAnnotations\n+  #206 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #207 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n+  #208 = Utf8               ()Ljava/util/stream/Stream;\n+  #209 = Utf8               Signature\n+  #210 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+  #211 = Utf8               should_deserialize_user_message_in_old_schema\n+  #212 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #213 = Utf8               should_serialize_and_deserialize_empty_list\n+  #214 = Utf8               messages\n+  #215 = Utf8               Ljava/util/List;\n+  #216 = Utf8               deserializedMessages\n+  #217 = Utf8               LocalVariableTypeTable\n+  #218 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #219 = Utf8               should_deserialize_null_as_empty_list\n+  #220 = Utf8               should_serialize_and_deserialize_list_with_one_message\n+  #221 = Utf8               should_serialize_and_deserialize_list_with_one_message_in_old_schema\n+  #222 = Utf8               SourceFile\n+  #223 = Utf8               ChatMessageSerializerTest.java\n+  #224 = Utf8               InnerClasses\n+  #225 = Utf8               Builder\n {\n   dev.langchain4j.data.message.ChatMessageSerializerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -250,28 +250,28 @@\n \n   void should_serialize_and_deserialize_chat_message(dev.langchain4j.data.message.ChatMessage, java.lang.String);\n     descriptor: (Ldev/langchain4j/data/message/ChatMessage;Ljava/lang/String;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=5, args_size=3\n          0: aload_1\n-         1: invokestatic  #2                  // Method dev/langchain4j/data/message/ChatMessageSerializer.messageToJson:(Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n+         1: invokestatic  #7                  // Method dev/langchain4j/data/message/ChatMessageSerializer.messageToJson:(Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n          4: astore_3\n          5: aload_3\n-         6: invokestatic  #3                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         6: invokestatic  #13                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n          9: aload_2\n-        10: invokevirtual #4                  // Method org/assertj/core/api/AbstractStringAssert.isEqualToIgnoringWhitespace:(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+        10: invokevirtual #19                 // Method org/assertj/core/api/AbstractStringAssert.isEqualToIgnoringWhitespace:(Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         13: pop\n         14: aload_3\n-        15: invokestatic  #5                  // Method dev/langchain4j/data/message/ChatMessageDeserializer.messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n+        15: invokestatic  #25                 // Method dev/langchain4j/data/message/ChatMessageDeserializer.messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n         18: astore        4\n         20: aload         4\n-        22: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        22: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         25: aload_1\n-        26: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        26: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         29: pop\n         30: return\n       LineNumberTable:\n         line 26: 0\n         line 27: 5\n         line 29: 14\n         line 30: 20\n@@ -280,173 +280,173 @@\n         Start  Length  Slot  Name   Signature\n             0      31     0  this   Ldev/langchain4j/data/message/ChatMessageSerializerTest;\n             0      31     1 message   Ldev/langchain4j/data/message/ChatMessage;\n             0      31     2 expectedJson   Ljava/lang/String;\n             5      26     3  json   Ljava/lang/String;\n            20      11     4 deserializedMessage   Ldev/langchain4j/data/message/ChatMessage;\n     RuntimeVisibleAnnotations:\n-      0: #75()\n+      0: #206()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #76()\n+      1: #207()\n         org.junit.jupiter.params.provider.MethodSource\n \n   static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> should_serialize_and_deserialize_chat_message();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=11, locals=0, args_size=0\n          0: bipush        8\n-         2: anewarray     #8                  // class org/junit/jupiter/params/provider/Arguments\n+         2: anewarray     #40                 // class org/junit/jupiter/params/provider/Arguments\n          5: dup\n          6: iconst_0\n          7: iconst_2\n-         8: anewarray     #9                  // class java/lang/Object\n+         8: anewarray     #2                  // class java/lang/Object\n         11: dup\n         12: iconst_0\n-        13: ldc           #10                 // String hello\n-        15: invokestatic  #11                 // Method dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+        13: ldc           #42                 // String hello\n+        15: invokestatic  #44                 // Method dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n         18: aastore\n         19: dup\n         20: iconst_1\n-        21: ldc           #12                 // String {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"SYSTEM\\\"}\n+        21: ldc           #50                 // String {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"SYSTEM\\\"}\n         23: aastore\n-        24: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        24: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         27: aastore\n         28: dup\n         29: iconst_1\n         30: iconst_2\n-        31: anewarray     #9                  // class java/lang/Object\n+        31: anewarray     #2                  // class java/lang/Object\n         34: dup\n         35: iconst_0\n-        36: ldc           #10                 // String hello\n-        38: invokestatic  #14                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        36: ldc           #42                 // String hello\n+        38: invokestatic  #56                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         41: aastore\n         42: dup\n         43: iconst_1\n-        44: ldc           #15                 // String {\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n+        44: ldc           #61                 // String {\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n         46: aastore\n-        47: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        47: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         50: aastore\n         51: dup\n         52: iconst_2\n         53: iconst_2\n-        54: anewarray     #9                  // class java/lang/Object\n+        54: anewarray     #2                  // class java/lang/Object\n         57: dup\n         58: iconst_0\n-        59: ldc           #16                 // String Klaus\n-        61: ldc           #10                 // String hello\n-        63: invokestatic  #17                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        59: ldc           #63                 // String Klaus\n+        61: ldc           #42                 // String hello\n+        63: invokestatic  #65                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         66: aastore\n         67: dup\n         68: iconst_1\n-        69: ldc           #18                 // String {\\\"name\\\":\\\"Klaus\\\",\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n+        69: ldc           #68                 // String {\\\"name\\\":\\\"Klaus\\\",\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}\n         71: aastore\n-        72: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        72: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         75: aastore\n         76: dup\n         77: iconst_3\n         78: iconst_2\n-        79: anewarray     #9                  // class java/lang/Object\n+        79: anewarray     #2                  // class java/lang/Object\n         82: dup\n         83: iconst_0\n         84: iconst_1\n-        85: anewarray     #19                 // class dev/langchain4j/data/message/Content\n+        85: anewarray     #70                 // class dev/langchain4j/data/message/Content\n         88: dup\n         89: iconst_0\n-        90: ldc           #20                 // String http://image.url\n-        92: invokestatic  #21                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+        90: ldc           #72                 // String http://image.url\n+        92: invokestatic  #74                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n         95: aastore\n-        96: invokestatic  #22                 // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+        96: invokestatic  #79                 // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n         99: aastore\n        100: dup\n        101: iconst_1\n-       102: ldc           #23                 // String {\\\"contents\\\":[{\\\"image\\\":{\\\"url\\\":\\\"http://image.url\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n+       102: ldc           #82                 // String {\\\"contents\\\":[{\\\"image\\\":{\\\"url\\\":\\\"http://image.url\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n        104: aastore\n-       105: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       105: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n        108: aastore\n        109: dup\n        110: iconst_4\n        111: iconst_2\n-       112: anewarray     #9                  // class java/lang/Object\n+       112: anewarray     #2                  // class java/lang/Object\n        115: dup\n        116: iconst_0\n        117: iconst_1\n-       118: anewarray     #19                 // class dev/langchain4j/data/message/Content\n+       118: anewarray     #70                 // class dev/langchain4j/data/message/Content\n        121: dup\n        122: iconst_0\n-       123: ldc           #24                 // String aGVsbG8=\n-       125: ldc           #25                 // String image/png\n-       127: invokestatic  #26                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+       123: ldc           #84                 // String aGVsbG8=\n+       125: ldc           #86                 // String image/png\n+       127: invokestatic  #88                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n        130: aastore\n-       131: invokestatic  #22                 // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       131: invokestatic  #79                 // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n        134: aastore\n        135: dup\n        136: iconst_1\n-       137: ldc           #27                 // String {\\\"contents\\\":[{\\\"image\\\":{\\\"base64Data\\\":\\\"aGVsbG8\\\\u003d\\\",\\\"mimeType\\\":\\\"image/png\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n+       137: ldc           #91                 // String {\\\"contents\\\":[{\\\"image\\\":{\\\"base64Data\\\":\\\"aGVsbG8\\\\u003d\\\",\\\"mimeType\\\":\\\"image/png\\\"},\\\"detailLevel\\\":\\\"LOW\\\",\\\"type\\\":\\\"IMAGE\\\"}],\\\"type\\\":\\\"USER\\\"}\n        139: aastore\n-       140: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       140: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n        143: aastore\n        144: dup\n        145: iconst_5\n        146: iconst_2\n-       147: anewarray     #9                  // class java/lang/Object\n+       147: anewarray     #2                  // class java/lang/Object\n        150: dup\n        151: iconst_0\n-       152: ldc           #10                 // String hello\n-       154: invokestatic  #28                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+       152: ldc           #42                 // String hello\n+       154: invokestatic  #93                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n        157: aastore\n        158: dup\n        159: iconst_1\n-       160: ldc           #29                 // String {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"AI\\\"}\n+       160: ldc           #98                 // String {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"AI\\\"}\n        162: aastore\n-       163: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       163: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n        166: aastore\n        167: dup\n        168: bipush        6\n        170: iconst_2\n-       171: anewarray     #9                  // class java/lang/Object\n+       171: anewarray     #2                  // class java/lang/Object\n        174: dup\n        175: iconst_0\n        176: iconst_1\n-       177: anewarray     #30                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+       177: anewarray     #100                // class dev/langchain4j/agent/tool/ToolExecutionRequest\n        180: dup\n        181: iconst_0\n-       182: invokestatic  #31                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       185: ldc           #32                 // String weather\n-       187: invokevirtual #33                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       190: ldc           #34                 // String {\\\"city\\\": \\\"Munich\\\"}\n-       192: invokevirtual #35                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-       195: invokevirtual #36                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+       182: invokestatic  #102                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       185: ldc           #106                // String weather\n+       187: invokevirtual #108                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       190: ldc           #114                // String {\\\"city\\\": \\\"Munich\\\"}\n+       192: invokevirtual #116                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+       195: invokevirtual #119                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        198: aastore\n-       199: invokestatic  #37                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+       199: invokestatic  #123                // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n        202: aastore\n        203: dup\n        204: iconst_1\n-       205: ldc           #38                 // String {\\\"toolExecutionRequests\\\":[{\\\"name\\\":\\\"weather\\\",\\\"arguments\\\":\\\"{\\\\\\\"city\\\\\\\": \\\\\\\"Munich\\\\\\\"}\\\"}],\\\"type\\\":\\\"AI\\\"}\n+       205: ldc           #126                // String {\\\"toolExecutionRequests\\\":[{\\\"name\\\":\\\"weather\\\",\\\"arguments\\\":\\\"{\\\\\\\"city\\\\\\\": \\\\\\\"Munich\\\\\\\"}\\\"}],\\\"type\\\":\\\"AI\\\"}\n        207: aastore\n-       208: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       208: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n        211: aastore\n        212: dup\n        213: bipush        7\n        215: iconst_2\n-       216: anewarray     #9                  // class java/lang/Object\n+       216: anewarray     #2                  // class java/lang/Object\n        219: dup\n        220: iconst_0\n-       221: ldc           #39                 // String 12345\n-       223: ldc           #32                 // String weather\n-       225: ldc           #40                 // String sunny\n-       227: invokestatic  #41                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+       221: ldc           #128                // String 12345\n+       223: ldc           #106                // String weather\n+       225: ldc           #130                // String sunny\n+       227: invokestatic  #132                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n        230: aastore\n        231: dup\n        232: iconst_1\n-       233: ldc           #42                 // String {\\\"id\\\":\\\"12345\\\",\\\"toolName\\\":\\\"weather\\\",\\\"text\\\":\\\"sunny\\\",\\\"type\\\":\\\"TOOL_EXECUTION_RESULT\\\"}\n+       233: ldc           #137                // String {\\\"id\\\":\\\"12345\\\",\\\"toolName\\\":\\\"weather\\\",\\\"text\\\":\\\"sunny\\\",\\\"type\\\":\\\"TOOL_EXECUTION_RESULT\\\"}\n        235: aastore\n-       236: invokestatic  #13                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       236: invokestatic  #52                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n        239: aastore\n-       240: invokestatic  #43                 // InterfaceMethod java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+       240: invokestatic  #139                // InterfaceMethod java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n        243: areturn\n       LineNumberTable:\n         line 34: 0\n         line 36: 15\n         line 35: 24\n         line 40: 38\n         line 39: 47\n@@ -463,63 +463,63 @@\n         line 62: 192\n         line 63: 195\n         line 60: 199\n         line 59: 208\n         line 67: 227\n         line 66: 236\n         line 34: 240\n-    Signature: #79                          // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #210                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n \n   void should_deserialize_user_message_in_old_schema();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #44                 // String {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}\n+         0: ldc           #144                // String {\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}\n          2: astore_1\n          3: aload_1\n-         4: invokestatic  #5                  // Method dev/langchain4j/data/message/ChatMessageDeserializer.messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n+         4: invokestatic  #25                 // Method dev/langchain4j/data/message/ChatMessageDeserializer.messageFromJson:(Ljava/lang/String;)Ldev/langchain4j/data/message/ChatMessage;\n          7: astore_2\n          8: aload_2\n-         9: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        12: ldc           #10                 // String hello\n-        14: invokestatic  #14                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-        17: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         9: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        12: ldc           #42                 // String hello\n+        14: invokestatic  #56                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        17: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         20: pop\n         21: return\n       LineNumberTable:\n         line 76: 0\n         line 78: 3\n         line 80: 8\n         line 81: 21\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      22     0  this   Ldev/langchain4j/data/message/ChatMessageSerializerTest;\n             3      19     1  json   Ljava/lang/String;\n             8      14     2 deserializedMessage   Ldev/langchain4j/data/message/ChatMessage;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #212()\n         org.junit.jupiter.api.Test\n \n   void should_serialize_and_deserialize_empty_list();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=4, args_size=1\n-         0: invokestatic  #45                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n+         0: invokestatic  #146                // Method java/util/Collections.emptyList:()Ljava/util/List;\n          3: astore_1\n          4: aload_1\n-         5: invokestatic  #46                 // Method dev/langchain4j/data/message/ChatMessageSerializer.messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n+         5: invokestatic  #152                // Method dev/langchain4j/data/message/ChatMessageSerializer.messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n          8: astore_2\n          9: aload_2\n-        10: invokestatic  #47                 // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n+        10: invokestatic  #156                // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n         13: astore_3\n         14: aload_3\n-        15: invokestatic  #48                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        18: invokevirtual #49                 // Method org/assertj/core/api/ListAssert.isEmpty:()V\n+        15: invokestatic  #160                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        18: invokevirtual #163                // Method org/assertj/core/api/ListAssert.isEmpty:()V\n         21: return\n       LineNumberTable:\n         line 86: 0\n         line 88: 4\n         line 89: 9\n         line 91: 14\n         line 92: 21\n@@ -530,61 +530,61 @@\n             9      13     2  json   Ljava/lang/String;\n            14       8     3 deserializedMessages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             4      18     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            14       8     3 deserializedMessages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #212()\n         org.junit.jupiter.api.Test\n \n   void should_deserialize_null_as_empty_list();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aconst_null\n-         1: invokestatic  #47                 // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n-         4: invokestatic  #48                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-         7: invokevirtual #49                 // Method org/assertj/core/api/ListAssert.isEmpty:()V\n+         1: invokestatic  #156                // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n+         4: invokestatic  #160                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+         7: invokevirtual #163                // Method org/assertj/core/api/ListAssert.isEmpty:()V\n         10: return\n       LineNumberTable:\n         line 96: 0\n         line 97: 10\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0  this   Ldev/langchain4j/data/message/ChatMessageSerializerTest;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #212()\n         org.junit.jupiter.api.Test\n \n   void should_serialize_and_deserialize_list_with_one_message();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=4, args_size=1\n-         0: ldc           #10                 // String hello\n-         2: invokestatic  #50                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-         5: invokestatic  #51                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         0: ldc           #42                 // String hello\n+         2: invokestatic  #168                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         5: invokestatic  #171                // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n          8: astore_1\n          9: aload_1\n-        10: invokestatic  #46                 // Method dev/langchain4j/data/message/ChatMessageSerializer.messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n+        10: invokestatic  #152                // Method dev/langchain4j/data/message/ChatMessageSerializer.messagesToJson:(Ljava/util/List;)Ljava/lang/String;\n         13: astore_2\n         14: aload_2\n-        15: invokestatic  #3                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        18: ldc           #52                 // String [{\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}]\n-        20: invokevirtual #53                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        15: invokestatic  #13                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        18: ldc           #175                // String [{\\\"contents\\\":[{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"TEXT\\\"}],\\\"type\\\":\\\"USER\\\"}]\n+        20: invokevirtual #177                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         23: pop\n         24: aload_2\n-        25: invokestatic  #47                 // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n+        25: invokestatic  #156                // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n         28: astore_3\n         29: aload_3\n-        30: invokestatic  #48                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        30: invokestatic  #160                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         33: aload_1\n-        34: invokevirtual #54                 // Method org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+        34: invokevirtual #179                // Method org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n         37: pop\n         38: return\n       LineNumberTable:\n         line 102: 0\n         line 104: 9\n         line 105: 14\n         line 107: 24\n@@ -597,37 +597,37 @@\n            14      25     2  json   Ljava/lang/String;\n            29      10     3 deserializedMessages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             9      30     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            29      10     3 deserializedMessages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #212()\n         org.junit.jupiter.api.Test\n \n   void should_serialize_and_deserialize_list_with_one_message_in_old_schema();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=3, args_size=1\n-         0: ldc           #55                 // String [{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}]\n+         0: ldc           #182                // String [{\\\"text\\\":\\\"hello\\\",\\\"type\\\":\\\"USER\\\"}]\n          2: astore_1\n          3: aload_1\n-         4: invokestatic  #47                 // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n+         4: invokestatic  #156                // Method dev/langchain4j/data/message/ChatMessageDeserializer.messagesFromJson:(Ljava/lang/String;)Ljava/util/List;\n          7: astore_2\n          8: aload_2\n-         9: invokestatic  #48                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+         9: invokestatic  #160                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         12: iconst_1\n-        13: anewarray     #56                 // class dev/langchain4j/data/message/ChatMessage\n+        13: anewarray     #184                // class dev/langchain4j/data/message/ChatMessage\n         16: dup\n         17: iconst_0\n-        18: ldc           #10                 // String hello\n-        20: invokestatic  #14                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        18: ldc           #42                 // String hello\n+        20: invokestatic  #56                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         23: aastore\n-        24: invokevirtual #57                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        24: invokevirtual #186                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         27: pop\n         28: return\n       LineNumberTable:\n         line 114: 0\n         line 116: 3\n         line 118: 8\n         line 119: 28\n@@ -636,13 +636,13 @@\n             0      29     0  this   Ldev/langchain4j/data/message/ChatMessageSerializerTest;\n             3      26     1  json   Ljava/lang/String;\n             8      21     2 deserializedMessages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      21     2 deserializedMessages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #212()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ChatMessageSerializerTest.java\"\n InnerClasses:\n-  public static final #196= #134 of #30;  // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static final #225= #109 of #100; // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n"}]}, {"source1": "dev/langchain4j/data/message/ChatMessageTypeTest.class", "source2": "dev/langchain4j/data/message/ChatMessageTypeTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,74 +1,74 @@\n-  SHA-256 checksum 55eabda04f02ac407c8927dcddd2812e45ff27b8568aac072f2b805c3d6cc4d2\n+  SHA-256 checksum 59a008e950b6272fba537d66a97c08b014b4b68aaed9c16c0b8aa12b9ecd7c75\n   Compiled from \"ChatMessageTypeTest.java\"\n class dev.langchain4j.data.message.ChatMessageTypeTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #13                         // dev/langchain4j/data/message/ChatMessageTypeTest\n-  super_class: #14                        // java/lang/Object\n+  this_class: #18                         // dev/langchain4j/data/message/ChatMessageTypeTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 1\n Constant pool:\n-   #1 = Methodref          #14.#28        // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #29.#30        // dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n-   #3 = Methodref          #29.#31        // dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n-   #4 = Methodref          #13.#32        // dev/langchain4j/data/message/ChatMessageTypeTest.assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-   #5 = Class              #33            // dev/langchain4j/data/message/SystemMessage\n-   #6 = Methodref          #34.#35        // org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #7 = Fieldref           #29.#36        // dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n-   #8 = Class              #37            // dev/langchain4j/data/message/UserMessage\n-   #9 = Fieldref           #29.#38        // dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n-  #10 = Class              #39            // dev/langchain4j/data/message/AiMessage\n-  #11 = Fieldref           #29.#40        // dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n-  #12 = Class              #41            // dev/langchain4j/data/message/ToolExecutionResultMessage\n-  #13 = Class              #42            // dev/langchain4j/data/message/ChatMessageTypeTest\n-  #14 = Class              #43            // java/lang/Object\n-  #15 = Class              #44            // org/assertj/core/api/WithAssertions\n-  #16 = Utf8               <init>\n-  #17 = Utf8               ()V\n-  #18 = Utf8               Code\n-  #19 = Utf8               LineNumberTable\n-  #20 = Utf8               LocalVariableTable\n-  #21 = Utf8               this\n-  #22 = Utf8               Ldev/langchain4j/data/message/ChatMessageTypeTest;\n-  #23 = Utf8               test\n-  #24 = Utf8               RuntimeVisibleAnnotations\n-  #25 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #26 = Utf8               SourceFile\n-  #27 = Utf8               ChatMessageTypeTest.java\n-  #28 = NameAndType        #16:#17        // \"<init>\":()V\n-  #29 = Class              #45            // dev/langchain4j/data/message/ChatMessageType\n-  #30 = NameAndType        #46:#47        // SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n-  #31 = NameAndType        #48:#49        // messageClass:()Ljava/lang/Class;\n-  #32 = NameAndType        #50:#51        // assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-  #33 = Utf8               dev/langchain4j/data/message/SystemMessage\n-  #34 = Class              #52            // org/assertj/core/api/ClassAssert\n-  #35 = NameAndType        #53:#54        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #36 = NameAndType        #55:#47        // USER:Ldev/langchain4j/data/message/ChatMessageType;\n-  #37 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #38 = NameAndType        #56:#47        // AI:Ldev/langchain4j/data/message/ChatMessageType;\n-  #39 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #40 = NameAndType        #57:#47        // TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n-  #41 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n-  #42 = Utf8               dev/langchain4j/data/message/ChatMessageTypeTest\n-  #43 = Utf8               java/lang/Object\n-  #44 = Utf8               org/assertj/core/api/WithAssertions\n-  #45 = Utf8               dev/langchain4j/data/message/ChatMessageType\n-  #46 = Utf8               SYSTEM\n-  #47 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n-  #48 = Utf8               messageClass\n-  #49 = Utf8               ()Ljava/lang/Class;\n-  #50 = Utf8               assertThat\n-  #51 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-  #52 = Utf8               org/assertj/core/api/ClassAssert\n-  #53 = Utf8               isEqualTo\n-  #54 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #55 = Utf8               USER\n-  #56 = Utf8               AI\n-  #57 = Utf8               TOOL_EXECUTION_RESULT\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n+   #8 = Class              #10            // dev/langchain4j/data/message/ChatMessageType\n+   #9 = NameAndType        #11:#12        // SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n+  #10 = Utf8               dev/langchain4j/data/message/ChatMessageType\n+  #11 = Utf8               SYSTEM\n+  #12 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n+  #13 = Methodref          #8.#14         // dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n+  #14 = NameAndType        #15:#16        // messageClass:()Ljava/lang/Class;\n+  #15 = Utf8               messageClass\n+  #16 = Utf8               ()Ljava/lang/Class;\n+  #17 = Methodref          #18.#19        // dev/langchain4j/data/message/ChatMessageTypeTest.assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+  #18 = Class              #20            // dev/langchain4j/data/message/ChatMessageTypeTest\n+  #19 = NameAndType        #21:#22        // assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+  #20 = Utf8               dev/langchain4j/data/message/ChatMessageTypeTest\n+  #21 = Utf8               assertThat\n+  #22 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+  #23 = Class              #24            // dev/langchain4j/data/message/SystemMessage\n+  #24 = Utf8               dev/langchain4j/data/message/SystemMessage\n+  #25 = Methodref          #26.#27        // org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #26 = Class              #28            // org/assertj/core/api/ClassAssert\n+  #27 = NameAndType        #29:#30        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #28 = Utf8               org/assertj/core/api/ClassAssert\n+  #29 = Utf8               isEqualTo\n+  #30 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #31 = Fieldref           #8.#32         // dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n+  #32 = NameAndType        #33:#12        // USER:Ldev/langchain4j/data/message/ChatMessageType;\n+  #33 = Utf8               USER\n+  #34 = Class              #35            // dev/langchain4j/data/message/UserMessage\n+  #35 = Utf8               dev/langchain4j/data/message/UserMessage\n+  #36 = Fieldref           #8.#37         // dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n+  #37 = NameAndType        #38:#12        // AI:Ldev/langchain4j/data/message/ChatMessageType;\n+  #38 = Utf8               AI\n+  #39 = Class              #40            // dev/langchain4j/data/message/AiMessage\n+  #40 = Utf8               dev/langchain4j/data/message/AiMessage\n+  #41 = Fieldref           #8.#42         // dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n+  #42 = NameAndType        #43:#12        // TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n+  #43 = Utf8               TOOL_EXECUTION_RESULT\n+  #44 = Class              #45            // dev/langchain4j/data/message/ToolExecutionResultMessage\n+  #45 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n+  #46 = Class              #47            // org/assertj/core/api/WithAssertions\n+  #47 = Utf8               org/assertj/core/api/WithAssertions\n+  #48 = Utf8               Code\n+  #49 = Utf8               LineNumberTable\n+  #50 = Utf8               LocalVariableTable\n+  #51 = Utf8               this\n+  #52 = Utf8               Ldev/langchain4j/data/message/ChatMessageTypeTest;\n+  #53 = Utf8               test\n+  #54 = Utf8               RuntimeVisibleAnnotations\n+  #55 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #56 = Utf8               SourceFile\n+  #57 = Utf8               ChatMessageTypeTest.java\n {\n   dev.langchain4j.data.message.ChatMessageTypeTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -82,50 +82,50 @@\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: getstatic     #2                  // Field dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n-         4: invokevirtual #3                  // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n-         7: invokevirtual #4                  // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-        10: ldc           #5                  // class dev/langchain4j/data/message/SystemMessage\n-        12: invokevirtual #6                  // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         1: getstatic     #7                  // Field dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n+         4: invokevirtual #13                 // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n+         7: invokevirtual #17                 // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+        10: ldc           #23                 // class dev/langchain4j/data/message/SystemMessage\n+        12: invokevirtual #25                 // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         15: pop\n         16: aload_0\n-        17: getstatic     #7                  // Field dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n-        20: invokevirtual #3                  // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n-        23: invokevirtual #4                  // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-        26: ldc           #8                  // class dev/langchain4j/data/message/UserMessage\n-        28: invokevirtual #6                  // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        17: getstatic     #31                 // Field dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n+        20: invokevirtual #13                 // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n+        23: invokevirtual #17                 // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+        26: ldc           #34                 // class dev/langchain4j/data/message/UserMessage\n+        28: invokevirtual #25                 // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         31: pop\n         32: aload_0\n-        33: getstatic     #9                  // Field dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n-        36: invokevirtual #3                  // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n-        39: invokevirtual #4                  // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-        42: ldc           #10                 // class dev/langchain4j/data/message/AiMessage\n-        44: invokevirtual #6                  // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        33: getstatic     #36                 // Field dev/langchain4j/data/message/ChatMessageType.AI:Ldev/langchain4j/data/message/ChatMessageType;\n+        36: invokevirtual #13                 // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n+        39: invokevirtual #17                 // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+        42: ldc           #39                 // class dev/langchain4j/data/message/AiMessage\n+        44: invokevirtual #25                 // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         47: pop\n         48: aload_0\n-        49: getstatic     #11                 // Field dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n-        52: invokevirtual #3                  // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n-        55: invokevirtual #4                  // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n-        58: ldc           #12                 // class dev/langchain4j/data/message/ToolExecutionResultMessage\n-        60: invokevirtual #6                  // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        49: getstatic     #41                 // Field dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n+        52: invokevirtual #13                 // Method dev/langchain4j/data/message/ChatMessageType.messageClass:()Ljava/lang/Class;\n+        55: invokevirtual #17                 // Method assertThat:(Ljava/lang/Class;)Lorg/assertj/core/api/ClassAssert;\n+        58: ldc           #44                 // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+        60: invokevirtual #25                 // Method org/assertj/core/api/ClassAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         63: pop\n         64: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 16\n         line 11: 32\n         line 12: 48\n         line 13: 60\n         line 14: 64\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      65     0  this   Ldev/langchain4j/data/message/ChatMessageTypeTest;\n     RuntimeVisibleAnnotations:\n-      0: #25()\n+      0: #55()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ChatMessageTypeTest.java\"\n"}]}, {"source1": "dev/langchain4j/data/message/ImageContentTest.class", "source2": "dev/langchain4j/data/message/ImageContentTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,203 +1,203 @@\n-  SHA-256 checksum 9c97a98cec44361ad5a02a8852008c74a57ef7d8ba4a9626a944cae7e406ec23\n+  SHA-256 checksum 6b662cd0fde8b98041ab9a153d8c6821c7d9a08942172e1f2637fb054f32638a\n   Compiled from \"ImageContentTest.java\"\n class dev.langchain4j.data.message.ImageContentTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #49                         // dev/langchain4j/data/message/ImageContentTest\n-  super_class: #24                        // java/lang/Object\n+  this_class: #46                         // dev/langchain4j/data/message/ImageContentTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-    #1 = Methodref          #24.#74       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #75.#76       // dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-    #3 = String             #77           // https://example.com/image.png\n-    #4 = Methodref          #78.#79       // java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-    #5 = Methodref          #80.#81       // dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-    #6 = Methodref          #80.#82       // dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n-    #7 = Class              #83           // dev/langchain4j/data/message/ImageContent\n-    #8 = Fieldref           #84.#85       // dev/langchain4j/data/message/ImageContent$DetailLevel.HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-    #9 = Methodref          #7.#86        // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-   #10 = Methodref          #7.#87        // dev/langchain4j/data/message/ImageContent.image:()Ldev/langchain4j/data/image/Image;\n-   #11 = Methodref          #49.#88       // dev/langchain4j/data/message/ImageContentTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #12 = Methodref          #22.#89       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #13 = Methodref          #7.#90        // dev/langchain4j/data/message/ImageContent.detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-   #14 = Methodref          #49.#91       // dev/langchain4j/data/message/ImageContentTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #15 = Methodref          #92.#89       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #16 = Methodref          #7.#93        // dev/langchain4j/data/message/ImageContent.type:()Ldev/langchain4j/data/message/ContentType;\n-   #17 = Fieldref           #94.#95       // dev/langchain4j/data/message/ContentType.IMAGE:Ldev/langchain4j/data/message/ContentType;\n-   #18 = String             #96           // ImageContent { image = Image { url = \\\"https://example.com/image.png\\\", base64Data = null, mimeType = null, revisedPrompt = null } detailLevel = HIGH }\n-   #19 = Methodref          #22.#97       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #20 = Methodref          #7.#98        // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-   #21 = String             #99           // https://example.com/image.jpg\n-   #22 = Class              #100          // org/assertj/core/api/ObjectAssert\n-   #23 = Methodref          #22.#101      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #24 = Class              #102          // java/lang/Object\n-   #25 = Methodref          #22.#103      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Fieldref           #84.#104      // dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-   #27 = Methodref          #7.#105       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;)V\n-   #28 = Methodref          #7.#106       // dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-   #29 = Methodref          #7.#107       // dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n-   #30 = Methodref          #75.#108      // dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-   #31 = Methodref          #7.#109       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;)V\n-   #32 = Methodref          #78.#110      // java/net/URI.toString:()Ljava/lang/String;\n-   #33 = Methodref          #7.#111       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;)V\n-   #34 = Methodref          #7.#112       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-   #35 = Methodref          #7.#113       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-   #36 = Methodref          #7.#114       // dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n-   #37 = Methodref          #7.#115       // dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-   #38 = Methodref          #7.#116       // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-   #39 = String             #117          // ff==\n-   #40 = Methodref          #80.#118      // dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #41 = String             #119          // mimeType\n-   #42 = Methodref          #80.#120      // dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-   #43 = Methodref          #75.#121      // dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n-   #44 = Methodref          #75.#122      // dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-   #45 = Methodref          #7.#123       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-   #46 = Methodref          #7.#124       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-   #47 = Methodref          #7.#125       // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-   #48 = Methodref          #7.#126       // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-   #49 = Class              #127          // dev/langchain4j/data/message/ImageContentTest\n-   #50 = Class              #128          // org/assertj/core/api/WithAssertions\n-   #51 = Utf8               <init>\n-   #52 = Utf8               ()V\n-   #53 = Utf8               Code\n-   #54 = Utf8               LineNumberTable\n-   #55 = Utf8               LocalVariableTable\n-   #56 = Utf8               this\n-   #57 = Utf8               Ldev/langchain4j/data/message/ImageContentTest;\n-   #58 = Utf8               test_methods\n-   #59 = Utf8               urlImage\n-   #60 = Utf8               Ldev/langchain4j/data/image/Image;\n-   #61 = Utf8               imageContent\n-   #62 = Utf8               Ldev/langchain4j/data/message/ImageContent;\n-   #63 = Utf8               RuntimeVisibleAnnotations\n-   #64 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #65 = Utf8               test_equals_hashCode\n-   #66 = Utf8               i1\n-   #67 = Utf8               i2\n-   #68 = Utf8               i3\n-   #69 = Utf8               i4\n-   #70 = Utf8               test_builders\n-   #71 = Utf8               base64Image\n-   #72 = Utf8               SourceFile\n-   #73 = Utf8               ImageContentTest.java\n-   #74 = NameAndType        #51:#52       // \"<init>\":()V\n-   #75 = Class              #129          // dev/langchain4j/data/image/Image\n-   #76 = NameAndType        #130:#133     // builder:()Ldev/langchain4j/data/image/Image$Builder;\n-   #77 = Utf8               https://example.com/image.png\n-   #78 = Class              #134          // java/net/URI\n-   #79 = NameAndType        #135:#136     // create:(Ljava/lang/String;)Ljava/net/URI;\n-   #80 = Class              #137          // dev/langchain4j/data/image/Image$Builder\n-   #81 = NameAndType        #138:#139     // url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-   #82 = NameAndType        #140:#141     // build:()Ldev/langchain4j/data/image/Image;\n-   #83 = Utf8               dev/langchain4j/data/message/ImageContent\n-   #84 = Class              #142          // dev/langchain4j/data/message/ImageContent$DetailLevel\n-   #85 = NameAndType        #144:#145     // HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-   #86 = NameAndType        #51:#146      // \"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-   #87 = NameAndType        #147:#141     // image:()Ldev/langchain4j/data/image/Image;\n-   #88 = NameAndType        #148:#149     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #89 = NameAndType        #150:#151     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #90 = NameAndType        #152:#153     // detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-   #91 = NameAndType        #148:#154     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #92 = Class              #155          // org/assertj/core/api/AbstractComparableAssert\n-   #93 = NameAndType        #156:#157     // type:()Ldev/langchain4j/data/message/ContentType;\n-   #94 = Class              #158          // dev/langchain4j/data/message/ContentType\n-   #95 = NameAndType        #159:#160     // IMAGE:Ldev/langchain4j/data/message/ContentType;\n-   #96 = Utf8               ImageContent { image = Image { url = \\\"https://example.com/image.png\\\", base64Data = null, mimeType = null, revisedPrompt = null } detailLevel = HIGH }\n-   #97 = NameAndType        #161:#162     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #98 = NameAndType        #163:#164     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-   #99 = Utf8               https://example.com/image.jpg\n-  #100 = Utf8               org/assertj/core/api/ObjectAssert\n-  #101 = NameAndType        #165:#151     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #102 = Utf8               java/lang/Object\n-  #103 = NameAndType        #166:#151     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #104 = NameAndType        #167:#145     // LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-  #105 = NameAndType        #51:#168      // \"<init>\":(Ldev/langchain4j/data/image/Image;)V\n-  #106 = NameAndType        #163:#169     // from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #107 = NameAndType        #163:#170     // from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n-  #108 = NameAndType        #138:#171     // url:()Ljava/net/URI;\n-  #109 = NameAndType        #51:#172      // \"<init>\":(Ljava/net/URI;)V\n-  #110 = NameAndType        #173:#174     // toString:()Ljava/lang/String;\n-  #111 = NameAndType        #51:#175      // \"<init>\":(Ljava/lang/String;)V\n-  #112 = NameAndType        #51:#176      // \"<init>\":(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #113 = NameAndType        #51:#177      // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #114 = NameAndType        #163:#178     // from:(Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n-  #115 = NameAndType        #163:#179     // from:(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #116 = NameAndType        #163:#180     // from:(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #117 = Utf8               ff==\n-  #118 = NameAndType        #181:#182     // base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-  #119 = Utf8               mimeType\n-  #120 = NameAndType        #119:#182     // mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-  #121 = NameAndType        #181:#174     // base64Data:()Ljava/lang/String;\n-  #122 = NameAndType        #119:#174     // mimeType:()Ljava/lang/String;\n-  #123 = NameAndType        #51:#183      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-  #124 = NameAndType        #51:#184      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #125 = NameAndType        #163:#185     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #126 = NameAndType        #163:#186     // from:(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #127 = Utf8               dev/langchain4j/data/message/ImageContentTest\n-  #128 = Utf8               org/assertj/core/api/WithAssertions\n-  #129 = Utf8               dev/langchain4j/data/image/Image\n-  #130 = Utf8               builder\n-  #131 = Utf8               Builder\n-  #132 = Utf8               InnerClasses\n-  #133 = Utf8               ()Ldev/langchain4j/data/image/Image$Builder;\n-  #134 = Utf8               java/net/URI\n-  #135 = Utf8               create\n-  #136 = Utf8               (Ljava/lang/String;)Ljava/net/URI;\n-  #137 = Utf8               dev/langchain4j/data/image/Image$Builder\n-  #138 = Utf8               url\n-  #139 = Utf8               (Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-  #140 = Utf8               build\n-  #141 = Utf8               ()Ldev/langchain4j/data/image/Image;\n-  #142 = Utf8               dev/langchain4j/data/message/ImageContent$DetailLevel\n-  #143 = Utf8               DetailLevel\n-  #144 = Utf8               HIGH\n-  #145 = Utf8               Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-  #146 = Utf8               (Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #147 = Utf8               image\n-  #148 = Utf8               assertThat\n-  #149 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #150 = Utf8               isEqualTo\n-  #151 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #152 = Utf8               detailLevel\n-  #153 = Utf8               ()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-  #154 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #155 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #156 = Utf8               type\n-  #157 = Utf8               ()Ldev/langchain4j/data/message/ContentType;\n-  #158 = Utf8               dev/langchain4j/data/message/ContentType\n-  #159 = Utf8               IMAGE\n-  #160 = Utf8               Ldev/langchain4j/data/message/ContentType;\n-  #161 = Utf8               hasToString\n-  #162 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #163 = Utf8               from\n-  #164 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #165 = Utf8               isNotEqualTo\n-  #166 = Utf8               hasSameHashCodeAs\n-  #167 = Utf8               LOW\n-  #168 = Utf8               (Ldev/langchain4j/data/image/Image;)V\n-  #169 = Utf8               (Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #170 = Utf8               (Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n-  #171 = Utf8               ()Ljava/net/URI;\n-  #172 = Utf8               (Ljava/net/URI;)V\n-  #173 = Utf8               toString\n-  #174 = Utf8               ()Ljava/lang/String;\n-  #175 = Utf8               (Ljava/lang/String;)V\n-  #176 = Utf8               (Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #177 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #178 = Utf8               (Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n-  #179 = Utf8               (Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #180 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-  #181 = Utf8               base64Data\n-  #182 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-  #183 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V\n-  #184 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-  #185 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-  #186 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+    #8 = Class              #10           // dev/langchain4j/data/image/Image\n+    #9 = NameAndType        #11:#12       // builder:()Ldev/langchain4j/data/image/Image$Builder;\n+   #10 = Utf8               dev/langchain4j/data/image/Image\n+   #11 = Utf8               builder\n+   #12 = Utf8               ()Ldev/langchain4j/data/image/Image$Builder;\n+   #13 = String             #14           // https://example.com/image.png\n+   #14 = Utf8               https://example.com/image.png\n+   #15 = Methodref          #16.#17       // java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+   #16 = Class              #18           // java/net/URI\n+   #17 = NameAndType        #19:#20       // create:(Ljava/lang/String;)Ljava/net/URI;\n+   #18 = Utf8               java/net/URI\n+   #19 = Utf8               create\n+   #20 = Utf8               (Ljava/lang/String;)Ljava/net/URI;\n+   #21 = Methodref          #22.#23       // dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+   #22 = Class              #24           // dev/langchain4j/data/image/Image$Builder\n+   #23 = NameAndType        #25:#26       // url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+   #24 = Utf8               dev/langchain4j/data/image/Image$Builder\n+   #25 = Utf8               url\n+   #26 = Utf8               (Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+   #27 = Methodref          #22.#28       // dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+   #28 = NameAndType        #29:#30       // build:()Ldev/langchain4j/data/image/Image;\n+   #29 = Utf8               build\n+   #30 = Utf8               ()Ldev/langchain4j/data/image/Image;\n+   #31 = Class              #32           // dev/langchain4j/data/message/ImageContent\n+   #32 = Utf8               dev/langchain4j/data/message/ImageContent\n+   #33 = Fieldref           #34.#35       // dev/langchain4j/data/message/ImageContent$DetailLevel.HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #34 = Class              #36           // dev/langchain4j/data/message/ImageContent$DetailLevel\n+   #35 = NameAndType        #37:#38       // HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #36 = Utf8               dev/langchain4j/data/message/ImageContent$DetailLevel\n+   #37 = Utf8               HIGH\n+   #38 = Utf8               Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #39 = Methodref          #31.#40       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+   #40 = NameAndType        #5:#41        // \"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+   #41 = Utf8               (Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+   #42 = Methodref          #31.#43       // dev/langchain4j/data/message/ImageContent.image:()Ldev/langchain4j/data/image/Image;\n+   #43 = NameAndType        #44:#30       // image:()Ldev/langchain4j/data/image/Image;\n+   #44 = Utf8               image\n+   #45 = Methodref          #46.#47       // dev/langchain4j/data/message/ImageContentTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #46 = Class              #48           // dev/langchain4j/data/message/ImageContentTest\n+   #47 = NameAndType        #49:#50       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #48 = Utf8               dev/langchain4j/data/message/ImageContentTest\n+   #49 = Utf8               assertThat\n+   #50 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #51 = Methodref          #52.#53       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #52 = Class              #54           // org/assertj/core/api/ObjectAssert\n+   #53 = NameAndType        #55:#56       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #54 = Utf8               org/assertj/core/api/ObjectAssert\n+   #55 = Utf8               isEqualTo\n+   #56 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #57 = Methodref          #31.#58       // dev/langchain4j/data/message/ImageContent.detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #58 = NameAndType        #59:#60       // detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #59 = Utf8               detailLevel\n+   #60 = Utf8               ()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #61 = Methodref          #46.#62       // dev/langchain4j/data/message/ImageContentTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #62 = NameAndType        #49:#63       // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #63 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #64 = Methodref          #65.#53       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #65 = Class              #66           // org/assertj/core/api/AbstractComparableAssert\n+   #66 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+   #67 = Methodref          #31.#68       // dev/langchain4j/data/message/ImageContent.type:()Ldev/langchain4j/data/message/ContentType;\n+   #68 = NameAndType        #69:#70       // type:()Ldev/langchain4j/data/message/ContentType;\n+   #69 = Utf8               type\n+   #70 = Utf8               ()Ldev/langchain4j/data/message/ContentType;\n+   #71 = Fieldref           #72.#73       // dev/langchain4j/data/message/ContentType.IMAGE:Ldev/langchain4j/data/message/ContentType;\n+   #72 = Class              #74           // dev/langchain4j/data/message/ContentType\n+   #73 = NameAndType        #75:#76       // IMAGE:Ldev/langchain4j/data/message/ContentType;\n+   #74 = Utf8               dev/langchain4j/data/message/ContentType\n+   #75 = Utf8               IMAGE\n+   #76 = Utf8               Ldev/langchain4j/data/message/ContentType;\n+   #77 = String             #78           // ImageContent { image = Image { url = \\\"https://example.com/image.png\\\", base64Data = null, mimeType = null, revisedPrompt = null } detailLevel = HIGH }\n+   #78 = Utf8               ImageContent { image = Image { url = \\\"https://example.com/image.png\\\", base64Data = null, mimeType = null, revisedPrompt = null } detailLevel = HIGH }\n+   #79 = Methodref          #52.#80       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #80 = NameAndType        #81:#82       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #81 = Utf8               hasToString\n+   #82 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #83 = Methodref          #31.#84       // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #84 = NameAndType        #85:#86       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #85 = Utf8               from\n+   #86 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+   #87 = String             #88           // https://example.com/image.jpg\n+   #88 = Utf8               https://example.com/image.jpg\n+   #89 = Methodref          #52.#90       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #90 = NameAndType        #91:#56       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #91 = Utf8               isNotEqualTo\n+   #92 = Methodref          #52.#93       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #93 = NameAndType        #94:#56       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = Utf8               hasSameHashCodeAs\n+   #95 = Fieldref           #34.#96       // dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #96 = NameAndType        #97:#38       // LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+   #97 = Utf8               LOW\n+   #98 = Methodref          #31.#99       // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;)V\n+   #99 = NameAndType        #5:#100       // \"<init>\":(Ldev/langchain4j/data/image/Image;)V\n+  #100 = Utf8               (Ldev/langchain4j/data/image/Image;)V\n+  #101 = Methodref          #31.#102      // dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #102 = NameAndType        #85:#103      // from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #103 = Utf8               (Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #104 = Methodref          #31.#105      // dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n+  #105 = NameAndType        #85:#106      // from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n+  #106 = Utf8               (Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n+  #107 = Methodref          #8.#108       // dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+  #108 = NameAndType        #25:#109      // url:()Ljava/net/URI;\n+  #109 = Utf8               ()Ljava/net/URI;\n+  #110 = Methodref          #31.#111      // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;)V\n+  #111 = NameAndType        #5:#112       // \"<init>\":(Ljava/net/URI;)V\n+  #112 = Utf8               (Ljava/net/URI;)V\n+  #113 = Methodref          #16.#114      // java/net/URI.toString:()Ljava/lang/String;\n+  #114 = NameAndType        #115:#116     // toString:()Ljava/lang/String;\n+  #115 = Utf8               toString\n+  #116 = Utf8               ()Ljava/lang/String;\n+  #117 = Methodref          #31.#118      // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;)V\n+  #118 = NameAndType        #5:#119       // \"<init>\":(Ljava/lang/String;)V\n+  #119 = Utf8               (Ljava/lang/String;)V\n+  #120 = Methodref          #31.#121      // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #121 = NameAndType        #5:#122       // \"<init>\":(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #122 = Utf8               (Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #123 = Methodref          #31.#124      // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #124 = NameAndType        #5:#125       // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #125 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #126 = Methodref          #31.#127      // dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n+  #127 = NameAndType        #85:#128      // from:(Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n+  #128 = Utf8               (Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n+  #129 = Methodref          #31.#130      // dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #130 = NameAndType        #85:#131      // from:(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #131 = Utf8               (Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #132 = Methodref          #31.#133      // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #133 = NameAndType        #85:#134      // from:(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #134 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #135 = String             #136          // ff==\n+  #136 = Utf8               ff==\n+  #137 = Methodref          #22.#138      // dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+  #138 = NameAndType        #139:#140     // base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+  #139 = Utf8               base64Data\n+  #140 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+  #141 = String             #142          // mimeType\n+  #142 = Utf8               mimeType\n+  #143 = Methodref          #22.#144      // dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+  #144 = NameAndType        #142:#140     // mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+  #145 = Methodref          #8.#146       // dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+  #146 = NameAndType        #139:#116     // base64Data:()Ljava/lang/String;\n+  #147 = Methodref          #8.#148       // dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+  #148 = NameAndType        #142:#116     // mimeType:()Ljava/lang/String;\n+  #149 = Methodref          #31.#150      // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+  #150 = NameAndType        #5:#151       // \"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+  #151 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V\n+  #152 = Methodref          #31.#153      // dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #153 = NameAndType        #5:#154       // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #154 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+  #155 = Methodref          #31.#156      // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+  #156 = NameAndType        #85:#157      // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+  #157 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+  #158 = Methodref          #31.#159      // dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #159 = NameAndType        #85:#160      // from:(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #160 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+  #161 = Class              #162          // org/assertj/core/api/WithAssertions\n+  #162 = Utf8               org/assertj/core/api/WithAssertions\n+  #163 = Utf8               Code\n+  #164 = Utf8               LineNumberTable\n+  #165 = Utf8               LocalVariableTable\n+  #166 = Utf8               this\n+  #167 = Utf8               Ldev/langchain4j/data/message/ImageContentTest;\n+  #168 = Utf8               test_methods\n+  #169 = Utf8               urlImage\n+  #170 = Utf8               Ldev/langchain4j/data/image/Image;\n+  #171 = Utf8               imageContent\n+  #172 = Utf8               Ldev/langchain4j/data/message/ImageContent;\n+  #173 = Utf8               RuntimeVisibleAnnotations\n+  #174 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #175 = Utf8               test_equals_hashCode\n+  #176 = Utf8               i1\n+  #177 = Utf8               i2\n+  #178 = Utf8               i3\n+  #179 = Utf8               i4\n+  #180 = Utf8               test_builders\n+  #181 = Utf8               base64Image\n+  #182 = Utf8               SourceFile\n+  #183 = Utf8               ImageContentTest.java\n+  #184 = Utf8               InnerClasses\n+  #185 = Utf8               Builder\n+  #186 = Utf8               DetailLevel\n {\n   dev.langchain4j.data.message.ImageContentTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -210,52 +210,52 @@\n             0       5     0  this   Ldev/langchain4j/data/message/ImageContentTest;\n \n   public void test_methods();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-         3: ldc           #3                  // String https://example.com/image.png\n-         5: invokestatic  #4                  // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-         8: invokevirtual #5                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-        11: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+         0: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+         3: ldc           #13                 // String https://example.com/image.png\n+         5: invokestatic  #15                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+         8: invokevirtual #21                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+        11: invokevirtual #27                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         14: astore_1\n-        15: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+        15: new           #31                 // class dev/langchain4j/data/message/ImageContent\n         18: dup\n         19: aload_1\n-        20: getstatic     #8                  // Field dev/langchain4j/data/message/ImageContent$DetailLevel.HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-        23: invokespecial #9                  // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+        20: getstatic     #33                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+        23: invokespecial #39                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n         26: astore_2\n         27: aload_0\n         28: aload_2\n-        29: invokevirtual #10                 // Method dev/langchain4j/data/message/ImageContent.image:()Ldev/langchain4j/data/image/Image;\n-        32: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        29: invokevirtual #42                 // Method dev/langchain4j/data/message/ImageContent.image:()Ldev/langchain4j/data/image/Image;\n+        32: invokevirtual #45                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         35: aload_1\n-        36: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        36: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         39: pop\n         40: aload_0\n         41: aload_2\n-        42: invokevirtual #13                 // Method dev/langchain4j/data/message/ImageContent.detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-        45: invokevirtual #14                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        48: getstatic     #8                  // Field dev/langchain4j/data/message/ImageContent$DetailLevel.HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-        51: invokevirtual #15                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        42: invokevirtual #57                 // Method dev/langchain4j/data/message/ImageContent.detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+        45: invokevirtual #61                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        48: getstatic     #33                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.HIGH:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+        51: invokevirtual #64                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         54: pop\n         55: aload_0\n         56: aload_2\n-        57: invokevirtual #16                 // Method dev/langchain4j/data/message/ImageContent.type:()Ldev/langchain4j/data/message/ContentType;\n-        60: invokevirtual #14                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        63: getstatic     #17                 // Field dev/langchain4j/data/message/ContentType.IMAGE:Ldev/langchain4j/data/message/ContentType;\n-        66: invokevirtual #15                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        57: invokevirtual #67                 // Method dev/langchain4j/data/message/ImageContent.type:()Ldev/langchain4j/data/message/ContentType;\n+        60: invokevirtual #61                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        63: getstatic     #71                 // Field dev/langchain4j/data/message/ContentType.IMAGE:Ldev/langchain4j/data/message/ContentType;\n+        66: invokevirtual #64                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         69: pop\n         70: aload_0\n         71: aload_2\n-        72: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        75: ldc           #18                 // String ImageContent { image = Image { url = \\\"https://example.com/image.png\\\", base64Data = null, mimeType = null, revisedPrompt = null } detailLevel = HIGH }\n-        77: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        72: invokevirtual #45                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        75: ldc           #77                 // String ImageContent { image = Image { url = \\\"https://example.com/image.png\\\", base64Data = null, mimeType = null, revisedPrompt = null } detailLevel = HIGH }\n+        77: invokevirtual #79                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         80: pop\n         81: return\n       LineNumberTable:\n         line 12: 0\n         line 13: 5\n         line 14: 11\n         line 15: 15\n@@ -267,71 +267,71 @@\n         line 28: 81\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      82     0  this   Ldev/langchain4j/data/message/ImageContentTest;\n            15      67     1 urlImage   Ldev/langchain4j/data/image/Image;\n            27      55     2 imageContent   Ldev/langchain4j/data/message/ImageContent;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #174()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: ldc           #3                  // String https://example.com/image.png\n-         2: invokestatic  #20                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+         0: ldc           #13                 // String https://example.com/image.png\n+         2: invokestatic  #83                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n          5: astore_1\n-         6: ldc           #3                  // String https://example.com/image.png\n-         8: invokestatic  #20                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+         6: ldc           #13                 // String https://example.com/image.png\n+         8: invokestatic  #83                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n         11: astore_2\n-        12: ldc           #21                 // String https://example.com/image.jpg\n-        14: invokestatic  #20                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+        12: ldc           #87                 // String https://example.com/image.jpg\n+        14: invokestatic  #83                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n         17: astore_3\n-        18: ldc           #21                 // String https://example.com/image.jpg\n-        20: invokestatic  #20                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+        18: ldc           #87                 // String https://example.com/image.jpg\n+        20: invokestatic  #83                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n         23: astore        4\n         25: aload_0\n         26: aload_1\n-        27: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        27: invokevirtual #45                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         30: aload_1\n-        31: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        34: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        31: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        34: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         37: aconst_null\n-        38: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        41: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-        44: new           #24                 // class java/lang/Object\n+        38: invokevirtual #89                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        41: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+        44: new           #2                  // class java/lang/Object\n         47: dup\n         48: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        51: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        54: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        51: invokevirtual #89                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        54: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         57: aload_2\n-        58: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        61: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        58: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        61: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         64: aload_2\n-        65: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        68: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        65: invokevirtual #92                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        68: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         71: aload_3\n-        72: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        75: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        72: invokevirtual #89                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        75: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         78: aload         4\n-        80: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        80: invokevirtual #89                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         83: pop\n         84: aload_0\n         85: aload_3\n-        86: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        86: invokevirtual #45                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         89: aload_3\n-        90: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        93: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        90: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        93: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         96: aload         4\n-        98: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       101: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        98: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       101: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        104: aload         4\n-       106: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       106: invokevirtual #92                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        109: pop\n        110: return\n       LineNumberTable:\n         line 32: 0\n         line 33: 6\n         line 35: 12\n         line 36: 18\n@@ -352,168 +352,168 @@\n         Start  Length  Slot  Name   Signature\n             0     111     0  this   Ldev/langchain4j/data/message/ImageContentTest;\n             6     105     1    i1   Ldev/langchain4j/data/message/ImageContent;\n            12      99     2    i2   Ldev/langchain4j/data/message/ImageContent;\n            18      93     3    i3   Ldev/langchain4j/data/message/ImageContent;\n            25      86     4    i4   Ldev/langchain4j/data/message/ImageContent;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #174()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-         3: ldc           #3                  // String https://example.com/image.png\n-         5: invokestatic  #4                  // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n-         8: invokevirtual #5                  // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n-        11: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+         0: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+         3: ldc           #13                 // String https://example.com/image.png\n+         5: invokestatic  #15                 // Method java/net/URI.create:(Ljava/lang/String;)Ljava/net/URI;\n+         8: invokevirtual #21                 // Method dev/langchain4j/data/image/Image$Builder.url:(Ljava/net/URI;)Ldev/langchain4j/data/image/Image$Builder;\n+        11: invokevirtual #27                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n         14: astore_1\n         15: aload_0\n-        16: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+        16: new           #31                 // class dev/langchain4j/data/message/ImageContent\n         19: dup\n         20: aload_1\n-        21: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-        24: invokespecial #9                  // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-        27: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        30: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+        21: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+        24: invokespecial #39                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+        27: invokevirtual #45                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        30: new           #31                 // class dev/langchain4j/data/message/ImageContent\n         33: dup\n         34: aload_1\n-        35: invokespecial #27                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;)V\n-        38: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        41: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        35: invokespecial #98                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;)V\n+        38: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        41: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         44: aload_1\n-        45: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-        48: invokestatic  #28                 // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-        51: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        54: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        45: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+        48: invokestatic  #101                // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+        51: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        54: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n         57: aload_1\n-        58: invokestatic  #29                 // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n-        61: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        64: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-        67: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+        58: invokestatic  #104                // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n+        61: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        64: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+        67: new           #31                 // class dev/langchain4j/data/message/ImageContent\n         70: dup\n         71: aload_1\n-        72: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-        75: invokespecial #31                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;)V\n-        78: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        81: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-        84: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+        72: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+        75: invokespecial #110                // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;)V\n+        78: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        81: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+        84: new           #31                 // class dev/langchain4j/data/message/ImageContent\n         87: dup\n         88: aload_1\n-        89: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-        92: invokevirtual #32                 // Method java/net/URI.toString:()Ljava/lang/String;\n-        95: invokespecial #33                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;)V\n-        98: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       101: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-       104: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+        89: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+        92: invokevirtual #113                // Method java/net/URI.toString:()Ljava/lang/String;\n+        95: invokespecial #117                // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;)V\n+        98: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       101: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+       104: new           #31                 // class dev/langchain4j/data/message/ImageContent\n        107: dup\n        108: aload_1\n-       109: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       112: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       115: invokespecial #34                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-       118: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       121: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-       124: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+       109: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       112: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       115: invokespecial #120                // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+       118: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       121: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+       124: new           #31                 // class dev/langchain4j/data/message/ImageContent\n        127: dup\n        128: aload_1\n-       129: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       132: invokevirtual #32                 // Method java/net/URI.toString:()Ljava/lang/String;\n-       135: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       138: invokespecial #35                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-       141: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       144: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       129: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       132: invokevirtual #113                // Method java/net/URI.toString:()Ljava/lang/String;\n+       135: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       138: invokespecial #123                // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+       141: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       144: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        147: aload_1\n-       148: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       151: invokestatic  #36                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n-       154: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       157: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       148: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       151: invokestatic  #126                // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;)Ldev/langchain4j/data/message/ImageContent;\n+       154: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       157: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        160: aload_1\n-       161: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       164: invokevirtual #32                 // Method java/net/URI.toString:()Ljava/lang/String;\n-       167: invokestatic  #20                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-       170: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       173: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       161: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       164: invokevirtual #113                // Method java/net/URI.toString:()Ljava/lang/String;\n+       167: invokestatic  #83                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+       170: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       173: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        176: aload_1\n-       177: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       180: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       183: invokestatic  #37                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-       186: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       189: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       177: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       180: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       183: invokestatic  #129                // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/net/URI;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+       186: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       189: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        192: aload_1\n-       193: invokevirtual #30                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-       196: invokevirtual #32                 // Method java/net/URI.toString:()Ljava/lang/String;\n-       199: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       202: invokestatic  #38                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-       205: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       193: invokevirtual #107                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+       196: invokevirtual #113                // Method java/net/URI.toString:()Ljava/lang/String;\n+       199: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       202: invokestatic  #132                // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+       205: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        208: pop\n-       209: invokestatic  #2                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n-       212: ldc           #39                 // String ff==\n-       214: invokevirtual #40                 // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       217: ldc           #41                 // String mimeType\n-       219: invokevirtual #42                 // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n-       222: invokevirtual #6                  // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n+       209: invokestatic  #7                  // Method dev/langchain4j/data/image/Image.builder:()Ldev/langchain4j/data/image/Image$Builder;\n+       212: ldc           #135                // String ff==\n+       214: invokevirtual #137                // Method dev/langchain4j/data/image/Image$Builder.base64Data:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       217: ldc           #141                // String mimeType\n+       219: invokevirtual #143                // Method dev/langchain4j/data/image/Image$Builder.mimeType:(Ljava/lang/String;)Ldev/langchain4j/data/image/Image$Builder;\n+       222: invokevirtual #27                 // Method dev/langchain4j/data/image/Image$Builder.build:()Ldev/langchain4j/data/image/Image;\n        225: astore_2\n        226: aload_0\n-       227: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+       227: new           #31                 // class dev/langchain4j/data/message/ImageContent\n        230: dup\n        231: aload_2\n-       232: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       235: invokespecial #9                  // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-       238: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       241: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+       232: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       235: invokespecial #39                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+       238: invokevirtual #45                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       241: new           #31                 // class dev/langchain4j/data/message/ImageContent\n        244: dup\n        245: aload_2\n-       246: invokespecial #27                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;)V\n-       249: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       252: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       246: invokespecial #98                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ldev/langchain4j/data/image/Image;)V\n+       249: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       252: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        255: aload_2\n-       256: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       259: invokestatic  #28                 // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-       262: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       265: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       256: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       259: invokestatic  #101                // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+       262: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       265: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        268: aload_2\n-       269: invokestatic  #29                 // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n-       272: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       275: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-       278: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+       269: invokestatic  #104                // Method dev/langchain4j/data/message/ImageContent.from:(Ldev/langchain4j/data/image/Image;)Ldev/langchain4j/data/message/ImageContent;\n+       272: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       275: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+       278: new           #31                 // class dev/langchain4j/data/message/ImageContent\n        281: dup\n        282: aload_2\n-       283: invokevirtual #43                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+       283: invokevirtual #145                // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n        286: aload_2\n-       287: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-       290: invokespecial #45                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-       293: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       296: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-       299: new           #7                  // class dev/langchain4j/data/message/ImageContent\n+       287: invokevirtual #147                // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+       290: invokespecial #149                // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+       293: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       296: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n+       299: new           #31                 // class dev/langchain4j/data/message/ImageContent\n        302: dup\n        303: aload_2\n-       304: invokevirtual #43                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+       304: invokevirtual #145                // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n        307: aload_2\n-       308: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-       311: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       314: invokespecial #46                 // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n-       317: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       320: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       308: invokevirtual #147                // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+       311: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       314: invokespecial #152                // Method dev/langchain4j/data/message/ImageContent.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)V\n+       317: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       320: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        323: aload_2\n-       324: invokevirtual #43                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+       324: invokevirtual #145                // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n        327: aload_2\n-       328: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-       331: invokestatic  #47                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n-       334: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       337: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       328: invokevirtual #147                // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+       331: invokestatic  #155                // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ImageContent;\n+       334: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       337: checkcast     #52                 // class org/assertj/core/api/ObjectAssert\n        340: aload_2\n-       341: invokevirtual #43                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+       341: invokevirtual #145                // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n        344: aload_2\n-       345: invokevirtual #44                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-       348: getstatic     #26                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-       351: invokestatic  #48                 // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n-       354: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       345: invokevirtual #147                // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+       348: getstatic     #95                 // Field dev/langchain4j/data/message/ImageContent$DetailLevel.LOW:Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+       351: invokestatic  #158                // Method dev/langchain4j/data/message/ImageContent.from:(Ljava/lang/String;Ljava/lang/String;Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/langchain4j/data/message/ImageContent;\n+       354: invokevirtual #51                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        357: pop\n        358: return\n       LineNumberTable:\n         line 55: 0\n         line 56: 5\n         line 57: 11\n         line 58: 15\n@@ -543,14 +543,14 @@\n         line 83: 358\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     359     0  this   Ldev/langchain4j/data/message/ImageContentTest;\n            15     344     1 urlImage   Ldev/langchain4j/data/image/Image;\n           226     133     2 base64Image   Ldev/langchain4j/data/image/Image;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #174()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ImageContentTest.java\"\n InnerClasses:\n-  public static #131= #80 of #75;         // Builder=class dev/langchain4j/data/image/Image$Builder of class dev/langchain4j/data/image/Image\n-  public static final #143= #84 of #7;    // DetailLevel=class dev/langchain4j/data/message/ImageContent$DetailLevel of class dev/langchain4j/data/message/ImageContent\n+  public static #185= #22 of #8;          // Builder=class dev/langchain4j/data/image/Image$Builder of class dev/langchain4j/data/image/Image\n+  public static final #186= #34 of #31;   // DetailLevel=class dev/langchain4j/data/message/ImageContent$DetailLevel of class dev/langchain4j/data/message/ImageContent\n"}]}, {"source1": "dev/langchain4j/data/message/SystemMessageTest.class", "source2": "dev/langchain4j/data/message/SystemMessageTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,112 +1,112 @@\n-  SHA-256 checksum f418be9fbcd46c82108c854dde9d91b753c17d4510fb418fa61b3b228886cd16\n+  SHA-256 checksum e7b3bb2a3d10c09434bdb785dc125e3c44cfc6fe924d14f62ae63ebaf3c094d5\n   Compiled from \"SystemMessageTest.java\"\n class dev.langchain4j.data.message.SystemMessageTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #24                         // dev/langchain4j/data/message/SystemMessageTest\n-  super_class: #21                        // java/lang/Object\n+  this_class: #15                         // dev/langchain4j/data/message/SystemMessageTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 1\n Constant pool:\n-   #1 = Methodref          #21.#46        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #47            // dev/langchain4j/data/message/SystemMessage\n-   #3 = String             #48            // text\n-   #4 = Methodref          #2.#49         // dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n-   #5 = Methodref          #24.#50        // dev/langchain4j/data/message/SystemMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #6 = Methodref          #2.#51         // dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-   #7 = Methodref          #8.#52         // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #8 = Class              #53            // org/assertj/core/api/ObjectAssert\n-   #9 = Methodref          #2.#54         // dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #10 = Methodref          #2.#55         // dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n-  #11 = Methodref          #24.#56        // dev/langchain4j/data/message/SystemMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #12 = Methodref          #57.#58        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #13 = Methodref          #2.#59         // dev/langchain4j/data/message/SystemMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-  #14 = Methodref          #24.#60        // dev/langchain4j/data/message/SystemMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #15 = Fieldref           #61.#62        // dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n-  #16 = Methodref          #63.#52        // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #17 = String             #64            // SystemMessage { text = \\\"text\\\" }\n-  #18 = Methodref          #8.#65         // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #19 = String             #66            // text2\n-  #20 = Methodref          #8.#67         // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #21 = Class              #68            // java/lang/Object\n-  #22 = Methodref          #8.#69         // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #23 = Methodref          #8.#70         // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #24 = Class              #71            // dev/langchain4j/data/message/SystemMessageTest\n-  #25 = Class              #72            // org/assertj/core/api/WithAssertions\n-  #26 = Utf8               <init>\n-  #27 = Utf8               ()V\n-  #28 = Utf8               Code\n-  #29 = Utf8               LineNumberTable\n-  #30 = Utf8               LocalVariableTable\n-  #31 = Utf8               this\n-  #32 = Utf8               Ldev/langchain4j/data/message/SystemMessageTest;\n-  #33 = Utf8               test_builders\n-  #34 = Utf8               RuntimeVisibleAnnotations\n-  #35 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #36 = Utf8               test_methods\n-  #37 = Utf8               message\n-  #38 = Utf8               Ldev/langchain4j/data/message/SystemMessage;\n-  #39 = Utf8               test_equals_hashCode\n-  #40 = Utf8               s1\n-  #41 = Utf8               s2\n-  #42 = Utf8               s3\n-  #43 = Utf8               s4\n-  #44 = Utf8               SourceFile\n-  #45 = Utf8               SystemMessageTest.java\n-  #46 = NameAndType        #26:#27        // \"<init>\":()V\n-  #47 = Utf8               dev/langchain4j/data/message/SystemMessage\n-  #48 = Utf8               text\n-  #49 = NameAndType        #26:#73        // \"<init>\":(Ljava/lang/String;)V\n-  #50 = NameAndType        #74:#75        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #51 = NameAndType        #76:#77        // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #52 = NameAndType        #78:#79        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #53 = Utf8               org/assertj/core/api/ObjectAssert\n-  #54 = NameAndType        #80:#77        // systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #55 = NameAndType        #48:#81        // text:()Ljava/lang/String;\n-  #56 = NameAndType        #74:#82        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #57 = Class              #83            // org/assertj/core/api/AbstractStringAssert\n-  #58 = NameAndType        #78:#82        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #59 = NameAndType        #84:#85        // type:()Ldev/langchain4j/data/message/ChatMessageType;\n-  #60 = NameAndType        #74:#86        // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #61 = Class              #87            // dev/langchain4j/data/message/ChatMessageType\n-  #62 = NameAndType        #88:#89        // SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n-  #63 = Class              #90            // org/assertj/core/api/AbstractComparableAssert\n-  #64 = Utf8               SystemMessage { text = \\\"text\\\" }\n-  #65 = NameAndType        #91:#92        // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/data/message/SystemMessage\n+   #8 = Utf8               dev/langchain4j/data/message/SystemMessage\n+   #9 = String             #10            // text\n+  #10 = Utf8               text\n+  #11 = Methodref          #7.#12         // dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+  #12 = NameAndType        #5:#13         // \"<init>\":(Ljava/lang/String;)V\n+  #13 = Utf8               (Ljava/lang/String;)V\n+  #14 = Methodref          #15.#16        // dev/langchain4j/data/message/SystemMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #15 = Class              #17            // dev/langchain4j/data/message/SystemMessageTest\n+  #16 = NameAndType        #18:#19        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #17 = Utf8               dev/langchain4j/data/message/SystemMessageTest\n+  #18 = Utf8               assertThat\n+  #19 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #20 = Methodref          #7.#21         // dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+  #21 = NameAndType        #22:#23        // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+  #22 = Utf8               from\n+  #23 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+  #24 = Methodref          #25.#26        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #25 = Class              #27            // org/assertj/core/api/ObjectAssert\n+  #26 = NameAndType        #28:#29        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #27 = Utf8               org/assertj/core/api/ObjectAssert\n+  #28 = Utf8               isEqualTo\n+  #29 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #30 = Methodref          #7.#31         // dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+  #31 = NameAndType        #32:#23        // systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+  #32 = Utf8               systemMessage\n+  #33 = Methodref          #7.#34         // dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n+  #34 = NameAndType        #10:#35        // text:()Ljava/lang/String;\n+  #35 = Utf8               ()Ljava/lang/String;\n+  #36 = Methodref          #15.#37        // dev/langchain4j/data/message/SystemMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #37 = NameAndType        #18:#38        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #38 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #39 = Methodref          #40.#41        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #40 = Class              #42            // org/assertj/core/api/AbstractStringAssert\n+  #41 = NameAndType        #28:#38        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #42 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #43 = Methodref          #7.#44         // dev/langchain4j/data/message/SystemMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+  #44 = NameAndType        #45:#46        // type:()Ldev/langchain4j/data/message/ChatMessageType;\n+  #45 = Utf8               type\n+  #46 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n+  #47 = Methodref          #15.#48        // dev/langchain4j/data/message/SystemMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #48 = NameAndType        #18:#49        // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #49 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #50 = Fieldref           #51.#52        // dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n+  #51 = Class              #53            // dev/langchain4j/data/message/ChatMessageType\n+  #52 = NameAndType        #54:#55        // SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n+  #53 = Utf8               dev/langchain4j/data/message/ChatMessageType\n+  #54 = Utf8               SYSTEM\n+  #55 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n+  #56 = Methodref          #57.#26        // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #57 = Class              #58            // org/assertj/core/api/AbstractComparableAssert\n+  #58 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+  #59 = String             #60            // SystemMessage { text = \\\"text\\\" }\n+  #60 = Utf8               SystemMessage { text = \\\"text\\\" }\n+  #61 = Methodref          #25.#62        // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #62 = NameAndType        #63:#64        // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #63 = Utf8               hasToString\n+  #64 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #65 = String             #66            // text2\n   #66 = Utf8               text2\n-  #67 = NameAndType        #93:#79        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #68 = Utf8               java/lang/Object\n-  #69 = NameAndType        #94:#79        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #70 = NameAndType        #95:#79        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #71 = Utf8               dev/langchain4j/data/message/SystemMessageTest\n-  #72 = Utf8               org/assertj/core/api/WithAssertions\n-  #73 = Utf8               (Ljava/lang/String;)V\n-  #74 = Utf8               assertThat\n-  #75 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #76 = Utf8               from\n-  #77 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #78 = Utf8               isEqualTo\n-  #79 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #80 = Utf8               systemMessage\n-  #81 = Utf8               ()Ljava/lang/String;\n-  #82 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #83 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #84 = Utf8               type\n-  #85 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n-  #86 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #87 = Utf8               dev/langchain4j/data/message/ChatMessageType\n-  #88 = Utf8               SYSTEM\n-  #89 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n-  #90 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #91 = Utf8               hasToString\n-  #92 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #93 = Utf8               isNotEqualTo\n-  #94 = Utf8               hasSameHashCodeAs\n-  #95 = Utf8               doesNotHaveSameHashCodeAs\n+  #67 = Methodref          #25.#68        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #68 = NameAndType        #69:#29        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #69 = Utf8               isNotEqualTo\n+  #70 = Methodref          #25.#71        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #71 = NameAndType        #72:#29        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #72 = Utf8               hasSameHashCodeAs\n+  #73 = Methodref          #25.#74        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #74 = NameAndType        #75:#29        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #75 = Utf8               doesNotHaveSameHashCodeAs\n+  #76 = Class              #77            // org/assertj/core/api/WithAssertions\n+  #77 = Utf8               org/assertj/core/api/WithAssertions\n+  #78 = Utf8               Code\n+  #79 = Utf8               LineNumberTable\n+  #80 = Utf8               LocalVariableTable\n+  #81 = Utf8               this\n+  #82 = Utf8               Ldev/langchain4j/data/message/SystemMessageTest;\n+  #83 = Utf8               test_builders\n+  #84 = Utf8               RuntimeVisibleAnnotations\n+  #85 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #86 = Utf8               test_methods\n+  #87 = Utf8               message\n+  #88 = Utf8               Ldev/langchain4j/data/message/SystemMessage;\n+  #89 = Utf8               test_equals_hashCode\n+  #90 = Utf8               s1\n+  #91 = Utf8               s2\n+  #92 = Utf8               s3\n+  #93 = Utf8               s4\n+  #94 = Utf8               SourceFile\n+  #95 = Utf8               SystemMessageTest.java\n {\n   dev.langchain4j.data.message.SystemMessageTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -120,147 +120,147 @@\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/data/message/SystemMessage\n+         1: new           #7                  // class dev/langchain4j/data/message/SystemMessage\n          4: dup\n-         5: ldc           #3                  // String text\n-         7: invokespecial #4                  // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n-        10: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        13: ldc           #3                  // String text\n-        15: invokestatic  #6                  // Method dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-        18: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        21: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n-        24: ldc           #3                  // String text\n-        26: invokestatic  #9                  // Method dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-        29: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         5: ldc           #9                  // String text\n+         7: invokespecial #11                 // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+        10: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        13: ldc           #9                  // String text\n+        15: invokestatic  #20                 // Method dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+        18: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        21: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n+        24: ldc           #9                  // String text\n+        26: invokestatic  #30                 // Method dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+        29: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         32: pop\n         33: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 15\n         line 11: 26\n         line 12: 33\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      34     0  this   Ldev/langchain4j/data/message/SystemMessageTest;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n \n   public void test_methods();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/SystemMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/SystemMessage\n          3: dup\n-         4: ldc           #3                  // String text\n-         6: invokespecial #4                  // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #9                  // String text\n+         6: invokespecial #11                 // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n          9: astore_1\n         10: aload_0\n         11: aload_1\n-        12: invokevirtual #10                 // Method dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n-        15: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        18: ldc           #3                  // String text\n-        20: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        12: invokevirtual #33                 // Method dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n+        15: invokevirtual #36                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        18: ldc           #9                  // String text\n+        20: invokevirtual #39                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         23: pop\n         24: aload_0\n         25: aload_1\n-        26: invokevirtual #13                 // Method dev/langchain4j/data/message/SystemMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-        29: invokevirtual #14                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        32: getstatic     #15                 // Field dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n-        35: invokevirtual #16                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        26: invokevirtual #43                 // Method dev/langchain4j/data/message/SystemMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+        29: invokevirtual #47                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        32: getstatic     #50                 // Field dev/langchain4j/data/message/ChatMessageType.SYSTEM:Ldev/langchain4j/data/message/ChatMessageType;\n+        35: invokevirtual #56                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         38: pop\n         39: aload_0\n         40: aload_1\n-        41: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        44: ldc           #17                 // String SystemMessage { text = \\\"text\\\" }\n-        46: invokevirtual #18                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        41: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        44: ldc           #59                 // String SystemMessage { text = \\\"text\\\" }\n+        46: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         49: pop\n         50: return\n       LineNumberTable:\n         line 16: 0\n         line 17: 10\n         line 18: 24\n         line 20: 39\n         line 21: 50\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      51     0  this   Ldev/langchain4j/data/message/SystemMessageTest;\n            10      41     1 message   Ldev/langchain4j/data/message/SystemMessage;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/SystemMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/SystemMessage\n          3: dup\n-         4: ldc           #3                  // String text\n-         6: invokespecial #4                  // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #9                  // String text\n+         6: invokespecial #11                 // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n          9: astore_1\n-        10: new           #2                  // class dev/langchain4j/data/message/SystemMessage\n+        10: new           #7                  // class dev/langchain4j/data/message/SystemMessage\n         13: dup\n-        14: ldc           #3                  // String text\n-        16: invokespecial #4                  // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+        14: ldc           #9                  // String text\n+        16: invokespecial #11                 // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n         19: astore_2\n-        20: new           #2                  // class dev/langchain4j/data/message/SystemMessage\n+        20: new           #7                  // class dev/langchain4j/data/message/SystemMessage\n         23: dup\n-        24: ldc           #19                 // String text2\n-        26: invokespecial #4                  // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+        24: ldc           #65                 // String text2\n+        26: invokespecial #11                 // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n         29: astore_3\n-        30: new           #2                  // class dev/langchain4j/data/message/SystemMessage\n+        30: new           #7                  // class dev/langchain4j/data/message/SystemMessage\n         33: dup\n-        34: ldc           #19                 // String text2\n-        36: invokespecial #4                  // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n+        34: ldc           #65                 // String text2\n+        36: invokespecial #11                 // Method dev/langchain4j/data/message/SystemMessage.\"<init>\":(Ljava/lang/String;)V\n         39: astore        4\n         41: aload_0\n         42: aload_1\n-        43: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        43: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         46: aload_1\n-        47: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        50: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+        47: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        50: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n         53: aconst_null\n-        54: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        57: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n-        60: new           #21                 // class java/lang/Object\n+        54: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        57: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n+        60: new           #2                  // class java/lang/Object\n         63: dup\n         64: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        67: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        70: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+        67: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        70: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n         73: aload_2\n-        74: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        77: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+        74: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        77: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n         80: aload_2\n-        81: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        84: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+        81: invokevirtual #70                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        84: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n         87: aload_3\n-        88: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        91: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+        88: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        91: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n         94: aload_3\n-        95: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        95: invokevirtual #73                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         98: pop\n         99: aload_0\n        100: aload_3\n-       101: invokevirtual #5                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       101: invokevirtual #14                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        104: aload_3\n-       105: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       108: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+       105: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       108: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n        111: aload         4\n-       113: invokevirtual #7                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       116: checkcast     #8                  // class org/assertj/core/api/ObjectAssert\n+       113: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       116: checkcast     #25                 // class org/assertj/core/api/ObjectAssert\n        119: aload         4\n-       121: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       121: invokevirtual #70                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        124: pop\n        125: return\n       LineNumberTable:\n         line 25: 0\n         line 26: 10\n         line 28: 20\n         line 29: 30\n@@ -281,11 +281,11 @@\n         Start  Length  Slot  Name   Signature\n             0     126     0  this   Ldev/langchain4j/data/message/SystemMessageTest;\n            10     116     1    s1   Ldev/langchain4j/data/message/SystemMessage;\n            20     106     2    s2   Ldev/langchain4j/data/message/SystemMessage;\n            30      96     3    s3   Ldev/langchain4j/data/message/SystemMessage;\n            41      85     4    s4   Ldev/langchain4j/data/message/SystemMessage;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"SystemMessageTest.java\"\n"}]}, {"source1": "dev/langchain4j/data/message/ToolExecutionResultMessageTest.class", "source2": "dev/langchain4j/data/message/ToolExecutionResultMessageTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,153 +1,153 @@\n-  SHA-256 checksum 1fb397d6979f371b3a808d220a24672b12b29ce42526f122e78b8b3a00f56199\n+  SHA-256 checksum f608717a1fae5e8eebf55260ee427a1ad89dd681748e8a4bb962e4ebd07cc9fa\n   Compiled from \"ToolExecutionResultMessageTest.java\"\n class dev.langchain4j.data.message.ToolExecutionResultMessageTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #37                         // dev/langchain4j/data/message/ToolExecutionResultMessageTest\n-  super_class: #23                        // java/lang/Object\n+  this_class: #22                         // dev/langchain4j/data/message/ToolExecutionResultMessageTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-    #1 = Methodref          #23.#61       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #62           // dev/langchain4j/data/message/ToolExecutionResultMessage\n-    #3 = String             #63           // id\n-    #4 = String             #64           // toolName\n-    #5 = String             #65           // text\n-    #6 = Methodref          #2.#66        // dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n-    #7 = Methodref          #2.#67        // dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n-    #8 = Methodref          #37.#68       // dev/langchain4j/data/message/ToolExecutionResultMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #9 = Methodref          #69.#70       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #10 = Methodref          #2.#71        // dev/langchain4j/data/message/ToolExecutionResultMessage.toolName:()Ljava/lang/String;\n-   #11 = Methodref          #2.#72        // dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n-   #12 = Methodref          #2.#73        // dev/langchain4j/data/message/ToolExecutionResultMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-   #13 = Methodref          #37.#74       // dev/langchain4j/data/message/ToolExecutionResultMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #14 = Fieldref           #75.#76       // dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n-   #15 = Methodref          #77.#78       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #16 = Methodref          #37.#79       // dev/langchain4j/data/message/ToolExecutionResultMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #17 = String             #80           // ToolExecutionResultMessage { id = \\\"id\\\" toolName = \\\"toolName\\\" text = \\\"text\\\" }\n-   #18 = Methodref          #21.#81       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #19 = String             #82           // foo\n-   #20 = Methodref          #21.#78       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #21 = Class              #83           // org/assertj/core/api/ObjectAssert\n-   #22 = Methodref          #21.#84       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #23 = Class              #85           // java/lang/Object\n-   #24 = Methodref          #21.#86       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #25 = String             #87           // changed\n-   #26 = Methodref          #2.#88        // dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #27 = Methodref          #21.#89       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #28 = Methodref          #90.#91       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #29 = Methodref          #92.#93       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #30 = Methodref          #92.#94       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #31 = String             #95           // arguments\n-   #32 = Methodref          #92.#96       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #33 = Methodref          #92.#97       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #34 = Methodref          #2.#98        // dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #35 = Methodref          #2.#99        // dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #36 = Methodref          #2.#100       // dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #37 = Class              #101          // dev/langchain4j/data/message/ToolExecutionResultMessageTest\n-   #38 = Class              #102          // org/assertj/core/api/WithAssertions\n-   #39 = Utf8               <init>\n-   #40 = Utf8               ()V\n-   #41 = Utf8               Code\n-   #42 = Utf8               LineNumberTable\n-   #43 = Utf8               LocalVariableTable\n-   #44 = Utf8               this\n-   #45 = Utf8               Ldev/langchain4j/data/message/ToolExecutionResultMessageTest;\n-   #46 = Utf8               test_methods\n-   #47 = Utf8               tm\n-   #48 = Utf8               Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #49 = Utf8               RuntimeVisibleAnnotations\n-   #50 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #51 = Utf8               test_equals_hashCode\n-   #52 = Utf8               t1\n-   #53 = Utf8               t2\n-   #54 = Utf8               t3\n-   #55 = Utf8               t4\n-   #56 = Utf8               test_builders\n-   #57 = Utf8               request\n-   #58 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #59 = Utf8               SourceFile\n-   #60 = Utf8               ToolExecutionResultMessageTest.java\n-   #61 = NameAndType        #39:#40       // \"<init>\":()V\n-   #62 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n-   #63 = Utf8               id\n-   #64 = Utf8               toolName\n-   #65 = Utf8               text\n-   #66 = NameAndType        #39:#103      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n-   #67 = NameAndType        #63:#104      // id:()Ljava/lang/String;\n-   #68 = NameAndType        #105:#106     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #69 = Class              #107          // org/assertj/core/api/AbstractStringAssert\n-   #70 = NameAndType        #108:#106     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #71 = NameAndType        #64:#104      // toolName:()Ljava/lang/String;\n-   #72 = NameAndType        #65:#104      // text:()Ljava/lang/String;\n-   #73 = NameAndType        #109:#110     // type:()Ldev/langchain4j/data/message/ChatMessageType;\n-   #74 = NameAndType        #105:#111     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #75 = Class              #112          // dev/langchain4j/data/message/ChatMessageType\n-   #76 = NameAndType        #113:#114     // TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n-   #77 = Class              #115          // org/assertj/core/api/AbstractComparableAssert\n-   #78 = NameAndType        #108:#116     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #79 = NameAndType        #105:#117     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #80 = Utf8               ToolExecutionResultMessage { id = \\\"id\\\" toolName = \\\"toolName\\\" text = \\\"text\\\" }\n-   #81 = NameAndType        #118:#119     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #82 = Utf8               foo\n-   #83 = Utf8               org/assertj/core/api/ObjectAssert\n-   #84 = NameAndType        #120:#116     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #85 = Utf8               java/lang/Object\n-   #86 = NameAndType        #121:#116     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #87 = Utf8               changed\n-   #88 = NameAndType        #122:#123     // from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #89 = NameAndType        #124:#116     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #90 = Class              #125          // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #91 = NameAndType        #126:#129     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #92 = Class              #130          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-   #93 = NameAndType        #63:#131      // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #94 = NameAndType        #132:#131     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #95 = Utf8               arguments\n-   #96 = NameAndType        #95:#131      // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #97 = NameAndType        #133:#134     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #98 = NameAndType        #122:#135     // from:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-   #99 = NameAndType        #136:#123     // toolExecutionResultMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #100 = NameAndType        #136:#135     // toolExecutionResultMessage:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #101 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessageTest\n-  #102 = Utf8               org/assertj/core/api/WithAssertions\n-  #103 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n-  #104 = Utf8               ()Ljava/lang/String;\n-  #105 = Utf8               assertThat\n-  #106 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #107 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #108 = Utf8               isEqualTo\n-  #109 = Utf8               type\n-  #110 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n-  #111 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #112 = Utf8               dev/langchain4j/data/message/ChatMessageType\n-  #113 = Utf8               TOOL_EXECUTION_RESULT\n-  #114 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n-  #115 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #116 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #117 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #118 = Utf8               hasToString\n-  #119 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #120 = Utf8               isNotEqualTo\n-  #121 = Utf8               hasSameHashCodeAs\n-  #122 = Utf8               from\n-  #123 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #124 = Utf8               doesNotHaveSameHashCodeAs\n-  #125 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #126 = Utf8               builder\n-  #127 = Utf8               Builder\n-  #128 = Utf8               InnerClasses\n-  #129 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #130 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #131 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #132 = Utf8               name\n-  #133 = Utf8               build\n-  #134 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #135 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #136 = Utf8               toolExecutionResultMessage\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/data/message/ToolExecutionResultMessage\n+    #8 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n+    #9 = String             #10           // id\n+   #10 = Utf8               id\n+   #11 = String             #12           // toolName\n+   #12 = Utf8               toolName\n+   #13 = String             #14           // text\n+   #14 = Utf8               text\n+   #15 = Methodref          #7.#16        // dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+   #16 = NameAndType        #5:#17        // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+   #17 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+   #18 = Methodref          #7.#19        // dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n+   #19 = NameAndType        #10:#20       // id:()Ljava/lang/String;\n+   #20 = Utf8               ()Ljava/lang/String;\n+   #21 = Methodref          #22.#23       // dev/langchain4j/data/message/ToolExecutionResultMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #22 = Class              #24           // dev/langchain4j/data/message/ToolExecutionResultMessageTest\n+   #23 = NameAndType        #25:#26       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #24 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessageTest\n+   #25 = Utf8               assertThat\n+   #26 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #27 = Methodref          #28.#29       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #28 = Class              #30           // org/assertj/core/api/AbstractStringAssert\n+   #29 = NameAndType        #31:#26       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #30 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #31 = Utf8               isEqualTo\n+   #32 = Methodref          #7.#33        // dev/langchain4j/data/message/ToolExecutionResultMessage.toolName:()Ljava/lang/String;\n+   #33 = NameAndType        #12:#20       // toolName:()Ljava/lang/String;\n+   #34 = Methodref          #7.#35        // dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n+   #35 = NameAndType        #14:#20       // text:()Ljava/lang/String;\n+   #36 = Methodref          #7.#37        // dev/langchain4j/data/message/ToolExecutionResultMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+   #37 = NameAndType        #38:#39       // type:()Ldev/langchain4j/data/message/ChatMessageType;\n+   #38 = Utf8               type\n+   #39 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n+   #40 = Methodref          #22.#41       // dev/langchain4j/data/message/ToolExecutionResultMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #41 = NameAndType        #25:#42       // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #42 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #43 = Fieldref           #44.#45       // dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n+   #44 = Class              #46           // dev/langchain4j/data/message/ChatMessageType\n+   #45 = NameAndType        #47:#48       // TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n+   #46 = Utf8               dev/langchain4j/data/message/ChatMessageType\n+   #47 = Utf8               TOOL_EXECUTION_RESULT\n+   #48 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n+   #49 = Methodref          #50.#51       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #50 = Class              #52           // org/assertj/core/api/AbstractComparableAssert\n+   #51 = NameAndType        #31:#53       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #52 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+   #53 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #54 = Methodref          #22.#55       // dev/langchain4j/data/message/ToolExecutionResultMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #55 = NameAndType        #25:#56       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #56 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #57 = String             #58           // ToolExecutionResultMessage { id = \\\"id\\\" toolName = \\\"toolName\\\" text = \\\"text\\\" }\n+   #58 = Utf8               ToolExecutionResultMessage { id = \\\"id\\\" toolName = \\\"toolName\\\" text = \\\"text\\\" }\n+   #59 = Methodref          #60.#61       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #60 = Class              #62           // org/assertj/core/api/ObjectAssert\n+   #61 = NameAndType        #63:#64       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #62 = Utf8               org/assertj/core/api/ObjectAssert\n+   #63 = Utf8               hasToString\n+   #64 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #65 = String             #66           // foo\n+   #66 = Utf8               foo\n+   #67 = Methodref          #60.#51       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #68 = Methodref          #60.#69       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #69 = NameAndType        #70:#53       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #70 = Utf8               isNotEqualTo\n+   #71 = Methodref          #60.#72       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #72 = NameAndType        #73:#53       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #73 = Utf8               hasSameHashCodeAs\n+   #74 = String             #75           // changed\n+   #75 = Utf8               changed\n+   #76 = Methodref          #7.#77        // dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+   #77 = NameAndType        #78:#79       // from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+   #78 = Utf8               from\n+   #79 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+   #80 = Methodref          #60.#81       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #81 = NameAndType        #82:#53       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #82 = Utf8               doesNotHaveSameHashCodeAs\n+   #83 = Methodref          #84.#85       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #84 = Class              #86           // dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #85 = NameAndType        #87:#88       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #86 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #87 = Utf8               builder\n+   #88 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #89 = Methodref          #90.#91       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #90 = Class              #92           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #91 = NameAndType        #10:#93       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #92 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #93 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #94 = Methodref          #90.#95       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #95 = NameAndType        #96:#93       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #96 = Utf8               name\n+   #97 = String             #98           // arguments\n+   #98 = Utf8               arguments\n+   #99 = Methodref          #90.#100      // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #100 = NameAndType        #98:#93       // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #101 = Methodref          #90.#102      // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #102 = NameAndType        #103:#104     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #103 = Utf8               build\n+  #104 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #105 = Methodref          #7.#106       // dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #106 = NameAndType        #78:#107      // from:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #107 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #108 = Methodref          #7.#109       // dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #109 = NameAndType        #110:#79      // toolExecutionResultMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #110 = Utf8               toolExecutionResultMessage\n+  #111 = Methodref          #7.#112       // dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #112 = NameAndType        #110:#107     // toolExecutionResultMessage:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #113 = Class              #114          // org/assertj/core/api/WithAssertions\n+  #114 = Utf8               org/assertj/core/api/WithAssertions\n+  #115 = Utf8               Code\n+  #116 = Utf8               LineNumberTable\n+  #117 = Utf8               LocalVariableTable\n+  #118 = Utf8               this\n+  #119 = Utf8               Ldev/langchain4j/data/message/ToolExecutionResultMessageTest;\n+  #120 = Utf8               test_methods\n+  #121 = Utf8               tm\n+  #122 = Utf8               Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #123 = Utf8               RuntimeVisibleAnnotations\n+  #124 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #125 = Utf8               test_equals_hashCode\n+  #126 = Utf8               t1\n+  #127 = Utf8               t2\n+  #128 = Utf8               t3\n+  #129 = Utf8               t4\n+  #130 = Utf8               test_builders\n+  #131 = Utf8               request\n+  #132 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #133 = Utf8               SourceFile\n+  #134 = Utf8               ToolExecutionResultMessageTest.java\n+  #135 = Utf8               InnerClasses\n+  #136 = Utf8               Builder\n {\n   dev.langchain4j.data.message.ToolExecutionResultMessageTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -160,54 +160,54 @@\n             0       5     0  this   Ldev/langchain4j/data/message/ToolExecutionResultMessageTest;\n \n   public void test_methods();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n          3: dup\n-         4: ldc           #3                  // String id\n-         6: ldc           #4                  // String toolName\n-         8: ldc           #5                  // String text\n-        10: invokespecial #6                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+         4: ldc           #9                  // String id\n+         6: ldc           #11                 // String toolName\n+         8: ldc           #13                 // String text\n+        10: invokespecial #15                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n         13: astore_1\n         14: aload_0\n         15: aload_1\n-        16: invokevirtual #7                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n-        19: invokevirtual #8                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        22: ldc           #3                  // String id\n-        24: invokevirtual #9                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        16: invokevirtual #18                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n+        19: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        22: ldc           #9                  // String id\n+        24: invokevirtual #27                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         27: pop\n         28: aload_0\n         29: aload_1\n-        30: invokevirtual #10                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolName:()Ljava/lang/String;\n-        33: invokevirtual #8                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        36: ldc           #4                  // String toolName\n-        38: invokevirtual #9                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        30: invokevirtual #32                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolName:()Ljava/lang/String;\n+        33: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        36: ldc           #11                 // String toolName\n+        38: invokevirtual #27                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         41: pop\n         42: aload_0\n         43: aload_1\n-        44: invokevirtual #11                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n-        47: invokevirtual #8                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        50: ldc           #5                  // String text\n-        52: invokevirtual #9                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        44: invokevirtual #34                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n+        47: invokevirtual #21                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        50: ldc           #13                 // String text\n+        52: invokevirtual #27                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         55: pop\n         56: aload_0\n         57: aload_1\n-        58: invokevirtual #12                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-        61: invokevirtual #13                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        64: getstatic     #14                 // Field dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n-        67: invokevirtual #15                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        58: invokevirtual #36                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+        61: invokevirtual #40                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        64: getstatic     #43                 // Field dev/langchain4j/data/message/ChatMessageType.TOOL_EXECUTION_RESULT:Ldev/langchain4j/data/message/ChatMessageType;\n+        67: invokevirtual #49                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         70: pop\n         71: aload_0\n         72: aload_1\n-        73: invokevirtual #16                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        76: ldc           #17                 // String ToolExecutionResultMessage { id = \\\"id\\\" toolName = \\\"toolName\\\" text = \\\"text\\\" }\n-        78: invokevirtual #18                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        73: invokevirtual #54                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        76: ldc           #57                 // String ToolExecutionResultMessage { id = \\\"id\\\" toolName = \\\"toolName\\\" text = \\\"text\\\" }\n+        78: invokevirtual #59                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         81: pop\n         82: return\n       LineNumberTable:\n         line 10: 0\n         line 11: 14\n         line 12: 28\n         line 13: 42\n@@ -216,105 +216,105 @@\n         line 17: 78\n         line 20: 82\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      83     0  this   Ldev/langchain4j/data/message/ToolExecutionResultMessageTest;\n            14      69     1    tm   Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #124()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=5, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n          3: dup\n-         4: ldc           #3                  // String id\n-         6: ldc           #4                  // String toolName\n-         8: ldc           #5                  // String text\n-        10: invokespecial #6                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+         4: ldc           #9                  // String id\n+         6: ldc           #11                 // String toolName\n+         8: ldc           #13                 // String text\n+        10: invokespecial #15                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n         13: astore_1\n-        14: new           #2                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+        14: new           #7                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n         17: dup\n-        18: ldc           #3                  // String id\n-        20: ldc           #4                  // String toolName\n-        22: ldc           #5                  // String text\n-        24: invokespecial #6                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+        18: ldc           #9                  // String id\n+        20: ldc           #11                 // String toolName\n+        22: ldc           #13                 // String text\n+        24: invokespecial #15                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n         27: astore_2\n-        28: new           #2                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+        28: new           #7                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n         31: dup\n-        32: ldc           #19                 // String foo\n-        34: ldc           #4                  // String toolName\n-        36: ldc           #5                  // String text\n-        38: invokespecial #6                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+        32: ldc           #65                 // String foo\n+        34: ldc           #11                 // String toolName\n+        36: ldc           #13                 // String text\n+        38: invokespecial #15                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n         41: astore_3\n-        42: new           #2                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+        42: new           #7                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n         45: dup\n-        46: ldc           #19                 // String foo\n-        48: ldc           #4                  // String toolName\n-        50: ldc           #5                  // String text\n-        52: invokespecial #6                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+        46: ldc           #65                 // String foo\n+        48: ldc           #11                 // String toolName\n+        50: ldc           #13                 // String text\n+        52: invokespecial #15                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n         55: astore        4\n         57: aload_0\n         58: aload_1\n-        59: invokevirtual #16                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        59: invokevirtual #54                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         62: aload_1\n-        63: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        66: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+        63: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        66: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n         69: aconst_null\n-        70: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        73: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n-        76: new           #23                 // class java/lang/Object\n+        70: invokevirtual #68                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        73: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n+        76: new           #2                  // class java/lang/Object\n         79: dup\n         80: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        83: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        86: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+        83: invokevirtual #68                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        86: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n         89: aload_2\n-        90: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        93: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+        90: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        93: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n         96: aload_2\n-        97: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       100: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n-       103: ldc           #25                 // String changed\n-       105: ldc           #4                  // String toolName\n-       107: ldc           #5                  // String text\n-       109: invokestatic  #26                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-       112: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       115: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n-       118: ldc           #3                  // String id\n-       120: ldc           #25                 // String changed\n-       122: ldc           #5                  // String text\n-       124: invokestatic  #26                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-       127: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       130: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n-       133: ldc           #3                  // String id\n-       135: ldc           #4                  // String toolName\n-       137: ldc           #25                 // String changed\n-       139: invokestatic  #26                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-       142: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       145: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+        97: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       100: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n+       103: ldc           #74                 // String changed\n+       105: ldc           #11                 // String toolName\n+       107: ldc           #13                 // String text\n+       109: invokestatic  #76                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+       112: invokevirtual #68                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       115: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n+       118: ldc           #9                  // String id\n+       120: ldc           #74                 // String changed\n+       122: ldc           #13                 // String text\n+       124: invokestatic  #76                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+       127: invokevirtual #68                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       130: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n+       133: ldc           #9                  // String id\n+       135: ldc           #11                 // String toolName\n+       137: ldc           #74                 // String changed\n+       139: invokestatic  #76                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+       142: invokevirtual #68                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       145: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n        148: aload_3\n-       149: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       152: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+       149: invokevirtual #68                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       152: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n        155: aload_3\n-       156: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       156: invokevirtual #80                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        159: pop\n        160: aload_0\n        161: aload_3\n-       162: invokevirtual #16                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       162: invokevirtual #54                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        165: aload_3\n-       166: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       169: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+       166: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       169: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n        172: aload         4\n-       174: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       177: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+       174: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       177: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n        180: aload         4\n-       182: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       182: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        185: pop\n        186: return\n       LineNumberTable:\n         line 24: 0\n         line 25: 14\n         line 27: 28\n         line 28: 42\n@@ -338,60 +338,60 @@\n         Start  Length  Slot  Name   Signature\n             0     187     0  this   Ldev/langchain4j/data/message/ToolExecutionResultMessageTest;\n            14     173     1    t1   Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n            28     159     2    t2   Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n            42     145     3    t3   Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n            57     130     4    t4   Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #124()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=2, args_size=1\n-         0: invokestatic  #28                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         3: ldc           #3                  // String id\n-         5: invokevirtual #29                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-         8: ldc           #4                  // String toolName\n-        10: invokevirtual #30                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        13: ldc           #31                 // String arguments\n-        15: invokevirtual #32                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        18: invokevirtual #33                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+         0: invokestatic  #83                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         3: ldc           #9                  // String id\n+         5: invokevirtual #89                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         8: ldc           #11                 // String toolName\n+        10: invokevirtual #94                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        13: ldc           #97                 // String arguments\n+        15: invokevirtual #99                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        18: invokevirtual #101                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         21: astore_1\n         22: aload_0\n-        23: new           #2                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+        23: new           #7                  // class dev/langchain4j/data/message/ToolExecutionResultMessage\n         26: dup\n-        27: ldc           #3                  // String id\n-        29: ldc           #4                  // String toolName\n-        31: ldc           #5                  // String text\n-        33: invokespecial #6                  // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n-        36: invokevirtual #16                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        39: ldc           #3                  // String id\n-        41: ldc           #4                  // String toolName\n-        43: ldc           #5                  // String text\n-        45: invokestatic  #26                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-        48: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        51: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+        27: ldc           #9                  // String id\n+        29: ldc           #11                 // String toolName\n+        31: ldc           #13                 // String text\n+        33: invokespecial #15                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V\n+        36: invokevirtual #54                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        39: ldc           #9                  // String id\n+        41: ldc           #11                 // String toolName\n+        43: ldc           #13                 // String text\n+        45: invokestatic  #76                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+        48: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        51: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n         54: aload_1\n-        55: ldc           #5                  // String text\n-        57: invokestatic  #34                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-        60: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        63: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n-        66: ldc           #3                  // String id\n-        68: ldc           #4                  // String toolName\n-        70: ldc           #5                  // String text\n-        72: invokestatic  #35                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-        75: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        78: checkcast     #21                 // class org/assertj/core/api/ObjectAssert\n+        55: ldc           #13                 // String text\n+        57: invokestatic  #105                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.from:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+        60: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        63: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n+        66: ldc           #9                  // String id\n+        68: ldc           #11                 // String toolName\n+        70: ldc           #13                 // String text\n+        72: invokestatic  #108                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+        75: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        78: checkcast     #60                 // class org/assertj/core/api/ObjectAssert\n         81: aload_1\n-        82: ldc           #5                  // String text\n-        84: invokestatic  #36                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-        87: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        82: ldc           #13                 // String text\n+        84: invokestatic  #111                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolExecutionResultMessage:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;Ljava/lang/String;)Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+        87: invokevirtual #67                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         90: pop\n         91: return\n       LineNumberTable:\n         line 53: 0\n         line 54: 5\n         line 55: 10\n         line 56: 15\n@@ -403,13 +403,13 @@\n         line 64: 84\n         line 66: 91\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      92     0  this   Ldev/langchain4j/data/message/ToolExecutionResultMessageTest;\n            22      70     1 request   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #124()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ToolExecutionResultMessageTest.java\"\n InnerClasses:\n-  public static final #127= #92 of #90;   // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static final #136= #90 of #84;   // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n"}]}, {"source1": "dev/langchain4j/data/message/UserMessageTest.class", "source2": "dev/langchain4j/data/message/UserMessageTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,270 +1,270 @@\n-  SHA-256 checksum f4081e9781aaa502b4bd70129a8629d1fd3d672c990bd9db725c626308a61be0\n+  SHA-256 checksum 7ce22034292cf82b28595c7cc1933b3d8dfbbe10c8fd32079ac68d8e6bcec49d\n   Compiled from \"UserMessageTest.java\"\n class dev.langchain4j.data.message.UserMessageTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #63                         // dev/langchain4j/data/message/UserMessageTest\n-  super_class: #26                        // java/lang/Object\n+  this_class: #21                         // dev/langchain4j/data/message/UserMessageTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 7, attributes: 3\n Constant pool:\n-    #1 = Methodref          #26.#98       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #99           // dev/langchain4j/data/message/UserMessage\n-    #3 = String             #100          // name\n-    #4 = String             #101          // text\n-    #5 = Methodref          #2.#102       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-    #6 = Methodref          #2.#103       // dev/langchain4j/data/message/UserMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-    #7 = Methodref          #63.#104      // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-    #8 = Fieldref           #105.#106     // dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n-    #9 = Methodref          #107.#108     // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #10 = Methodref          #2.#109       // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-   #11 = Methodref          #63.#110      // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #12 = Methodref          #111.#112     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #13 = Methodref          #2.#113       // dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n-   #14 = Methodref          #63.#114      // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #15 = Class              #115          // dev/langchain4j/data/message/Content\n-   #16 = Methodref          #37.#116      // dev/langchain4j/data/message/TextContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n-   #17 = Methodref          #117.#118     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #18 = Methodref          #2.#119       // dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n-   #19 = Methodref          #63.#120      // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #20 = String             #121          // UserMessage { name = \\\"name\\\" contents = [TextContent { text = \\\"text\\\" }] }\n-   #21 = Methodref          #24.#122      // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #22 = Methodref          #2.#123       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-   #23 = Methodref          #24.#108      // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #24 = Class              #124          // org/assertj/core/api/ObjectAssert\n-   #25 = Methodref          #24.#125      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Class              #126          // java/lang/Object\n-   #27 = Methodref          #24.#127      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #28 = Methodref          #24.#128      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #29 = String             #129          // foo\n-   #30 = Class              #130          // java/util/ArrayList\n-   #31 = Methodref          #131.#132     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #32 = Methodref          #30.#133      // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n-   #33 = Methodref          #134.#135     // java/util/Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;\n-   #34 = Methodref          #2.#136       // dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-   #35 = Methodref          #63.#137      // dev/langchain4j/data/message/UserMessageTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #36 = Methodref          #138.#139     // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #37 = Class              #140          // dev/langchain4j/data/message/TextContent\n-   #38 = Methodref          #37.#123      // dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n-   #39 = Methodref          #63.#141      // dev/langchain4j/data/message/UserMessageTest.listOf:([Ljava/lang/Object;)Ljava/util/List;\n-   #40 = Methodref          #2.#142       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n-   #41 = String             #143          // abc\n-   #42 = String             #144          // def\n-   #43 = Methodref          #138.#145     // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #44 = Methodref          #2.#146       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n-   #45 = Class              #147          // java/lang/RuntimeException\n-   #46 = Methodref          #63.#148      // dev/langchain4j/data/message/UserMessageTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #47 = InvokeDynamic      #0:#153       // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #48 = Methodref          #154.#155     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #49 = String             #156          // Expecting single text content, but got:\n-   #50 = Methodref          #157.#158     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #51 = Methodref          #2.#159       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #52 = Methodref          #2.#160       // dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-   #53 = Methodref          #2.#161       // dev/langchain4j/data/message/UserMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-   #54 = Methodref          #2.#162       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #55 = Methodref          #2.#163       // dev/langchain4j/data/message/UserMessage.userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-   #56 = Methodref          #2.#164       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-   #57 = Methodref          #2.#165       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #58 = Methodref          #2.#166       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-   #59 = Methodref          #2.#167       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-   #60 = Methodref          #2.#168       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #61 = Methodref          #2.#169       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-   #62 = Methodref          #2.#170       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-   #63 = Class              #171          // dev/langchain4j/data/message/UserMessageTest\n-   #64 = Class              #172          // org/assertj/core/api/WithAssertions\n-   #65 = Utf8               <init>\n-   #66 = Utf8               ()V\n-   #67 = Utf8               Code\n-   #68 = Utf8               LineNumberTable\n-   #69 = Utf8               LocalVariableTable\n-   #70 = Utf8               this\n-   #71 = Utf8               Ldev/langchain4j/data/message/UserMessageTest;\n-   #72 = Utf8               test_accessors\n-   #73 = Utf8               m\n-   #74 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-   #75 = Utf8               RuntimeVisibleAnnotations\n-   #76 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #77 = Utf8               test_equals_hashCode\n-   #78 = Utf8               m1\n-   #79 = Utf8               m2\n-   #80 = Utf8               m3\n-   #81 = Utf8               m4\n-   #82 = Utf8               listOf\n-   #83 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-   #84 = Utf8               elements\n-   #85 = Utf8               [Ljava/lang/Object;\n-   #86 = Utf8               LocalVariableTypeTable\n-   #87 = Utf8               [TT;\n-   #88 = Utf8               Signature\n-   #89 = Utf8               <T:Ljava/lang/Object;>([TT;)Ljava/util/List<TT;>;\n-   #90 = Utf8               Ljava/lang/SafeVarargs;\n-   #91 = Utf8               test_hasSingleText\n-   #92 = Utf8               test_builders\n-   #93 = Utf8               lambda$test_hasSingleText$0\n-   #94 = Utf8               Exceptions\n-   #95 = Class              #173          // java/lang/Throwable\n-   #96 = Utf8               SourceFile\n-   #97 = Utf8               UserMessageTest.java\n-   #98 = NameAndType        #65:#66       // \"<init>\":()V\n-   #99 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #100 = Utf8               name\n-  #101 = Utf8               text\n-  #102 = NameAndType        #65:#174      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-  #103 = NameAndType        #175:#176     // type:()Ldev/langchain4j/data/message/ChatMessageType;\n-  #104 = NameAndType        #177:#178     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #105 = Class              #179          // dev/langchain4j/data/message/ChatMessageType\n-  #106 = NameAndType        #180:#181     // USER:Ldev/langchain4j/data/message/ChatMessageType;\n-  #107 = Class              #182          // org/assertj/core/api/AbstractComparableAssert\n-  #108 = NameAndType        #183:#184     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #109 = NameAndType        #101:#185     // text:()Ljava/lang/String;\n-  #110 = NameAndType        #177:#186     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #111 = Class              #187          // org/assertj/core/api/AbstractStringAssert\n-  #112 = NameAndType        #183:#186     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #113 = NameAndType        #188:#189     // contents:()Ljava/util/List;\n-  #114 = NameAndType        #177:#190     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #115 = Utf8               dev/langchain4j/data/message/Content\n-  #116 = NameAndType        #191:#192     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n-  #117 = Class              #193          // org/assertj/core/api/ListAssert\n-  #118 = NameAndType        #194:#195     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #119 = NameAndType        #100:#185     // name:()Ljava/lang/String;\n-  #120 = NameAndType        #177:#196     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #121 = Utf8               UserMessage { name = \\\"name\\\" contents = [TextContent { text = \\\"text\\\" }] }\n-  #122 = NameAndType        #197:#198     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #123 = NameAndType        #65:#199      // \"<init>\":(Ljava/lang/String;)V\n-  #124 = Utf8               org/assertj/core/api/ObjectAssert\n-  #125 = NameAndType        #200:#184     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #126 = Utf8               java/lang/Object\n-  #127 = NameAndType        #201:#184     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #128 = NameAndType        #202:#184     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #129 = Utf8               foo\n-  #130 = Utf8               java/util/ArrayList\n-  #131 = Class              #203          // java/util/Arrays\n-  #132 = NameAndType        #204:#83      // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #133 = NameAndType        #65:#205      // \"<init>\":(Ljava/util/Collection;)V\n-  #134 = Class              #206          // java/util/Collections\n-  #135 = NameAndType        #207:#208     // unmodifiableList:(Ljava/util/List;)Ljava/util/List;\n-  #136 = NameAndType        #209:#210     // hasSingleText:()Z\n-  #137 = NameAndType        #177:#211     // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #138 = Class              #212          // org/assertj/core/api/AbstractBooleanAssert\n-  #139 = NameAndType        #213:#214     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #140 = Utf8               dev/langchain4j/data/message/TextContent\n-  #141 = NameAndType        #82:#83       // listOf:([Ljava/lang/Object;)Ljava/util/List;\n-  #142 = NameAndType        #65:#215      // \"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n-  #143 = Utf8               abc\n-  #144 = Utf8               def\n-  #145 = NameAndType        #216:#214     // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #146 = NameAndType        #65:#217      // \"<init>\":(Ljava/util/List;)V\n-  #147 = Utf8               java/lang/RuntimeException\n-  #148 = NameAndType        #218:#219     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #149 = Utf8               BootstrapMethods\n-  #150 = MethodHandle       6:#220        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #151 = MethodType         #66           //  ()V\n-  #152 = MethodHandle       6:#221        // REF_invokeStatic dev/langchain4j/data/message/UserMessageTest.lambda$test_hasSingleText$0:()V\n-  #153 = NameAndType        #222:#226     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #154 = Class              #227          // org/assertj/core/api/ThrowableTypeAssert\n-  #155 = NameAndType        #228:#229     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #156 = Utf8               Expecting single text content, but got:\n-  #157 = Class              #230          // org/assertj/core/api/ThrowableAssertAlternative\n-  #158 = NameAndType        #231:#232     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #159 = NameAndType        #191:#233     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #160 = NameAndType        #191:#234     // from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #161 = NameAndType        #191:#235     // from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-  #162 = NameAndType        #236:#233     // userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #163 = NameAndType        #236:#234     // userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #164 = NameAndType        #236:#235     // userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-  #165 = NameAndType        #191:#237     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #166 = NameAndType        #191:#238     // from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #167 = NameAndType        #191:#239     // from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-  #168 = NameAndType        #236:#237     // userMessage:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #169 = NameAndType        #236:#238     // userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #170 = NameAndType        #236:#239     // userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-  #171 = Utf8               dev/langchain4j/data/message/UserMessageTest\n-  #172 = Utf8               org/assertj/core/api/WithAssertions\n-  #173 = Utf8               java/lang/Throwable\n-  #174 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V\n-  #175 = Utf8               type\n-  #176 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n-  #177 = Utf8               assertThat\n-  #178 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #179 = Utf8               dev/langchain4j/data/message/ChatMessageType\n-  #180 = Utf8               USER\n-  #181 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n-  #182 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #183 = Utf8               isEqualTo\n-  #184 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #185 = Utf8               ()Ljava/lang/String;\n-  #186 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #187 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #188 = Utf8               contents\n-  #189 = Utf8               ()Ljava/util/List;\n-  #190 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #191 = Utf8               from\n-  #192 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n-  #193 = Utf8               org/assertj/core/api/ListAssert\n-  #194 = Utf8               containsExactly\n-  #195 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #196 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #197 = Utf8               hasToString\n-  #198 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #199 = Utf8               (Ljava/lang/String;)V\n-  #200 = Utf8               isNotEqualTo\n-  #201 = Utf8               hasSameHashCodeAs\n-  #202 = Utf8               doesNotHaveSameHashCodeAs\n-  #203 = Utf8               java/util/Arrays\n-  #204 = Utf8               asList\n-  #205 = Utf8               (Ljava/util/Collection;)V\n-  #206 = Utf8               java/util/Collections\n-  #207 = Utf8               unmodifiableList\n-  #208 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #209 = Utf8               hasSingleText\n-  #210 = Utf8               ()Z\n-  #211 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #212 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n-  #213 = Utf8               isTrue\n-  #214 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #215 = Utf8               (Ljava/lang/String;Ljava/util/List;)V\n-  #216 = Utf8               isFalse\n-  #217 = Utf8               (Ljava/util/List;)V\n-  #218 = Utf8               assertThatExceptionOfType\n-  #219 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #220 = Methodref          #240.#241     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #221 = Methodref          #63.#242      // dev/langchain4j/data/message/UserMessageTest.lambda$test_hasSingleText$0:()V\n-  #222 = Utf8               call\n-  #223 = Class              #244          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #224 = Utf8               ThrowingCallable\n-  #225 = Utf8               InnerClasses\n-  #226 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #227 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #228 = Utf8               isThrownBy\n-  #229 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #230 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #231 = Utf8               withMessageContaining\n-  #232 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #233 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #234 = Utf8               ([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #235 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-  #236 = Utf8               userMessage\n-  #237 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #238 = Utf8               (Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-  #239 = Utf8               (Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-  #240 = Class              #245          // java/lang/invoke/LambdaMetafactory\n-  #241 = NameAndType        #246:#249     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #242 = NameAndType        #93:#66       // lambda$test_hasSingleText$0:()V\n-  #243 = Class              #250          // org/assertj/core/api/ThrowableAssert\n-  #244 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #245 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #246 = Utf8               metafactory\n-  #247 = Class              #252          // java/lang/invoke/MethodHandles$Lookup\n-  #248 = Utf8               Lookup\n-  #249 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #250 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #251 = Class              #253          // java/lang/invoke/MethodHandles\n-  #252 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #253 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/data/message/UserMessage\n+    #8 = Utf8               dev/langchain4j/data/message/UserMessage\n+    #9 = String             #10           // name\n+   #10 = Utf8               name\n+   #11 = String             #12           // text\n+   #12 = Utf8               text\n+   #13 = Methodref          #7.#14        // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+   #14 = NameAndType        #5:#15        // \"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+   #15 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V\n+   #16 = Methodref          #7.#17        // dev/langchain4j/data/message/UserMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+   #17 = NameAndType        #18:#19       // type:()Ldev/langchain4j/data/message/ChatMessageType;\n+   #18 = Utf8               type\n+   #19 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n+   #20 = Methodref          #21.#22       // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #21 = Class              #23           // dev/langchain4j/data/message/UserMessageTest\n+   #22 = NameAndType        #24:#25       // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #23 = Utf8               dev/langchain4j/data/message/UserMessageTest\n+   #24 = Utf8               assertThat\n+   #25 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #26 = Fieldref           #27.#28       // dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n+   #27 = Class              #29           // dev/langchain4j/data/message/ChatMessageType\n+   #28 = NameAndType        #30:#31       // USER:Ldev/langchain4j/data/message/ChatMessageType;\n+   #29 = Utf8               dev/langchain4j/data/message/ChatMessageType\n+   #30 = Utf8               USER\n+   #31 = Utf8               Ldev/langchain4j/data/message/ChatMessageType;\n+   #32 = Methodref          #33.#34       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #33 = Class              #35           // org/assertj/core/api/AbstractComparableAssert\n+   #34 = NameAndType        #36:#37       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #35 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+   #36 = Utf8               isEqualTo\n+   #37 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #38 = Methodref          #7.#39        // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+   #39 = NameAndType        #12:#40       // text:()Ljava/lang/String;\n+   #40 = Utf8               ()Ljava/lang/String;\n+   #41 = Methodref          #21.#42       // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #42 = NameAndType        #24:#43       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #43 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #44 = Methodref          #45.#46       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #45 = Class              #47           // org/assertj/core/api/AbstractStringAssert\n+   #46 = NameAndType        #36:#43       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #47 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #48 = Methodref          #7.#49        // dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n+   #49 = NameAndType        #50:#51       // contents:()Ljava/util/List;\n+   #50 = Utf8               contents\n+   #51 = Utf8               ()Ljava/util/List;\n+   #52 = Methodref          #21.#53       // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #53 = NameAndType        #24:#54       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #54 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #55 = Class              #56           // dev/langchain4j/data/message/Content\n+   #56 = Utf8               dev/langchain4j/data/message/Content\n+   #57 = Methodref          #58.#59       // dev/langchain4j/data/message/TextContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n+   #58 = Class              #60           // dev/langchain4j/data/message/TextContent\n+   #59 = NameAndType        #61:#62       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n+   #60 = Utf8               dev/langchain4j/data/message/TextContent\n+   #61 = Utf8               from\n+   #62 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n+   #63 = Methodref          #64.#65       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #64 = Class              #66           // org/assertj/core/api/ListAssert\n+   #65 = NameAndType        #67:#68       // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #66 = Utf8               org/assertj/core/api/ListAssert\n+   #67 = Utf8               containsExactly\n+   #68 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #69 = Methodref          #7.#70        // dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n+   #70 = NameAndType        #10:#40       // name:()Ljava/lang/String;\n+   #71 = Methodref          #21.#72       // dev/langchain4j/data/message/UserMessageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #72 = NameAndType        #24:#73       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #73 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #74 = String             #75           // UserMessage { name = \\\"name\\\" contents = [TextContent { text = \\\"text\\\" }] }\n+   #75 = Utf8               UserMessage { name = \\\"name\\\" contents = [TextContent { text = \\\"text\\\" }] }\n+   #76 = Methodref          #77.#78       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = Class              #79           // org/assertj/core/api/ObjectAssert\n+   #78 = NameAndType        #80:#81       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #79 = Utf8               org/assertj/core/api/ObjectAssert\n+   #80 = Utf8               hasToString\n+   #81 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #82 = Methodref          #7.#83        // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+   #83 = NameAndType        #5:#84        // \"<init>\":(Ljava/lang/String;)V\n+   #84 = Utf8               (Ljava/lang/String;)V\n+   #85 = Methodref          #77.#34       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #86 = Methodref          #77.#87       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #87 = NameAndType        #88:#37       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #88 = Utf8               isNotEqualTo\n+   #89 = Methodref          #77.#90       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #90 = NameAndType        #91:#37       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #91 = Utf8               hasSameHashCodeAs\n+   #92 = Methodref          #77.#93       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #93 = NameAndType        #94:#37       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = Utf8               doesNotHaveSameHashCodeAs\n+   #95 = String             #96           // foo\n+   #96 = Utf8               foo\n+   #97 = Class              #98           // java/util/ArrayList\n+   #98 = Utf8               java/util/ArrayList\n+   #99 = Methodref          #100.#101     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #100 = Class              #102          // java/util/Arrays\n+  #101 = NameAndType        #103:#104     // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #102 = Utf8               java/util/Arrays\n+  #103 = Utf8               asList\n+  #104 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #105 = Methodref          #97.#106      // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+  #106 = NameAndType        #5:#107       // \"<init>\":(Ljava/util/Collection;)V\n+  #107 = Utf8               (Ljava/util/Collection;)V\n+  #108 = Methodref          #109.#110     // java/util/Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;\n+  #109 = Class              #111          // java/util/Collections\n+  #110 = NameAndType        #112:#113     // unmodifiableList:(Ljava/util/List;)Ljava/util/List;\n+  #111 = Utf8               java/util/Collections\n+  #112 = Utf8               unmodifiableList\n+  #113 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+  #114 = Methodref          #7.#115       // dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+  #115 = NameAndType        #116:#117     // hasSingleText:()Z\n+  #116 = Utf8               hasSingleText\n+  #117 = Utf8               ()Z\n+  #118 = Methodref          #21.#119      // dev/langchain4j/data/message/UserMessageTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #119 = NameAndType        #24:#120      // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #120 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #121 = Methodref          #122.#123     // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #122 = Class              #124          // org/assertj/core/api/AbstractBooleanAssert\n+  #123 = NameAndType        #125:#126     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #124 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n+  #125 = Utf8               isTrue\n+  #126 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #127 = Methodref          #58.#83       // dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+  #128 = Methodref          #21.#129      // dev/langchain4j/data/message/UserMessageTest.listOf:([Ljava/lang/Object;)Ljava/util/List;\n+  #129 = NameAndType        #130:#104     // listOf:([Ljava/lang/Object;)Ljava/util/List;\n+  #130 = Utf8               listOf\n+  #131 = Methodref          #7.#132       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n+  #132 = NameAndType        #5:#133       // \"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n+  #133 = Utf8               (Ljava/lang/String;Ljava/util/List;)V\n+  #134 = String             #135          // abc\n+  #135 = Utf8               abc\n+  #136 = String             #137          // def\n+  #137 = Utf8               def\n+  #138 = Methodref          #122.#139     // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #139 = NameAndType        #140:#126     // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+  #140 = Utf8               isFalse\n+  #141 = Methodref          #7.#142       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n+  #142 = NameAndType        #5:#143       // \"<init>\":(Ljava/util/List;)V\n+  #143 = Utf8               (Ljava/util/List;)V\n+  #144 = Class              #145          // java/lang/RuntimeException\n+  #145 = Utf8               java/lang/RuntimeException\n+  #146 = Methodref          #21.#147      // dev/langchain4j/data/message/UserMessageTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #147 = NameAndType        #148:#149     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #148 = Utf8               assertThatExceptionOfType\n+  #149 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #150 = InvokeDynamic      #0:#151       // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #151 = NameAndType        #152:#153     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #152 = Utf8               call\n+  #153 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #154 = Methodref          #155.#156     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #155 = Class              #157          // org/assertj/core/api/ThrowableTypeAssert\n+  #156 = NameAndType        #158:#159     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #157 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+  #158 = Utf8               isThrownBy\n+  #159 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #160 = String             #161          // Expecting single text content, but got:\n+  #161 = Utf8               Expecting single text content, but got:\n+  #162 = Methodref          #163.#164     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #163 = Class              #165          // org/assertj/core/api/ThrowableAssertAlternative\n+  #164 = NameAndType        #166:#167     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #165 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+  #166 = Utf8               withMessageContaining\n+  #167 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #168 = Methodref          #7.#169       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #169 = NameAndType        #61:#170      // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #170 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #171 = Methodref          #7.#172       // dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #172 = NameAndType        #61:#173      // from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #173 = Utf8               ([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #174 = Methodref          #7.#175       // dev/langchain4j/data/message/UserMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #175 = NameAndType        #61:#176      // from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #176 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #177 = Methodref          #7.#178       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #178 = NameAndType        #179:#170     // userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #179 = Utf8               userMessage\n+  #180 = Methodref          #7.#181       // dev/langchain4j/data/message/UserMessage.userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #181 = NameAndType        #179:#173     // userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #182 = Methodref          #7.#183       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #183 = NameAndType        #179:#176     // userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #184 = Methodref          #7.#185       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #185 = NameAndType        #61:#186      // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #186 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #187 = Methodref          #7.#188       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #188 = NameAndType        #61:#189      // from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #189 = Utf8               (Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #190 = Methodref          #7.#191       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #191 = NameAndType        #61:#192      // from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #192 = Utf8               (Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #193 = Methodref          #7.#194       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #194 = NameAndType        #179:#186     // userMessage:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #195 = Methodref          #7.#196       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #196 = NameAndType        #179:#189     // userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+  #197 = Methodref          #7.#198       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #198 = NameAndType        #179:#192     // userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+  #199 = Class              #200          // org/assertj/core/api/WithAssertions\n+  #200 = Utf8               org/assertj/core/api/WithAssertions\n+  #201 = Utf8               Code\n+  #202 = Utf8               LineNumberTable\n+  #203 = Utf8               LocalVariableTable\n+  #204 = Utf8               this\n+  #205 = Utf8               Ldev/langchain4j/data/message/UserMessageTest;\n+  #206 = Utf8               test_accessors\n+  #207 = Utf8               m\n+  #208 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+  #209 = Utf8               RuntimeVisibleAnnotations\n+  #210 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #211 = Utf8               test_equals_hashCode\n+  #212 = Utf8               m1\n+  #213 = Utf8               m2\n+  #214 = Utf8               m3\n+  #215 = Utf8               m4\n+  #216 = Utf8               elements\n+  #217 = Utf8               [Ljava/lang/Object;\n+  #218 = Utf8               LocalVariableTypeTable\n+  #219 = Utf8               [TT;\n+  #220 = Utf8               Signature\n+  #221 = Utf8               <T:Ljava/lang/Object;>([TT;)Ljava/util/List<TT;>;\n+  #222 = Utf8               Ljava/lang/SafeVarargs;\n+  #223 = Utf8               test_hasSingleText\n+  #224 = Utf8               test_builders\n+  #225 = Utf8               lambda$test_hasSingleText$0\n+  #226 = Utf8               Exceptions\n+  #227 = Class              #228          // java/lang/Throwable\n+  #228 = Utf8               java/lang/Throwable\n+  #229 = Utf8               SourceFile\n+  #230 = Utf8               UserMessageTest.java\n+  #231 = Utf8               BootstrapMethods\n+  #232 = MethodHandle       6:#233        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #233 = Methodref          #234.#235     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #234 = Class              #236          // java/lang/invoke/LambdaMetafactory\n+  #235 = NameAndType        #237:#238     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #236 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #237 = Utf8               metafactory\n+  #238 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #239 = MethodType         #6            //  ()V\n+  #240 = MethodHandle       6:#241        // REF_invokeStatic dev/langchain4j/data/message/UserMessageTest.lambda$test_hasSingleText$0:()V\n+  #241 = Methodref          #21.#242      // dev/langchain4j/data/message/UserMessageTest.lambda$test_hasSingleText$0:()V\n+  #242 = NameAndType        #225:#6       // lambda$test_hasSingleText$0:()V\n+  #243 = Utf8               InnerClasses\n+  #244 = Class              #245          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #245 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #246 = Class              #247          // org/assertj/core/api/ThrowableAssert\n+  #247 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #248 = Utf8               ThrowingCallable\n+  #249 = Class              #250          // java/lang/invoke/MethodHandles$Lookup\n+  #250 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #251 = Class              #252          // java/lang/invoke/MethodHandles\n+  #252 = Utf8               java/lang/invoke/MethodHandles\n+  #253 = Utf8               Lookup\n {\n   dev.langchain4j.data.message.UserMessageTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -277,59 +277,59 @@\n             0       5     0  this   Ldev/langchain4j/data/message/UserMessageTest;\n \n   public void test_accessors();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/UserMessage\n          3: dup\n-         4: ldc           #3                  // String name\n-         6: ldc           #4                  // String text\n-         8: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+         4: ldc           #9                  // String name\n+         6: ldc           #11                 // String text\n+         8: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n         11: astore_1\n         12: aload_0\n         13: aload_1\n-        14: invokevirtual #6                  // Method dev/langchain4j/data/message/UserMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-        17: invokevirtual #7                  // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        20: getstatic     #8                  // Field dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n-        23: invokevirtual #9                  // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        14: invokevirtual #16                 // Method dev/langchain4j/data/message/UserMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+        17: invokevirtual #20                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        20: getstatic     #26                 // Field dev/langchain4j/data/message/ChatMessageType.USER:Ldev/langchain4j/data/message/ChatMessageType;\n+        23: invokevirtual #32                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         26: pop\n         27: aload_0\n         28: aload_1\n-        29: invokevirtual #10                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        32: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        35: ldc           #4                  // String text\n-        37: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        29: invokevirtual #38                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        32: invokevirtual #41                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        35: ldc           #11                 // String text\n+        37: invokevirtual #44                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         40: pop\n         41: aload_0\n         42: aload_1\n-        43: invokevirtual #13                 // Method dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n-        46: invokevirtual #14                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        43: invokevirtual #48                 // Method dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n+        46: invokevirtual #52                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         49: iconst_1\n-        50: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+        50: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         53: dup\n         54: iconst_0\n-        55: ldc           #4                  // String text\n-        57: invokestatic  #16                 // Method dev/langchain4j/data/message/TextContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n+        55: ldc           #11                 // String text\n+        57: invokestatic  #57                 // Method dev/langchain4j/data/message/TextContent.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/TextContent;\n         60: aastore\n-        61: invokevirtual #17                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        61: invokevirtual #63                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         64: pop\n         65: aload_0\n         66: aload_1\n-        67: invokevirtual #18                 // Method dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n-        70: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        73: ldc           #3                  // String name\n-        75: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        67: invokevirtual #69                 // Method dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n+        70: invokevirtual #41                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        73: ldc           #9                  // String name\n+        75: invokevirtual #44                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         78: pop\n         79: aload_0\n         80: aload_1\n-        81: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        84: ldc           #20                 // String UserMessage { name = \\\"name\\\" contents = [TextContent { text = \\\"text\\\" }] }\n-        86: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        81: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        84: ldc           #74                 // String UserMessage { name = \\\"name\\\" contents = [TextContent { text = \\\"text\\\" }] }\n+        86: invokevirtual #76                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         89: pop\n         90: return\n       LineNumberTable:\n         line 15: 0\n         line 16: 12\n         line 17: 27\n         line 18: 41\n@@ -337,103 +337,103 @@\n         line 20: 79\n         line 21: 90\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      91     0  this   Ldev/langchain4j/data/message/UserMessageTest;\n            12      79     1     m   Ldev/langchain4j/data/message/UserMessage;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #210()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=5, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/UserMessage\n          3: dup\n-         4: ldc           #3                  // String name\n-         6: ldc           #4                  // String text\n-         8: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+         4: ldc           #9                  // String name\n+         6: ldc           #11                 // String text\n+         8: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n         11: astore_1\n-        12: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        12: new           #7                  // class dev/langchain4j/data/message/UserMessage\n         15: dup\n-        16: ldc           #3                  // String name\n-        18: ldc           #4                  // String text\n-        20: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+        16: ldc           #9                  // String name\n+        18: ldc           #11                 // String text\n+        20: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n         23: astore_2\n-        24: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        24: new           #7                  // class dev/langchain4j/data/message/UserMessage\n         27: dup\n-        28: ldc           #4                  // String text\n-        30: invokespecial #22                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        28: ldc           #11                 // String text\n+        30: invokespecial #82                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n         33: astore_3\n-        34: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        34: new           #7                  // class dev/langchain4j/data/message/UserMessage\n         37: dup\n-        38: ldc           #4                  // String text\n-        40: invokespecial #22                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        38: ldc           #11                 // String text\n+        40: invokespecial #82                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n         43: astore        4\n         45: aload_0\n         46: aload_1\n-        47: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        47: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         50: aload_1\n-        51: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        54: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        51: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        54: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         57: aconst_null\n-        58: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        61: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-        64: new           #26                 // class java/lang/Object\n+        58: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        61: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+        64: new           #2                  // class java/lang/Object\n         67: dup\n         68: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        71: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        74: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        71: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        74: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         77: aload_2\n-        78: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        81: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        78: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        81: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         84: aload_2\n-        85: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        88: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        85: invokevirtual #89                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        88: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         91: aload_3\n-        92: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        95: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        92: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        95: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         98: aload_3\n-        99: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       102: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       105: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        99: invokevirtual #92                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       102: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       105: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        108: dup\n-       109: ldc           #29                 // String foo\n-       111: ldc           #4                  // String text\n-       113: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-       116: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       119: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       122: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       109: ldc           #95                 // String foo\n+       111: ldc           #11                 // String text\n+       113: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+       116: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       119: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       122: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        125: dup\n-       126: ldc           #3                  // String name\n-       128: ldc           #29                 // String foo\n-       130: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-       133: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       126: ldc           #9                  // String name\n+       128: ldc           #95                 // String foo\n+       130: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+       133: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        136: pop\n        137: aload_0\n        138: aload_3\n-       139: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       139: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        142: aload_3\n-       143: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       146: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       143: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       146: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        149: aconst_null\n-       150: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       153: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       156: new           #26                 // class java/lang/Object\n+       150: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       153: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       156: new           #2                  // class java/lang/Object\n        159: dup\n        160: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-       163: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       166: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       163: invokevirtual #86                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       166: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        169: aload         4\n-       171: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       174: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       171: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       174: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        177: aload         4\n-       179: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       179: invokevirtual #89                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        182: pop\n        183: return\n       LineNumberTable:\n         line 25: 0\n         line 26: 12\n         line 27: 24\n         line 28: 34\n@@ -458,171 +458,171 @@\n         Start  Length  Slot  Name   Signature\n             0     184     0  this   Ldev/langchain4j/data/message/UserMessageTest;\n            12     172     1    m1   Ldev/langchain4j/data/message/UserMessage;\n            24     160     2    m2   Ldev/langchain4j/data/message/UserMessage;\n            34     150     3    m3   Ldev/langchain4j/data/message/UserMessage;\n            45     139     4    m4   Ldev/langchain4j/data/message/UserMessage;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #210()\n         org.junit.jupiter.api.Test\n \n   public static <T extends java.lang.Object> java.util.List<T> listOf(T...);\n     descriptor: ([Ljava/lang/Object;)Ljava/util/List;\n     flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #30                 // class java/util/ArrayList\n+         0: new           #97                 // class java/util/ArrayList\n          3: dup\n          4: aload_0\n-         5: invokestatic  #31                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-         8: invokespecial #32                 // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n-        11: invokestatic  #33                 // Method java/util/Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;\n+         5: invokestatic  #99                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+         8: invokespecial #105                // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+        11: invokestatic  #108                // Method java/util/Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;\n         14: areturn\n       LineNumberTable:\n         line 51: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      15     0 elements   [Ljava/lang/Object;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      15     0 elements   [TT;\n-    Signature: #89                          // <T:Ljava/lang/Object;>([TT;)Ljava/util/List<TT;>;\n+    Signature: #221                         // <T:Ljava/lang/Object;>([TT;)Ljava/util/List<TT;>;\n     RuntimeVisibleAnnotations:\n-      0: #90()\n+      0: #222()\n         java.lang.SafeVarargs\n \n   public void test_hasSingleText();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=10, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+         1: new           #7                  // class dev/langchain4j/data/message/UserMessage\n          4: dup\n-         5: ldc           #4                  // String text\n-         7: invokespecial #22                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        10: invokevirtual #34                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-        13: invokevirtual #35                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        16: invokevirtual #36                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+         5: ldc           #11                 // String text\n+         7: invokespecial #82                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        10: invokevirtual #114                // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+        13: invokevirtual #118                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        16: invokevirtual #121                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         19: pop\n         20: aload_0\n-        21: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        21: new           #7                  // class dev/langchain4j/data/message/UserMessage\n         24: dup\n-        25: ldc           #3                  // String name\n-        27: ldc           #4                  // String text\n-        29: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-        32: invokevirtual #34                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-        35: invokevirtual #35                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        38: invokevirtual #36                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        25: ldc           #9                  // String name\n+        27: ldc           #11                 // String text\n+        29: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+        32: invokevirtual #114                // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+        35: invokevirtual #118                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        38: invokevirtual #121                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         41: pop\n         42: aload_0\n-        43: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        43: new           #7                  // class dev/langchain4j/data/message/UserMessage\n         46: dup\n-        47: ldc           #3                  // String name\n+        47: ldc           #9                  // String name\n         49: iconst_1\n-        50: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+        50: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         53: dup\n         54: iconst_0\n-        55: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        55: new           #58                 // class dev/langchain4j/data/message/TextContent\n         58: dup\n-        59: ldc           #4                  // String text\n-        61: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        59: ldc           #11                 // String text\n+        61: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n         64: aastore\n-        65: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-        68: invokespecial #40                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n-        71: invokevirtual #34                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-        74: invokevirtual #35                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        77: invokevirtual #36                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        65: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+        68: invokespecial #131                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n+        71: invokevirtual #114                // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+        74: invokevirtual #118                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        77: invokevirtual #121                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         80: pop\n         81: aload_0\n-        82: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+        82: new           #7                  // class dev/langchain4j/data/message/UserMessage\n         85: dup\n-        86: ldc           #3                  // String name\n+        86: ldc           #9                  // String name\n         88: iconst_2\n-        89: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+        89: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         92: dup\n         93: iconst_0\n-        94: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        94: new           #58                 // class dev/langchain4j/data/message/TextContent\n         97: dup\n-        98: ldc           #41                 // String abc\n-       100: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        98: ldc           #134                // String abc\n+       100: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        103: aastore\n        104: dup\n        105: iconst_1\n-       106: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       106: new           #58                 // class dev/langchain4j/data/message/TextContent\n        109: dup\n-       110: ldc           #42                 // String def\n-       112: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       110: ldc           #136                // String def\n+       112: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        115: aastore\n-       116: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       119: invokespecial #40                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n-       122: invokevirtual #34                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-       125: invokevirtual #35                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       128: invokevirtual #43                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       116: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       119: invokespecial #131                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n+       122: invokevirtual #114                // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+       125: invokevirtual #118                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       128: invokevirtual #138                // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        131: pop\n        132: aload_0\n-       133: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       133: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        136: dup\n        137: iconst_1\n-       138: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       138: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        141: dup\n        142: iconst_0\n-       143: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       143: new           #58                 // class dev/langchain4j/data/message/TextContent\n        146: dup\n-       147: ldc           #4                  // String text\n-       149: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       147: ldc           #11                 // String text\n+       149: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        152: aastore\n-       153: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       156: invokespecial #44                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n-       159: invokevirtual #34                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-       162: invokevirtual #35                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       165: invokevirtual #36                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       153: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       156: invokespecial #141                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n+       159: invokevirtual #114                // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+       162: invokevirtual #118                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       165: invokevirtual #121                // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        168: pop\n        169: aload_0\n-       170: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       170: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        173: dup\n        174: iconst_2\n-       175: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       175: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        178: dup\n        179: iconst_0\n-       180: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       180: new           #58                 // class dev/langchain4j/data/message/TextContent\n        183: dup\n-       184: ldc           #41                 // String abc\n-       186: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       184: ldc           #134                // String abc\n+       186: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        189: aastore\n        190: dup\n        191: iconst_1\n-       192: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       192: new           #58                 // class dev/langchain4j/data/message/TextContent\n        195: dup\n-       196: ldc           #42                 // String def\n-       198: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       196: ldc           #136                // String def\n+       198: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        201: aastore\n-       202: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       205: invokespecial #44                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n-       208: invokevirtual #34                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-       211: invokevirtual #35                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       214: invokevirtual #43                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       202: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       205: invokespecial #141                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n+       208: invokevirtual #114                // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+       211: invokevirtual #118                // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       214: invokevirtual #138                // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        217: pop\n        218: aload_0\n-       219: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       219: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        222: dup\n-       223: ldc           #4                  // String text\n-       225: invokespecial #22                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-       228: invokevirtual #10                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-       231: invokevirtual #11                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       234: ldc           #4                  // String text\n-       236: invokevirtual #12                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       223: ldc           #11                 // String text\n+       225: invokespecial #82                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+       228: invokevirtual #38                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+       231: invokevirtual #41                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       234: ldc           #11                 // String text\n+       236: invokevirtual #44                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        239: pop\n        240: aload_0\n-       241: ldc           #45                 // class java/lang/RuntimeException\n-       243: invokevirtual #46                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-       246: invokedynamic #47,  0             // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-       251: invokevirtual #48                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       254: ldc           #49                 // String Expecting single text content, but got:\n-       256: invokevirtual #50                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       241: ldc           #144                // class java/lang/RuntimeException\n+       243: invokevirtual #146                // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+       246: invokedynamic #150,  0            // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+       251: invokevirtual #154                // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       254: ldc           #160                // String Expecting single text content, but got:\n+       256: invokevirtual #162                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n        259: pop\n        260: return\n       LineNumberTable:\n         line 56: 0\n         line 57: 20\n         line 58: 42\n         line 59: 81\n@@ -633,361 +633,361 @@\n         line 66: 251\n         line 67: 256\n         line 68: 260\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     261     0  this   Ldev/langchain4j/data/message/UserMessageTest;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #210()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=10, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+         1: new           #7                  // class dev/langchain4j/data/message/UserMessage\n          4: dup\n-         5: ldc           #4                  // String text\n-         7: invokespecial #22                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        10: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        13: ldc           #4                  // String text\n-        15: invokestatic  #51                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-        18: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        21: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+         5: ldc           #11                 // String text\n+         7: invokespecial #82                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        10: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        13: ldc           #11                 // String text\n+        15: invokestatic  #168                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        18: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        21: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         24: iconst_1\n-        25: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+        25: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         28: dup\n         29: iconst_0\n-        30: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        30: new           #58                 // class dev/langchain4j/data/message/TextContent\n         33: dup\n-        34: ldc           #4                  // String text\n-        36: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        34: ldc           #11                 // String text\n+        36: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n         39: aastore\n-        40: invokestatic  #52                 // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-        43: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        46: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        40: invokestatic  #171                // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+        43: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        46: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         49: iconst_1\n-        50: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+        50: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         53: dup\n         54: iconst_0\n-        55: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        55: new           #58                 // class dev/langchain4j/data/message/TextContent\n         58: dup\n-        59: ldc           #4                  // String text\n-        61: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        59: ldc           #11                 // String text\n+        61: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n         64: aastore\n-        65: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-        68: invokestatic  #53                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-        71: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        74: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-        77: ldc           #4                  // String text\n-        79: invokestatic  #54                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-        82: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        85: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+        65: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+        68: invokestatic  #174                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+        71: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        74: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+        77: ldc           #11                 // String text\n+        79: invokestatic  #177                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        82: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        85: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n         88: iconst_1\n-        89: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+        89: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         92: dup\n         93: iconst_0\n-        94: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        94: new           #58                 // class dev/langchain4j/data/message/TextContent\n         97: dup\n-        98: ldc           #4                  // String text\n-       100: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        98: ldc           #11                 // String text\n+       100: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        103: aastore\n-       104: invokestatic  #55                 // Method dev/langchain4j/data/message/UserMessage.userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       107: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       110: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       104: invokestatic  #180                // Method dev/langchain4j/data/message/UserMessage.userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       107: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       110: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        113: iconst_1\n-       114: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       114: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        117: dup\n        118: iconst_0\n-       119: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       119: new           #58                 // class dev/langchain4j/data/message/TextContent\n        122: dup\n-       123: ldc           #4                  // String text\n-       125: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       123: ldc           #11                 // String text\n+       125: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        128: aastore\n-       129: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       132: invokestatic  #56                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       135: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       129: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       132: invokestatic  #182                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       135: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        138: pop\n        139: aload_0\n-       140: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       140: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        143: dup\n-       144: ldc           #3                  // String name\n-       146: ldc           #4                  // String text\n-       148: invokespecial #5                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n-       151: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       154: ldc           #3                  // String name\n-       156: ldc           #4                  // String text\n-       158: invokestatic  #57                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-       161: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       164: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       167: ldc           #3                  // String name\n+       144: ldc           #9                  // String name\n+       146: ldc           #11                 // String text\n+       148: invokespecial #13                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/lang/String;)V\n+       151: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       154: ldc           #9                  // String name\n+       156: ldc           #11                 // String text\n+       158: invokestatic  #184                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+       161: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       164: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       167: ldc           #9                  // String name\n        169: iconst_1\n-       170: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       170: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        173: dup\n        174: iconst_0\n-       175: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       175: new           #58                 // class dev/langchain4j/data/message/TextContent\n        178: dup\n-       179: ldc           #4                  // String text\n-       181: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       179: ldc           #11                 // String text\n+       181: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        184: aastore\n-       185: invokestatic  #58                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       188: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       191: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       194: ldc           #3                  // String name\n+       185: invokestatic  #187                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       188: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       191: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       194: ldc           #9                  // String name\n        196: iconst_1\n-       197: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       197: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        200: dup\n        201: iconst_0\n-       202: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       202: new           #58                 // class dev/langchain4j/data/message/TextContent\n        205: dup\n-       206: ldc           #4                  // String text\n-       208: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       206: ldc           #11                 // String text\n+       208: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        211: aastore\n-       212: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       215: invokestatic  #59                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       218: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       221: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       224: ldc           #3                  // String name\n-       226: ldc           #4                  // String text\n-       228: invokestatic  #60                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-       231: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       234: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       237: ldc           #3                  // String name\n+       212: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       215: invokestatic  #190                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       218: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       221: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       224: ldc           #9                  // String name\n+       226: ldc           #11                 // String text\n+       228: invokestatic  #193                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+       231: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       234: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       237: ldc           #9                  // String name\n        239: iconst_1\n-       240: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       240: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        243: dup\n        244: iconst_0\n-       245: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       245: new           #58                 // class dev/langchain4j/data/message/TextContent\n        248: dup\n-       249: ldc           #4                  // String text\n-       251: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       249: ldc           #11                 // String text\n+       251: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        254: aastore\n-       255: invokestatic  #61                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       258: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       261: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       264: ldc           #3                  // String name\n+       255: invokestatic  #195                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       258: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       261: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       264: ldc           #9                  // String name\n        266: iconst_1\n-       267: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       267: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        270: dup\n        271: iconst_0\n-       272: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       272: new           #58                 // class dev/langchain4j/data/message/TextContent\n        275: dup\n-       276: ldc           #4                  // String text\n-       278: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       276: ldc           #11                 // String text\n+       278: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        281: aastore\n-       282: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       285: invokestatic  #62                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       288: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       282: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       285: invokestatic  #197                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       288: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        291: pop\n        292: aload_0\n-       293: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       293: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        296: dup\n-       297: ldc           #3                  // String name\n+       297: ldc           #9                  // String name\n        299: iconst_2\n-       300: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       300: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        303: dup\n        304: iconst_0\n-       305: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       305: new           #58                 // class dev/langchain4j/data/message/TextContent\n        308: dup\n-       309: ldc           #41                 // String abc\n-       311: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       309: ldc           #134                // String abc\n+       311: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        314: aastore\n        315: dup\n        316: iconst_1\n-       317: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       317: new           #58                 // class dev/langchain4j/data/message/TextContent\n        320: dup\n-       321: ldc           #42                 // String def\n-       323: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       321: ldc           #136                // String def\n+       323: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        326: aastore\n-       327: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       330: invokespecial #40                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n-       333: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       336: ldc           #3                  // String name\n+       327: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       330: invokespecial #131                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n+       333: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       336: ldc           #9                  // String name\n        338: iconst_2\n-       339: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       339: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        342: dup\n        343: iconst_0\n-       344: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       344: new           #58                 // class dev/langchain4j/data/message/TextContent\n        347: dup\n-       348: ldc           #41                 // String abc\n-       350: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       348: ldc           #134                // String abc\n+       350: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        353: aastore\n        354: dup\n        355: iconst_1\n-       356: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       356: new           #58                 // class dev/langchain4j/data/message/TextContent\n        359: dup\n-       360: ldc           #42                 // String def\n-       362: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       360: ldc           #136                // String def\n+       362: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        365: aastore\n-       366: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       369: invokestatic  #59                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       372: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       375: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       378: ldc           #3                  // String name\n+       366: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       369: invokestatic  #190                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       372: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       375: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       378: ldc           #9                  // String name\n        380: iconst_2\n-       381: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       381: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        384: dup\n        385: iconst_0\n-       386: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       386: new           #58                 // class dev/langchain4j/data/message/TextContent\n        389: dup\n-       390: ldc           #41                 // String abc\n-       392: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       390: ldc           #134                // String abc\n+       392: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        395: aastore\n        396: dup\n        397: iconst_1\n-       398: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       398: new           #58                 // class dev/langchain4j/data/message/TextContent\n        401: dup\n-       402: ldc           #42                 // String def\n-       404: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       402: ldc           #136                // String def\n+       404: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        407: aastore\n-       408: invokestatic  #58                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       411: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       414: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       417: ldc           #3                  // String name\n+       408: invokestatic  #187                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       411: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       414: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       417: ldc           #9                  // String name\n        419: iconst_2\n-       420: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       420: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        423: dup\n        424: iconst_0\n-       425: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       425: new           #58                 // class dev/langchain4j/data/message/TextContent\n        428: dup\n-       429: ldc           #41                 // String abc\n-       431: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       429: ldc           #134                // String abc\n+       431: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        434: aastore\n        435: dup\n        436: iconst_1\n-       437: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       437: new           #58                 // class dev/langchain4j/data/message/TextContent\n        440: dup\n-       441: ldc           #42                 // String def\n-       443: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       441: ldc           #136                // String def\n+       443: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        446: aastore\n-       447: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       450: invokestatic  #62                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       453: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       456: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n-       459: ldc           #3                  // String name\n+       447: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       450: invokestatic  #197                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       453: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       456: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n+       459: ldc           #9                  // String name\n        461: iconst_2\n-       462: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       462: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        465: dup\n        466: iconst_0\n-       467: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       467: new           #58                 // class dev/langchain4j/data/message/TextContent\n        470: dup\n-       471: ldc           #41                 // String abc\n-       473: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       471: ldc           #134                // String abc\n+       473: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        476: aastore\n        477: dup\n        478: iconst_1\n-       479: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       479: new           #58                 // class dev/langchain4j/data/message/TextContent\n        482: dup\n-       483: ldc           #42                 // String def\n-       485: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       483: ldc           #136                // String def\n+       485: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        488: aastore\n-       489: invokestatic  #61                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       492: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       489: invokestatic  #195                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;[Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       492: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        495: pop\n        496: aload_0\n-       497: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+       497: new           #7                  // class dev/langchain4j/data/message/UserMessage\n        500: dup\n        501: iconst_2\n-       502: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       502: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        505: dup\n        506: iconst_0\n-       507: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       507: new           #58                 // class dev/langchain4j/data/message/TextContent\n        510: dup\n-       511: ldc           #41                 // String abc\n-       513: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       511: ldc           #134                // String abc\n+       513: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        516: aastore\n        517: dup\n        518: iconst_1\n-       519: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       519: new           #58                 // class dev/langchain4j/data/message/TextContent\n        522: dup\n-       523: ldc           #42                 // String def\n-       525: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       523: ldc           #136                // String def\n+       525: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        528: aastore\n-       529: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       532: invokespecial #44                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n-       535: invokevirtual #19                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       529: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       532: invokespecial #141                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/util/List;)V\n+       535: invokevirtual #71                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        538: iconst_2\n-       539: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       539: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        542: dup\n        543: iconst_0\n-       544: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       544: new           #58                 // class dev/langchain4j/data/message/TextContent\n        547: dup\n-       548: ldc           #41                 // String abc\n-       550: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       548: ldc           #134                // String abc\n+       550: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        553: aastore\n        554: dup\n        555: iconst_1\n-       556: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       556: new           #58                 // class dev/langchain4j/data/message/TextContent\n        559: dup\n-       560: ldc           #42                 // String def\n-       562: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       560: ldc           #136                // String def\n+       562: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        565: aastore\n-       566: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       569: invokestatic  #53                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       572: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       575: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       566: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       569: invokestatic  #174                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       572: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       575: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        578: iconst_2\n-       579: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       579: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        582: dup\n        583: iconst_0\n-       584: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       584: new           #58                 // class dev/langchain4j/data/message/TextContent\n        587: dup\n-       588: ldc           #41                 // String abc\n-       590: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       588: ldc           #134                // String abc\n+       590: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        593: aastore\n        594: dup\n        595: iconst_1\n-       596: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       596: new           #58                 // class dev/langchain4j/data/message/TextContent\n        599: dup\n-       600: ldc           #42                 // String def\n-       602: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       600: ldc           #136                // String def\n+       602: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        605: aastore\n-       606: invokestatic  #52                 // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       609: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       612: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       606: invokestatic  #171                // Method dev/langchain4j/data/message/UserMessage.from:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       609: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       612: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        615: iconst_2\n-       616: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       616: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        619: dup\n        620: iconst_0\n-       621: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       621: new           #58                 // class dev/langchain4j/data/message/TextContent\n        624: dup\n-       625: ldc           #41                 // String abc\n-       627: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       625: ldc           #134                // String abc\n+       627: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        630: aastore\n        631: dup\n        632: iconst_1\n-       633: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       633: new           #58                 // class dev/langchain4j/data/message/TextContent\n        636: dup\n-       637: ldc           #42                 // String def\n-       639: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       637: ldc           #136                // String def\n+       639: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        642: aastore\n-       643: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-       646: invokestatic  #56                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n-       649: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       652: checkcast     #24                 // class org/assertj/core/api/ObjectAssert\n+       643: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+       646: invokestatic  #182                // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/UserMessage;\n+       649: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       652: checkcast     #77                 // class org/assertj/core/api/ObjectAssert\n        655: iconst_2\n-       656: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+       656: anewarray     #55                 // class dev/langchain4j/data/message/Content\n        659: dup\n        660: iconst_0\n-       661: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       661: new           #58                 // class dev/langchain4j/data/message/TextContent\n        664: dup\n-       665: ldc           #41                 // String abc\n-       667: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       665: ldc           #134                // String abc\n+       667: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        670: aastore\n        671: dup\n        672: iconst_1\n-       673: new           #37                 // class dev/langchain4j/data/message/TextContent\n+       673: new           #58                 // class dev/langchain4j/data/message/TextContent\n        676: dup\n-       677: ldc           #42                 // String def\n-       679: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+       677: ldc           #136                // String def\n+       679: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n        682: aastore\n-       683: invokestatic  #55                 // Method dev/langchain4j/data/message/UserMessage.userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n-       686: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       683: invokestatic  #180                // Method dev/langchain4j/data/message/UserMessage.userMessage:([Ldev/langchain4j/data/message/Content;)Ldev/langchain4j/data/message/UserMessage;\n+       686: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        689: pop\n        690: return\n       LineNumberTable:\n         line 72: 0\n         line 73: 15\n         line 74: 40\n         line 75: 65\n@@ -1012,54 +1012,54 @@\n         line 97: 643\n         line 98: 683\n         line 99: 690\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     691     0  this   Ldev/langchain4j/data/message/UserMessageTest;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #210()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_hasSingleText$0() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=9, locals=0, args_size=0\n-         0: new           #2                  // class dev/langchain4j/data/message/UserMessage\n+         0: new           #7                  // class dev/langchain4j/data/message/UserMessage\n          3: dup\n-         4: ldc           #3                  // String name\n+         4: ldc           #9                  // String name\n          6: iconst_2\n-         7: anewarray     #15                 // class dev/langchain4j/data/message/Content\n+         7: anewarray     #55                 // class dev/langchain4j/data/message/Content\n         10: dup\n         11: iconst_0\n-        12: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        12: new           #58                 // class dev/langchain4j/data/message/TextContent\n         15: dup\n-        16: ldc           #41                 // String abc\n-        18: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        16: ldc           #134                // String abc\n+        18: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n         21: aastore\n         22: dup\n         23: iconst_1\n-        24: new           #37                 // class dev/langchain4j/data/message/TextContent\n+        24: new           #58                 // class dev/langchain4j/data/message/TextContent\n         27: dup\n-        28: ldc           #42                 // String def\n-        30: invokespecial #38                 // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n+        28: ldc           #136                // String def\n+        30: invokespecial #127                // Method dev/langchain4j/data/message/TextContent.\"<init>\":(Ljava/lang/String;)V\n         33: aastore\n-        34: invokestatic  #39                 // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n-        37: invokespecial #40                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n-        40: invokevirtual #10                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        34: invokestatic  #128                // Method listOf:([Ljava/lang/Object;)Ljava/util/List;\n+        37: invokespecial #131                // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;Ljava/util/List;)V\n+        40: invokevirtual #38                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n         43: pop\n         44: return\n       LineNumberTable:\n         line 66: 0\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"UserMessageTest.java\"\n-InnerClasses:\n-  public static #224= #223 of #243;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #248= #247 of #251; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #150 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #232 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #151 ()V\n-      #152 REF_invokeStatic dev/langchain4j/data/message/UserMessageTest.lambda$test_hasSingleText$0:()V\n-      #151 ()V\n+      #239 ()V\n+      #240 REF_invokeStatic dev/langchain4j/data/message/UserMessageTest.lambda$test_hasSingleText$0:()V\n+      #239 ()V\n+InnerClasses:\n+  public static #248= #244 of #246;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #253= #249 of #251; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/data/segment/TextSegmentTest.class", "source2": "dev/langchain4j/data/segment/TextSegmentTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,190 +1,190 @@\n-  SHA-256 checksum 00dcd16092b6509cadc13dd0eab17fb15736b82b0a3680f01beac8bddfd26a7a\n+  SHA-256 checksum 2efcbc666a32c7be4404eef2c0e5e5f234daa4b4b8a27445849d3f840a6ca35c\n   Compiled from \"TextSegmentTest.java\"\n class dev.langchain4j.data.segment.TextSegmentTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #38                         // dev/langchain4j/data/segment/TextSegmentTest\n-  super_class: #39                        // java/lang/Object\n+  this_class: #10                         // dev/langchain4j/data/segment/TextSegmentTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 8, attributes: 3\n Constant pool:\n-    #1 = Methodref          #39.#73       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #74           // java/lang/IllegalArgumentException\n-    #3 = Methodref          #38.#75       // dev/langchain4j/data/segment/TextSegmentTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-    #4 = InvokeDynamic      #0:#80        // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-    #5 = Methodref          #81.#82       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-    #6 = String             #83           // text cannot be null or blank\n-    #7 = Methodref          #84.#85       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-    #8 = InvokeDynamic      #1:#80        // #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-    #9 = InvokeDynamic      #2:#80        // #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #10 = String             #88           // metadata cannot be null\n-   #11 = String             #89           // text\n-   #12 = Methodref          #33.#90       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #13 = Class              #91           // dev/langchain4j/data/document/Metadata\n-   #14 = Methodref          #13.#73       // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-   #15 = String             #92           // abc\n-   #16 = String             #93           // 123\n-   #17 = Methodref          #13.#94       // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #18 = String             #95           // xyz\n-   #19 = Methodref          #33.#96       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-   #20 = Methodref          #38.#97       // dev/langchain4j/data/segment/TextSegmentTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #21 = Methodref          #22.#98       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #22 = Class              #99           // org/assertj/core/api/ObjectAssert\n-   #23 = Methodref          #22.#100      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #24 = Methodref          #22.#101      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #25 = Methodref          #22.#102      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Methodref          #33.#103      // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-   #27 = Methodref          #38.#104      // dev/langchain4j/data/segment/TextSegmentTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #28 = Methodref          #105.#106     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #29 = Methodref          #33.#107      // dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #30 = Methodref          #33.#108      // dev/langchain4j/data/segment/TextSegment.metadata:(Ljava/lang/String;)Ljava/lang/String;\n-   #31 = String             #109          // TextSegment { text = \\\"text\\\" metadata = {abc=123} }\n-   #32 = Methodref          #22.#110      // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #33 = Class              #111          // dev/langchain4j/data/segment/TextSegment\n-   #34 = Methodref          #33.#112      // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-   #35 = Methodref          #33.#113      // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #36 = Methodref          #33.#114      // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-   #37 = String             #115          //\n-   #38 = Class              #116          // dev/langchain4j/data/segment/TextSegmentTest\n-   #39 = Class              #117          // java/lang/Object\n-   #40 = Class              #118          // org/assertj/core/api/WithAssertions\n-   #41 = Utf8               <init>\n-   #42 = Utf8               ()V\n-   #43 = Utf8               Code\n-   #44 = Utf8               LineNumberTable\n-   #45 = Utf8               LocalVariableTable\n-   #46 = Utf8               this\n-   #47 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTest;\n-   #48 = Utf8               test_blank\n-   #49 = Utf8               RuntimeVisibleAnnotations\n-   #50 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #51 = Utf8               test_equals_hashCode\n-   #52 = Utf8               ts1\n-   #53 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-   #54 = Utf8               ts2\n-   #55 = Utf8               m1\n-   #56 = Utf8               Ldev/langchain4j/data/document/Metadata;\n-   #57 = Utf8               m2\n-   #58 = Utf8               m3\n-   #59 = Utf8               ts3\n-   #60 = Utf8               ts4\n-   #61 = Utf8               ts5\n-   #62 = Utf8               test_accessors\n-   #63 = Utf8               metadata\n-   #64 = Utf8               ts\n-   #65 = Utf8               test_builders\n-   #66 = Utf8               lambda$test_blank$2\n-   #67 = Utf8               Exceptions\n-   #68 = Class              #119          // java/lang/Throwable\n-   #69 = Utf8               lambda$test_blank$1\n-   #70 = Utf8               lambda$test_blank$0\n-   #71 = Utf8               SourceFile\n-   #72 = Utf8               TextSegmentTest.java\n-   #73 = NameAndType        #41:#42       // \"<init>\":()V\n-   #74 = Utf8               java/lang/IllegalArgumentException\n-   #75 = NameAndType        #120:#121     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #76 = Utf8               BootstrapMethods\n-   #77 = MethodHandle       6:#122        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #78 = MethodType         #42           //  ()V\n-   #79 = MethodHandle       6:#123        // REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$0:()V\n-   #80 = NameAndType        #124:#128     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #81 = Class              #129          // org/assertj/core/api/ThrowableTypeAssert\n-   #82 = NameAndType        #130:#131     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #83 = Utf8               text cannot be null or blank\n-   #84 = Class              #132          // org/assertj/core/api/ThrowableAssertAlternative\n-   #85 = NameAndType        #133:#134     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #86 = MethodHandle       6:#135        // REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$1:()V\n-   #87 = MethodHandle       6:#136        // REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$2:()V\n-   #88 = Utf8               metadata cannot be null\n-   #89 = Utf8               text\n-   #90 = NameAndType        #137:#138     // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #91 = Utf8               dev/langchain4j/data/document/Metadata\n-   #92 = Utf8               abc\n-   #93 = Utf8               123\n-   #94 = NameAndType        #139:#140     // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #95 = Utf8               xyz\n-   #96 = NameAndType        #137:#141     // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-   #97 = NameAndType        #142:#143     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #98 = NameAndType        #144:#145     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #99 = Utf8               org/assertj/core/api/ObjectAssert\n-  #100 = NameAndType        #146:#145     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #101 = NameAndType        #147:#145     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #102 = NameAndType        #148:#145     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #103 = NameAndType        #89:#149      // text:()Ljava/lang/String;\n-  #104 = NameAndType        #142:#150     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #105 = Class              #151          // org/assertj/core/api/AbstractStringAssert\n-  #106 = NameAndType        #144:#150     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #107 = NameAndType        #63:#152      // metadata:()Ldev/langchain4j/data/document/Metadata;\n-  #108 = NameAndType        #63:#153      // metadata:(Ljava/lang/String;)Ljava/lang/String;\n-  #109 = Utf8               TextSegment { text = \\\"text\\\" metadata = {abc=123} }\n-  #110 = NameAndType        #154:#155     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #111 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #112 = NameAndType        #41:#156      // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #113 = NameAndType        #157:#138     // textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #114 = NameAndType        #157:#141     // textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #115 = Utf8\n-  #116 = Utf8               dev/langchain4j/data/segment/TextSegmentTest\n-  #117 = Utf8               java/lang/Object\n-  #118 = Utf8               org/assertj/core/api/WithAssertions\n-  #119 = Utf8               java/lang/Throwable\n-  #120 = Utf8               assertThatExceptionOfType\n-  #121 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #122 = Methodref          #158.#159     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #123 = Methodref          #38.#160      // dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$0:()V\n-  #124 = Utf8               call\n-  #125 = Class              #162          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #126 = Utf8               ThrowingCallable\n-  #127 = Utf8               InnerClasses\n-  #128 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #129 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #130 = Utf8               isThrownBy\n-  #131 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #132 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #133 = Utf8               withMessageContaining\n-  #134 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #135 = Methodref          #38.#163      // dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$1:()V\n-  #136 = Methodref          #38.#164      // dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$2:()V\n-  #137 = Utf8               from\n-  #138 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #139 = Utf8               add\n-  #140 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #141 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #142 = Utf8               assertThat\n-  #143 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #144 = Utf8               isEqualTo\n-  #145 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #146 = Utf8               hasSameHashCodeAs\n-  #147 = Utf8               isNotEqualTo\n-  #148 = Utf8               doesNotHaveSameHashCodeAs\n-  #149 = Utf8               ()Ljava/lang/String;\n-  #150 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #151 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #152 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #153 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n-  #154 = Utf8               hasToString\n-  #155 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #156 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-  #157 = Utf8               textSegment\n-  #158 = Class              #165          // java/lang/invoke/LambdaMetafactory\n-  #159 = NameAndType        #166:#169     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #160 = NameAndType        #70:#42       // lambda$test_blank$0:()V\n-  #161 = Class              #170          // org/assertj/core/api/ThrowableAssert\n-  #162 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #163 = NameAndType        #69:#42       // lambda$test_blank$1:()V\n-  #164 = NameAndType        #66:#42       // lambda$test_blank$2:()V\n-  #165 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #166 = Utf8               metafactory\n-  #167 = Class              #172          // java/lang/invoke/MethodHandles$Lookup\n-  #168 = Utf8               Lookup\n-  #169 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #170 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #171 = Class              #173          // java/lang/invoke/MethodHandles\n-  #172 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #173 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/lang/IllegalArgumentException\n+    #8 = Utf8               java/lang/IllegalArgumentException\n+    #9 = Methodref          #10.#11       // dev/langchain4j/data/segment/TextSegmentTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #10 = Class              #12           // dev/langchain4j/data/segment/TextSegmentTest\n+   #11 = NameAndType        #13:#14       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #12 = Utf8               dev/langchain4j/data/segment/TextSegmentTest\n+   #13 = Utf8               assertThatExceptionOfType\n+   #14 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #15 = InvokeDynamic      #0:#16        // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #16 = NameAndType        #17:#18       // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #17 = Utf8               call\n+   #18 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #20 = Class              #22           // org/assertj/core/api/ThrowableTypeAssert\n+   #21 = NameAndType        #23:#24       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #22 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #23 = Utf8               isThrownBy\n+   #24 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #25 = String             #26           // text cannot be null or blank\n+   #26 = Utf8               text cannot be null or blank\n+   #27 = Methodref          #28.#29       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #28 = Class              #30           // org/assertj/core/api/ThrowableAssertAlternative\n+   #29 = NameAndType        #31:#32       // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #30 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #31 = Utf8               withMessageContaining\n+   #32 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #33 = InvokeDynamic      #1:#16        // #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #34 = InvokeDynamic      #2:#16        // #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #35 = String             #36           // metadata cannot be null\n+   #36 = Utf8               metadata cannot be null\n+   #37 = String             #38           // text\n+   #38 = Utf8               text\n+   #39 = Methodref          #40.#41       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #40 = Class              #42           // dev/langchain4j/data/segment/TextSegment\n+   #41 = NameAndType        #43:#44       // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #42 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #43 = Utf8               from\n+   #44 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #45 = Class              #46           // dev/langchain4j/data/document/Metadata\n+   #46 = Utf8               dev/langchain4j/data/document/Metadata\n+   #47 = Methodref          #45.#3        // dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+   #48 = String             #49           // abc\n+   #49 = Utf8               abc\n+   #50 = String             #51           // 123\n+   #51 = Utf8               123\n+   #52 = Methodref          #45.#53       // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #53 = NameAndType        #54:#55       // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #54 = Utf8               add\n+   #55 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #56 = String             #57           // xyz\n+   #57 = Utf8               xyz\n+   #58 = Methodref          #40.#59       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+   #59 = NameAndType        #43:#60       // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+   #60 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+   #61 = Methodref          #10.#62       // dev/langchain4j/data/segment/TextSegmentTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #62 = NameAndType        #63:#64       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #63 = Utf8               assertThat\n+   #64 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #65 = Methodref          #66.#67       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #66 = Class              #68           // org/assertj/core/api/ObjectAssert\n+   #67 = NameAndType        #69:#70       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #68 = Utf8               org/assertj/core/api/ObjectAssert\n+   #69 = Utf8               isEqualTo\n+   #70 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #71 = Methodref          #66.#72       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #72 = NameAndType        #73:#70       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #73 = Utf8               hasSameHashCodeAs\n+   #74 = Methodref          #66.#75       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #75 = NameAndType        #76:#70       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #76 = Utf8               isNotEqualTo\n+   #77 = Methodref          #66.#78       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #78 = NameAndType        #79:#70       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #79 = Utf8               doesNotHaveSameHashCodeAs\n+   #80 = Methodref          #40.#81       // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+   #81 = NameAndType        #38:#82       // text:()Ljava/lang/String;\n+   #82 = Utf8               ()Ljava/lang/String;\n+   #83 = Methodref          #10.#84       // dev/langchain4j/data/segment/TextSegmentTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #84 = NameAndType        #63:#85       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #85 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #86 = Methodref          #87.#88       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #87 = Class              #89           // org/assertj/core/api/AbstractStringAssert\n+   #88 = NameAndType        #69:#85       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #89 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #90 = Methodref          #40.#91       // dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #91 = NameAndType        #92:#93       // metadata:()Ldev/langchain4j/data/document/Metadata;\n+   #92 = Utf8               metadata\n+   #93 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+   #94 = Methodref          #40.#95       // dev/langchain4j/data/segment/TextSegment.metadata:(Ljava/lang/String;)Ljava/lang/String;\n+   #95 = NameAndType        #92:#96       // metadata:(Ljava/lang/String;)Ljava/lang/String;\n+   #96 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+   #97 = String             #98           // TextSegment { text = \\\"text\\\" metadata = {abc=123} }\n+   #98 = Utf8               TextSegment { text = \\\"text\\\" metadata = {abc=123} }\n+   #99 = Methodref          #66.#100      // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #100 = NameAndType        #101:#102     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #101 = Utf8               hasToString\n+  #102 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #103 = Methodref          #40.#104      // dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #104 = NameAndType        #5:#105       // \"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #105 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+  #106 = Methodref          #40.#107      // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #107 = NameAndType        #108:#44      // textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #108 = Utf8               textSegment\n+  #109 = Methodref          #40.#110      // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #110 = NameAndType        #108:#60      // textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #111 = String             #112          //\n+  #112 = Utf8\n+  #113 = Class              #114          // org/assertj/core/api/WithAssertions\n+  #114 = Utf8               org/assertj/core/api/WithAssertions\n+  #115 = Utf8               Code\n+  #116 = Utf8               LineNumberTable\n+  #117 = Utf8               LocalVariableTable\n+  #118 = Utf8               this\n+  #119 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTest;\n+  #120 = Utf8               test_blank\n+  #121 = Utf8               RuntimeVisibleAnnotations\n+  #122 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #123 = Utf8               test_equals_hashCode\n+  #124 = Utf8               ts1\n+  #125 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #126 = Utf8               ts2\n+  #127 = Utf8               m1\n+  #128 = Utf8               Ldev/langchain4j/data/document/Metadata;\n+  #129 = Utf8               m2\n+  #130 = Utf8               m3\n+  #131 = Utf8               ts3\n+  #132 = Utf8               ts4\n+  #133 = Utf8               ts5\n+  #134 = Utf8               test_accessors\n+  #135 = Utf8               ts\n+  #136 = Utf8               test_builders\n+  #137 = Utf8               lambda$test_blank$2\n+  #138 = Utf8               Exceptions\n+  #139 = Class              #140          // java/lang/Throwable\n+  #140 = Utf8               java/lang/Throwable\n+  #141 = Utf8               lambda$test_blank$1\n+  #142 = Utf8               lambda$test_blank$0\n+  #143 = Utf8               SourceFile\n+  #144 = Utf8               TextSegmentTest.java\n+  #145 = Utf8               BootstrapMethods\n+  #146 = MethodHandle       6:#147        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #147 = Methodref          #148.#149     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #148 = Class              #150          // java/lang/invoke/LambdaMetafactory\n+  #149 = NameAndType        #151:#152     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #150 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #151 = Utf8               metafactory\n+  #152 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #153 = MethodType         #6            //  ()V\n+  #154 = MethodHandle       6:#155        // REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$0:()V\n+  #155 = Methodref          #10.#156      // dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$0:()V\n+  #156 = NameAndType        #142:#6       // lambda$test_blank$0:()V\n+  #157 = MethodHandle       6:#158        // REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$1:()V\n+  #158 = Methodref          #10.#159      // dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$1:()V\n+  #159 = NameAndType        #141:#6       // lambda$test_blank$1:()V\n+  #160 = MethodHandle       6:#161        // REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$2:()V\n+  #161 = Methodref          #10.#162      // dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$2:()V\n+  #162 = NameAndType        #137:#6       // lambda$test_blank$2:()V\n+  #163 = Utf8               InnerClasses\n+  #164 = Class              #165          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #165 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #166 = Class              #167          // org/assertj/core/api/ThrowableAssert\n+  #167 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #168 = Utf8               ThrowingCallable\n+  #169 = Class              #170          // java/lang/invoke/MethodHandles$Lookup\n+  #170 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #171 = Class              #172          // java/lang/invoke/MethodHandles\n+  #172 = Utf8               java/lang/invoke/MethodHandles\n+  #173 = Utf8               Lookup\n {\n   dev.langchain4j.data.segment.TextSegmentTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -198,36 +198,36 @@\n \n   public void test_blank();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #2                  // class java/lang/IllegalArgumentException\n-         3: invokevirtual #3                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-         6: invokedynamic #4,  0              // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        11: invokevirtual #5                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        14: ldc           #6                  // String text cannot be null or blank\n-        16: invokevirtual #7                  // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+         1: ldc           #7                  // class java/lang/IllegalArgumentException\n+         3: invokevirtual #9                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+         6: invokedynamic #15,  0             // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        11: invokevirtual #19                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        14: ldc           #25                 // String text cannot be null or blank\n+        16: invokevirtual #27                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         19: pop\n         20: aload_0\n-        21: ldc           #2                  // class java/lang/IllegalArgumentException\n-        23: invokevirtual #3                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-        26: invokedynamic #8,  0              // InvokeDynamic #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        31: invokevirtual #5                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        34: ldc           #6                  // String text cannot be null or blank\n-        36: invokevirtual #7                  // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        21: ldc           #7                  // class java/lang/IllegalArgumentException\n+        23: invokevirtual #9                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        26: invokedynamic #33,  0             // InvokeDynamic #1:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        31: invokevirtual #19                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        34: ldc           #25                 // String text cannot be null or blank\n+        36: invokevirtual #27                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         39: pop\n         40: aload_0\n-        41: ldc           #2                  // class java/lang/IllegalArgumentException\n-        43: invokevirtual #3                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-        46: invokedynamic #9,  0              // InvokeDynamic #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        51: invokevirtual #5                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        54: ldc           #10                 // String metadata cannot be null\n-        56: invokevirtual #7                  // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        41: ldc           #7                  // class java/lang/IllegalArgumentException\n+        43: invokevirtual #9                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        46: invokedynamic #34,  0             // InvokeDynamic #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        51: invokevirtual #19                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        54: ldc           #35                 // String metadata cannot be null\n+        56: invokevirtual #27                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         59: pop\n         60: return\n       LineNumberTable:\n         line 10: 0\n         line 11: 11\n         line 12: 16\n         line 13: 20\n@@ -237,108 +237,108 @@\n         line 18: 51\n         line 19: 56\n         line 20: 60\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      61     0  this   Ldev/langchain4j/data/segment/TextSegmentTest;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #122()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=9, args_size=1\n-         0: ldc           #11                 // String text\n-         2: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         0: ldc           #37                 // String text\n+         2: invokestatic  #39                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n          5: astore_1\n-         6: ldc           #11                 // String text\n-         8: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         6: ldc           #37                 // String text\n+         8: invokestatic  #39                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n         11: astore_2\n-        12: new           #13                 // class dev/langchain4j/data/document/Metadata\n+        12: new           #45                 // class dev/langchain4j/data/document/Metadata\n         15: dup\n-        16: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        16: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         19: astore_3\n         20: aload_3\n-        21: ldc           #15                 // String abc\n-        23: ldc           #16                 // String 123\n-        25: invokevirtual #17                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        21: ldc           #48                 // String abc\n+        23: ldc           #50                 // String 123\n+        25: invokevirtual #52                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         28: pop\n-        29: new           #13                 // class dev/langchain4j/data/document/Metadata\n+        29: new           #45                 // class dev/langchain4j/data/document/Metadata\n         32: dup\n-        33: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        33: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         36: astore        4\n         38: aload         4\n-        40: ldc           #15                 // String abc\n-        42: ldc           #16                 // String 123\n-        44: invokevirtual #17                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        40: ldc           #48                 // String abc\n+        42: ldc           #50                 // String 123\n+        44: invokevirtual #52                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         47: pop\n-        48: new           #13                 // class dev/langchain4j/data/document/Metadata\n+        48: new           #45                 // class dev/langchain4j/data/document/Metadata\n         51: dup\n-        52: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        52: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         55: astore        5\n         57: aload         5\n-        59: ldc           #15                 // String abc\n-        61: ldc           #18                 // String xyz\n-        63: invokevirtual #17                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        59: ldc           #48                 // String abc\n+        61: ldc           #56                 // String xyz\n+        63: invokevirtual #52                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         66: pop\n-        67: ldc           #11                 // String text\n+        67: ldc           #37                 // String text\n         69: aload_3\n-        70: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        70: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         73: astore        6\n-        75: ldc           #11                 // String text\n+        75: ldc           #37                 // String text\n         77: aload_3\n-        78: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        78: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         81: astore        7\n-        83: ldc           #11                 // String text\n+        83: ldc           #37                 // String text\n         85: aload         4\n-        87: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        87: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         90: astore        8\n         92: aload_0\n         93: aload_1\n-        94: invokevirtual #20                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        94: invokevirtual #61                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         97: aload_1\n-        98: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       101: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+        98: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       101: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        104: aload_1\n-       105: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       108: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       105: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       108: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        111: aload_2\n-       112: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       115: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       112: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       115: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        118: aload_2\n-       119: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       122: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       119: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       122: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        125: aload         6\n-       127: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       130: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       127: invokevirtual #74                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       130: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        133: aload         6\n-       135: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       135: invokevirtual #77                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        138: pop\n        139: aload_0\n        140: aload         6\n-       142: invokevirtual #20                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       142: invokevirtual #61                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        145: aload         6\n-       147: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       150: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       147: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       150: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        153: aload         6\n-       155: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       158: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       155: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       158: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        161: aload         7\n-       163: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       166: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       163: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       166: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        169: aload         7\n-       171: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       174: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       171: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       174: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        177: aload         8\n-       179: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       182: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n+       179: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       182: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n        185: aload         8\n-       187: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       187: invokevirtual #71                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        190: pop\n        191: return\n       LineNumberTable:\n         line 24: 0\n         line 25: 6\n         line 27: 12\n         line 28: 20\n@@ -372,62 +372,62 @@\n            20     172     3    m1   Ldev/langchain4j/data/document/Metadata;\n            38     154     4    m2   Ldev/langchain4j/data/document/Metadata;\n            57     135     5    m3   Ldev/langchain4j/data/document/Metadata;\n            75     117     6   ts3   Ldev/langchain4j/data/segment/TextSegment;\n            83     109     7   ts4   Ldev/langchain4j/data/segment/TextSegment;\n            92     100     8   ts5   Ldev/langchain4j/data/segment/TextSegment;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #122()\n         org.junit.jupiter.api.Test\n \n   public void test_accessors();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: new           #13                 // class dev/langchain4j/data/document/Metadata\n+         0: new           #45                 // class dev/langchain4j/data/document/Metadata\n          3: dup\n-         4: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+         4: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #15                 // String abc\n-        11: ldc           #16                 // String 123\n-        13: invokevirtual #17                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+         9: ldc           #48                 // String abc\n+        11: ldc           #50                 // String 123\n+        13: invokevirtual #52                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         16: pop\n-        17: ldc           #11                 // String text\n+        17: ldc           #37                 // String text\n         19: aload_1\n-        20: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        20: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         23: astore_2\n         24: aload_0\n         25: aload_2\n-        26: invokevirtual #26                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-        29: invokevirtual #27                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        32: ldc           #11                 // String text\n-        34: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        26: invokevirtual #80                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+        29: invokevirtual #83                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        32: ldc           #37                 // String text\n+        34: invokevirtual #86                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         37: pop\n         38: aload_0\n         39: aload_2\n-        40: invokevirtual #29                 // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-        43: invokevirtual #20                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        40: invokevirtual #90                 // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+        43: invokevirtual #61                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         46: aload_1\n-        47: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        47: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         50: pop\n         51: aload_0\n         52: aload_2\n-        53: ldc           #15                 // String abc\n-        55: invokevirtual #30                 // Method dev/langchain4j/data/segment/TextSegment.metadata:(Ljava/lang/String;)Ljava/lang/String;\n-        58: invokevirtual #27                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        61: ldc           #16                 // String 123\n-        63: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        53: ldc           #48                 // String abc\n+        55: invokevirtual #94                 // Method dev/langchain4j/data/segment/TextSegment.metadata:(Ljava/lang/String;)Ljava/lang/String;\n+        58: invokevirtual #83                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        61: ldc           #50                 // String 123\n+        63: invokevirtual #86                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         66: pop\n         67: aload_0\n         68: aload_2\n-        69: invokevirtual #20                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        72: ldc           #31                 // String TextSegment { text = \\\"text\\\" metadata = {abc=123} }\n-        74: invokevirtual #32                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        69: invokevirtual #61                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        72: ldc           #97                 // String TextSegment { text = \\\"text\\\" metadata = {abc=123} }\n+        74: invokevirtual #99                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         77: pop\n         78: return\n       LineNumberTable:\n         line 58: 0\n         line 59: 8\n         line 60: 17\n         line 62: 24\n@@ -438,78 +438,78 @@\n         line 68: 78\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      79     0  this   Ldev/langchain4j/data/segment/TextSegmentTest;\n             8      71     1 metadata   Ldev/langchain4j/data/document/Metadata;\n            24      55     2    ts   Ldev/langchain4j/data/segment/TextSegment;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #122()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=2, args_size=1\n          0: aload_0\n-         1: new           #33                 // class dev/langchain4j/data/segment/TextSegment\n+         1: new           #40                 // class dev/langchain4j/data/segment/TextSegment\n          4: dup\n-         5: ldc           #15                 // String abc\n-         7: new           #13                 // class dev/langchain4j/data/document/Metadata\n+         5: ldc           #48                 // String abc\n+         7: new           #45                 // class dev/langchain4j/data/document/Metadata\n         10: dup\n-        11: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        14: invokespecial #34                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-        17: invokevirtual #20                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        20: ldc           #15                 // String abc\n-        22: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        25: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        28: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-        31: ldc           #15                 // String abc\n-        33: invokestatic  #35                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        36: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        39: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-        42: ldc           #15                 // String abc\n-        44: new           #13                 // class dev/langchain4j/data/document/Metadata\n+        11: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        14: invokespecial #103                // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+        17: invokevirtual #61                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        20: ldc           #48                 // String abc\n+        22: invokestatic  #39                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        25: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        28: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n+        31: ldc           #48                 // String abc\n+        33: invokestatic  #106                // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        36: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        39: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n+        42: ldc           #48                 // String abc\n+        44: new           #45                 // class dev/langchain4j/data/document/Metadata\n         47: dup\n-        48: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        51: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-        54: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        57: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-        60: ldc           #15                 // String abc\n-        62: new           #13                 // class dev/langchain4j/data/document/Metadata\n+        48: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        51: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        54: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        57: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n+        60: ldc           #48                 // String abc\n+        62: new           #45                 // class dev/langchain4j/data/document/Metadata\n         65: dup\n-        66: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n-        69: invokestatic  #36                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-        72: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        66: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        69: invokestatic  #109                // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        72: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         75: pop\n-        76: new           #13                 // class dev/langchain4j/data/document/Metadata\n+        76: new           #45                 // class dev/langchain4j/data/document/Metadata\n         79: dup\n-        80: invokespecial #14                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n+        80: invokespecial #47                 // Method dev/langchain4j/data/document/Metadata.\"<init>\":()V\n         83: astore_1\n         84: aload_1\n-        85: ldc           #15                 // String abc\n-        87: ldc           #16                 // String 123\n-        89: invokevirtual #17                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        85: ldc           #48                 // String abc\n+        87: ldc           #50                 // String 123\n+        89: invokevirtual #52                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         92: pop\n         93: aload_0\n-        94: new           #33                 // class dev/langchain4j/data/segment/TextSegment\n+        94: new           #40                 // class dev/langchain4j/data/segment/TextSegment\n         97: dup\n-        98: ldc           #15                 // String abc\n+        98: ldc           #48                 // String abc\n        100: aload_1\n-       101: invokespecial #34                 // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n-       104: invokevirtual #20                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       107: ldc           #15                 // String abc\n+       101: invokespecial #103                // Method dev/langchain4j/data/segment/TextSegment.\"<init>\":(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)V\n+       104: invokevirtual #61                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       107: ldc           #48                 // String abc\n        109: aload_1\n-       110: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-       113: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       116: checkcast     #22                 // class org/assertj/core/api/ObjectAssert\n-       119: ldc           #15                 // String abc\n+       110: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+       113: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       116: checkcast     #66                 // class org/assertj/core/api/ObjectAssert\n+       119: ldc           #48                 // String abc\n        121: aload_1\n-       122: invokestatic  #36                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-       125: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       122: invokestatic  #109                // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+       125: invokevirtual #65                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        128: pop\n        129: return\n       LineNumberTable:\n         line 72: 0\n         line 73: 22\n         line 74: 33\n         line 75: 51\n@@ -521,73 +521,73 @@\n         line 83: 122\n         line 84: 129\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     130     0  this   Ldev/langchain4j/data/segment/TextSegmentTest;\n            84      46     1 metadata   Ldev/langchain4j/data/document/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #50()\n+      0: #122()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_blank$2() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=0, args_size=0\n-         0: ldc           #11                 // String text\n+         0: ldc           #37                 // String text\n          2: aconst_null\n-         3: invokestatic  #19                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+         3: invokestatic  #58                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n          6: pop\n          7: return\n       LineNumberTable:\n         line 18: 0\n     Exceptions:\n       throws java.lang.Throwable\n \n   private static void lambda$test_blank$1() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n          0: aconst_null\n-         1: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         1: invokestatic  #39                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n          4: pop\n          5: return\n       LineNumberTable:\n         line 14: 0\n     Exceptions:\n       throws java.lang.Throwable\n \n   private static void lambda$test_blank$0() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #37                 // String\n-         2: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         0: ldc           #111                // String\n+         2: invokestatic  #39                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n          5: pop\n          6: return\n       LineNumberTable:\n         line 11: 0\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"TextSegmentTest.java\"\n-InnerClasses:\n-  public static #126= #125 of #161;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #168= #167 of #171; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #77 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #146 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #78 ()V\n-      #79 REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$0:()V\n-      #78 ()V\n-  1: #77 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #153 ()V\n+      #154 REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$0:()V\n+      #153 ()V\n+  1: #146 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #78 ()V\n-      #86 REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$1:()V\n-      #78 ()V\n-  2: #77 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #153 ()V\n+      #157 REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$1:()V\n+      #153 ()V\n+  2: #146 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #78 ()V\n-      #87 REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$2:()V\n-      #78 ()V\n+      #153 ()V\n+      #160 REF_invokeStatic dev/langchain4j/data/segment/TextSegmentTest.lambda$test_blank$2:()V\n+      #153 ()V\n+InnerClasses:\n+  public static #168= #164 of #166;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #173= #169 of #171; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.class", "source2": "dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,71 +1,70 @@\n-  SHA-256 checksum cb2c27cdece4df166c6495a783a58ed91b21bd277665d7117c648b3c42c82853\n+  SHA-256 checksum 81dc0de773ffac02ea8f459b3a5e5b912a99b6e3b5bc23716159e45933cfc08a\n   Compiled from \"TextSegmentTransformerTest.java\"\n public class dev.langchain4j.data.segment.TextSegmentTransformerTest$LowercaseFnordTransformer implements dev.langchain4j.data.segment.TextSegmentTransformer\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #8                          // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n-  super_class: #9                         // java/lang/Object\n+  this_class: #32                         // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #9.#30         // java/lang/Object.\"<init>\":()V\n-   #2 = Methodref          #31.#32        // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-   #3 = Methodref          #33.#34        // java/lang/String.toLowerCase:()Ljava/lang/String;\n-   #4 = String             #35            // fnord\n-   #5 = Methodref          #33.#36        // java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n-   #6 = Methodref          #31.#37        // dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #7 = Methodref          #31.#38        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-   #8 = Class              #40            // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n-   #9 = Class              #41            // java/lang/Object\n-  #10 = Class              #42            // dev/langchain4j/data/segment/TextSegmentTransformer\n-  #11 = Utf8               <init>\n-  #12 = Utf8               ()V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               LowercaseFnordTransformer\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer;\n-  #20 = Utf8               transform\n-  #21 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/segment/TextSegment;\n-  #22 = Utf8               segment\n-  #23 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-  #24 = Utf8               result\n-  #25 = Utf8               Ljava/lang/String;\n-  #26 = Utf8               StackMapTable\n-  #27 = Class              #43            // java/lang/String\n-  #28 = Utf8               SourceFile\n-  #29 = Utf8               TextSegmentTransformerTest.java\n-  #30 = NameAndType        #11:#12        // \"<init>\":()V\n-  #31 = Class              #44            // dev/langchain4j/data/segment/TextSegment\n-  #32 = NameAndType        #45:#46        // text:()Ljava/lang/String;\n-  #33 = Class              #43            // java/lang/String\n-  #34 = NameAndType        #47:#46        // toLowerCase:()Ljava/lang/String;\n-  #35 = Utf8               fnord\n-  #36 = NameAndType        #48:#49        // contains:(Ljava/lang/CharSequence;)Z\n-  #37 = NameAndType        #50:#51        // metadata:()Ldev/langchain4j/data/document/Metadata;\n-  #38 = NameAndType        #52:#53        // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #39 = Class              #54            // dev/langchain4j/data/segment/TextSegmentTransformerTest\n-  #40 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n-  #41 = Utf8               java/lang/Object\n-  #42 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformer\n-  #43 = Utf8               java/lang/String\n-  #44 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #45 = Utf8               text\n-  #46 = Utf8               ()Ljava/lang/String;\n-  #47 = Utf8               toLowerCase\n-  #48 = Utf8               contains\n-  #49 = Utf8               (Ljava/lang/CharSequence;)Z\n-  #50 = Utf8               metadata\n-  #51 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #52 = Utf8               from\n-  #53 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #54 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Methodref          #8.#9          // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+   #8 = Class              #10            // dev/langchain4j/data/segment/TextSegment\n+   #9 = NameAndType        #11:#12        // text:()Ljava/lang/String;\n+  #10 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #11 = Utf8               text\n+  #12 = Utf8               ()Ljava/lang/String;\n+  #13 = Methodref          #14.#15        // java/lang/String.toLowerCase:()Ljava/lang/String;\n+  #14 = Class              #16            // java/lang/String\n+  #15 = NameAndType        #17:#12        // toLowerCase:()Ljava/lang/String;\n+  #16 = Utf8               java/lang/String\n+  #17 = Utf8               toLowerCase\n+  #18 = String             #19            // fnord\n+  #19 = Utf8               fnord\n+  #20 = Methodref          #14.#21        // java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n+  #21 = NameAndType        #22:#23        // contains:(Ljava/lang/CharSequence;)Z\n+  #22 = Utf8               contains\n+  #23 = Utf8               (Ljava/lang/CharSequence;)Z\n+  #24 = Methodref          #8.#25         // dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+  #25 = NameAndType        #26:#27        // metadata:()Ldev/langchain4j/data/document/Metadata;\n+  #26 = Utf8               metadata\n+  #27 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+  #28 = Methodref          #8.#29         // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #29 = NameAndType        #30:#31        // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #30 = Utf8               from\n+  #31 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #32 = Class              #33            // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n+  #33 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n+  #34 = Class              #35            // dev/langchain4j/data/segment/TextSegmentTransformer\n+  #35 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformer\n+  #36 = Utf8               Code\n+  #37 = Utf8               LineNumberTable\n+  #38 = Utf8               LocalVariableTable\n+  #39 = Utf8               this\n+  #40 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer;\n+  #41 = Utf8               transform\n+  #42 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/segment/TextSegment;\n+  #43 = Utf8               segment\n+  #44 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #45 = Utf8               result\n+  #46 = Utf8               Ljava/lang/String;\n+  #47 = Utf8               StackMapTable\n+  #48 = Utf8               SourceFile\n+  #49 = Utf8               TextSegmentTransformerTest.java\n+  #50 = Utf8               InnerClasses\n+  #51 = Class              #52            // dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  #52 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  #53 = Utf8               LowercaseFnordTransformer\n {\n   public dev.langchain4j.data.segment.TextSegmentTransformerTest$LowercaseFnordTransformer();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -79,27 +78,27 @@\n \n   public dev.langchain4j.data.segment.TextSegment transform(dev.langchain4j.data.segment.TextSegment);\n     descriptor: (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/segment/TextSegment;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=2\n          0: aload_1\n-         1: invokevirtual #2                  // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-         4: invokevirtual #3                  // Method java/lang/String.toLowerCase:()Ljava/lang/String;\n+         1: invokevirtual #7                  // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+         4: invokevirtual #13                 // Method java/lang/String.toLowerCase:()Ljava/lang/String;\n          7: astore_2\n          8: aload_2\n-         9: ldc           #4                  // String fnord\n-        11: invokevirtual #5                  // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n+         9: ldc           #18                 // String fnord\n+        11: invokevirtual #20                 // Method java/lang/String.contains:(Ljava/lang/CharSequence;)Z\n         14: ifeq          19\n         17: aconst_null\n         18: areturn\n         19: aload_2\n         20: aload_1\n-        21: invokevirtual #6                  // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-        24: invokestatic  #7                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        21: invokevirtual #24                 // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+        24: invokestatic  #28                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         27: areturn\n       LineNumberTable:\n         line 13: 0\n         line 14: 8\n         line 15: 17\n         line 17: 19\n       LocalVariableTable:\n@@ -110,8 +109,8 @@\n       StackMapTable: number_of_entries = 1\n         frame_type = 252 /* append */\n           offset_delta = 19\n           locals = [ class java/lang/String ]\n }\n SourceFile: \"TextSegmentTransformerTest.java\"\n InnerClasses:\n-  public static #17= #8 of #39;           // LowercaseFnordTransformer=class dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer of class dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  public static #53= #32 of #51;          // LowercaseFnordTransformer=class dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer of class dev/langchain4j/data/segment/TextSegmentTransformerTest\n"}]}, {"source1": "dev/langchain4j/data/segment/TextSegmentTransformerTest.class", "source2": "dev/langchain4j/data/segment/TextSegmentTransformerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,113 +1,113 @@\n-  SHA-256 checksum b5a365cd3ded065fabf680389003b5ac4f61c5fd93bf1ed93b9022ea2f17ab78\n+  SHA-256 checksum 6a48611329278950f195563b52a09e03d7a0cdce4d85dceb454c1dc4cb67f940\n   Compiled from \"TextSegmentTransformerTest.java\"\n class dev.langchain4j.data.segment.TextSegmentTransformerTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #24                         // dev/langchain4j/data/segment/TextSegmentTransformerTest\n-  super_class: #25                        // java/lang/Object\n+  this_class: #53                         // dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #25.#52        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #53            // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n-   #3 = Methodref          #2.#52         // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.\"<init>\":()V\n-   #4 = String             #54            // Text\n-   #5 = Methodref          #18.#55        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #6 = Methodref          #18.#56        // dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-   #7 = String             #57            // abc\n-   #8 = String             #58            // 123\n-   #9 = Methodref          #59.#60        // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #10 = String             #61            // Segment\n-  #11 = String             #62            // Fnord will be filtered out\n-  #12 = String             #63            // Transformer\n-  #13 = Class              #64            // java/util/ArrayList\n-  #14 = Methodref          #13.#52        // java/util/ArrayList.\"<init>\":()V\n-  #15 = InterfaceMethodref #65.#66        // java/util/List.add:(Ljava/lang/Object;)Z\n-  #16 = InterfaceMethodref #67.#68        // dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-  #17 = Methodref          #24.#69        // dev/langchain4j/data/segment/TextSegmentTransformerTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #18 = Class              #70            // dev/langchain4j/data/segment/TextSegment\n-  #19 = String             #71            // text\n-  #20 = Methodref          #18.#72        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #21 = String             #73            // segment\n-  #22 = String             #37            // transformer\n-  #23 = Methodref          #74.#75        // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #24 = Class              #76            // dev/langchain4j/data/segment/TextSegmentTransformerTest\n-  #25 = Class              #77            // java/lang/Object\n-  #26 = Class              #78            // org/assertj/core/api/WithAssertions\n-  #27 = Utf8               LowercaseFnordTransformer\n-  #28 = Utf8               InnerClasses\n-  #29 = Utf8               <init>\n-  #30 = Utf8               ()V\n-  #31 = Utf8               Code\n-  #32 = Utf8               LineNumberTable\n-  #33 = Utf8               LocalVariableTable\n-  #34 = Utf8               this\n-  #35 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformerTest;\n-  #36 = Utf8               test_transformAll\n-  #37 = Utf8               transformer\n-  #38 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformer;\n-  #39 = Utf8               ts1\n-  #40 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-  #41 = Utf8               ts2\n-  #42 = Utf8               ts3\n-  #43 = Utf8               ts4\n-  #44 = Utf8               segmentList\n-  #45 = Utf8               Ljava/util/List;\n-  #46 = Utf8               LocalVariableTypeTable\n-  #47 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-  #48 = Utf8               RuntimeVisibleAnnotations\n-  #49 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #50 = Utf8               SourceFile\n-  #51 = Utf8               TextSegmentTransformerTest.java\n-  #52 = NameAndType        #29:#30        // \"<init>\":()V\n-  #53 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n-  #54 = Utf8               Text\n-  #55 = NameAndType        #79:#80        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #56 = NameAndType        #81:#82        // metadata:()Ldev/langchain4j/data/document/Metadata;\n-  #57 = Utf8               abc\n-  #58 = Utf8               123\n-  #59 = Class              #83            // dev/langchain4j/data/document/Metadata\n-  #60 = NameAndType        #84:#85        // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #61 = Utf8               Segment\n-  #62 = Utf8               Fnord will be filtered out\n-  #63 = Utf8               Transformer\n-  #64 = Utf8               java/util/ArrayList\n-  #65 = Class              #86            // java/util/List\n-  #66 = NameAndType        #84:#87        // add:(Ljava/lang/Object;)Z\n-  #67 = Class              #88            // dev/langchain4j/data/segment/TextSegmentTransformer\n-  #68 = NameAndType        #89:#90        // transformAll:(Ljava/util/List;)Ljava/util/List;\n-  #69 = NameAndType        #91:#92        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #70 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #71 = Utf8               text\n-  #72 = NameAndType        #79:#93        // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #73 = Utf8               segment\n-  #74 = Class              #94            // org/assertj/core/api/ListAssert\n-  #75 = NameAndType        #95:#96        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #76 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest\n-  #77 = Utf8               java/lang/Object\n-  #78 = Utf8               org/assertj/core/api/WithAssertions\n-  #79 = Utf8               from\n-  #80 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #81 = Utf8               metadata\n-  #82 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n-  #83 = Utf8               dev/langchain4j/data/document/Metadata\n-  #84 = Utf8               add\n-  #85 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #86 = Utf8               java/util/List\n-  #87 = Utf8               (Ljava/lang/Object;)Z\n-  #88 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformer\n-  #89 = Utf8               transformAll\n-  #90 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #91 = Utf8               assertThat\n-  #92 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #93 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #94 = Utf8               org/assertj/core/api/ListAssert\n-  #95 = Utf8               containsExactly\n-  #96 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n+   #8 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n+   #9 = Methodref          #7.#3          // dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.\"<init>\":()V\n+  #10 = String             #11            // Text\n+  #11 = Utf8               Text\n+  #12 = Methodref          #13.#14        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #13 = Class              #15            // dev/langchain4j/data/segment/TextSegment\n+  #14 = NameAndType        #16:#17        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #15 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #16 = Utf8               from\n+  #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #18 = Methodref          #13.#19        // dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+  #19 = NameAndType        #20:#21        // metadata:()Ldev/langchain4j/data/document/Metadata;\n+  #20 = Utf8               metadata\n+  #21 = Utf8               ()Ldev/langchain4j/data/document/Metadata;\n+  #22 = String             #23            // abc\n+  #23 = Utf8               abc\n+  #24 = String             #25            // 123\n+  #25 = Utf8               123\n+  #26 = Methodref          #27.#28        // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #27 = Class              #29            // dev/langchain4j/data/document/Metadata\n+  #28 = NameAndType        #30:#31        // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #29 = Utf8               dev/langchain4j/data/document/Metadata\n+  #30 = Utf8               add\n+  #31 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #32 = String             #33            // Segment\n+  #33 = Utf8               Segment\n+  #34 = String             #35            // Fnord will be filtered out\n+  #35 = Utf8               Fnord will be filtered out\n+  #36 = String             #37            // Transformer\n+  #37 = Utf8               Transformer\n+  #38 = Class              #39            // java/util/ArrayList\n+  #39 = Utf8               java/util/ArrayList\n+  #40 = Methodref          #38.#3         // java/util/ArrayList.\"<init>\":()V\n+  #41 = InterfaceMethodref #42.#43        // java/util/List.add:(Ljava/lang/Object;)Z\n+  #42 = Class              #44            // java/util/List\n+  #43 = NameAndType        #30:#45        // add:(Ljava/lang/Object;)Z\n+  #44 = Utf8               java/util/List\n+  #45 = Utf8               (Ljava/lang/Object;)Z\n+  #46 = InterfaceMethodref #47.#48        // dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+  #47 = Class              #49            // dev/langchain4j/data/segment/TextSegmentTransformer\n+  #48 = NameAndType        #50:#51        // transformAll:(Ljava/util/List;)Ljava/util/List;\n+  #49 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformer\n+  #50 = Utf8               transformAll\n+  #51 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+  #52 = Methodref          #53.#54        // dev/langchain4j/data/segment/TextSegmentTransformerTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #53 = Class              #55            // dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  #54 = NameAndType        #56:#57        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #55 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  #56 = Utf8               assertThat\n+  #57 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #58 = String             #59            // text\n+  #59 = Utf8               text\n+  #60 = Methodref          #13.#61        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #61 = NameAndType        #16:#62        // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #62 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+  #63 = String             #64            // segment\n+  #64 = Utf8               segment\n+  #65 = String             #66            // transformer\n+  #66 = Utf8               transformer\n+  #67 = Methodref          #68.#69        // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #68 = Class              #70            // org/assertj/core/api/ListAssert\n+  #69 = NameAndType        #71:#72        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #70 = Utf8               org/assertj/core/api/ListAssert\n+  #71 = Utf8               containsExactly\n+  #72 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #73 = Class              #74            // org/assertj/core/api/WithAssertions\n+  #74 = Utf8               org/assertj/core/api/WithAssertions\n+  #75 = Utf8               Code\n+  #76 = Utf8               LineNumberTable\n+  #77 = Utf8               LocalVariableTable\n+  #78 = Utf8               this\n+  #79 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformerTest;\n+  #80 = Utf8               test_transformAll\n+  #81 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformer;\n+  #82 = Utf8               ts1\n+  #83 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #84 = Utf8               ts2\n+  #85 = Utf8               ts3\n+  #86 = Utf8               ts4\n+  #87 = Utf8               segmentList\n+  #88 = Utf8               Ljava/util/List;\n+  #89 = Utf8               LocalVariableTypeTable\n+  #90 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #91 = Utf8               RuntimeVisibleAnnotations\n+  #92 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #93 = Utf8               SourceFile\n+  #94 = Utf8               TextSegmentTransformerTest.java\n+  #95 = Utf8               InnerClasses\n+  #96 = Utf8               LowercaseFnordTransformer\n {\n   dev.langchain4j.data.segment.TextSegmentTransformerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -120,81 +120,81 @@\n             0       5     0  this   Ldev/langchain4j/data/segment/TextSegmentTransformerTest;\n \n   public void test_transformAll();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=7, args_size=1\n-         0: new           #2                  // class dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n+         0: new           #7                  // class dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer.\"<init>\":()V\n          7: astore_1\n-         8: ldc           #4                  // String Text\n-        10: invokestatic  #5                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         8: ldc           #10                 // String Text\n+        10: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n         13: astore_2\n         14: aload_2\n-        15: invokevirtual #6                  // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-        18: ldc           #7                  // String abc\n-        20: ldc           #8                  // String 123\n-        22: invokevirtual #9                  // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        15: invokevirtual #18                 // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+        18: ldc           #22                 // String abc\n+        20: ldc           #24                 // String 123\n+        22: invokevirtual #26                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n         25: pop\n-        26: ldc           #10                 // String Segment\n-        28: invokestatic  #5                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        26: ldc           #32                 // String Segment\n+        28: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n         31: astore_3\n-        32: ldc           #11                 // String Fnord will be filtered out\n-        34: invokestatic  #5                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        32: ldc           #34                 // String Fnord will be filtered out\n+        34: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n         37: astore        4\n-        39: ldc           #12                 // String Transformer\n-        41: invokestatic  #5                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        39: ldc           #36                 // String Transformer\n+        41: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n         44: astore        5\n-        46: new           #13                 // class java/util/ArrayList\n+        46: new           #38                 // class java/util/ArrayList\n         49: dup\n-        50: invokespecial #14                 // Method java/util/ArrayList.\"<init>\":()V\n+        50: invokespecial #40                 // Method java/util/ArrayList.\"<init>\":()V\n         53: astore        6\n         55: aload         6\n         57: aload_2\n-        58: invokeinterface #15,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        58: invokeinterface #41,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         63: pop\n         64: aload         6\n         66: aload_3\n-        67: invokeinterface #15,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        67: invokeinterface #41,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         72: pop\n         73: aload         6\n         75: aload         4\n-        77: invokeinterface #15,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        77: invokeinterface #41,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         82: pop\n         83: aload         6\n         85: aload         5\n-        87: invokeinterface #15,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        87: invokeinterface #41,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         92: pop\n         93: aload_0\n         94: aload_1\n         95: aload         6\n-        97: invokeinterface #16,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-       102: invokevirtual #17                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        97: invokeinterface #46,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       102: invokevirtual #52                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        105: iconst_3\n-       106: anewarray     #18                 // class dev/langchain4j/data/segment/TextSegment\n+       106: anewarray     #13                 // class dev/langchain4j/data/segment/TextSegment\n        109: dup\n        110: iconst_0\n-       111: ldc           #19                 // String text\n+       111: ldc           #58                 // String text\n        113: aload_2\n-       114: invokevirtual #6                  // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n-       117: invokestatic  #20                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+       114: invokevirtual #18                 // Method dev/langchain4j/data/segment/TextSegment.metadata:()Ldev/langchain4j/data/document/Metadata;\n+       117: invokestatic  #60                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n        120: aastore\n        121: dup\n        122: iconst_1\n-       123: ldc           #21                 // String segment\n-       125: invokestatic  #5                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       123: ldc           #63                 // String segment\n+       125: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        128: aastore\n        129: dup\n        130: iconst_2\n-       131: ldc           #22                 // String transformer\n-       133: invokestatic  #5                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       131: ldc           #65                 // String transformer\n+       133: invokestatic  #12                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        136: aastore\n-       137: invokevirtual #23                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       137: invokevirtual #67                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        140: pop\n        141: return\n       LineNumberTable:\n         line 23: 0\n         line 24: 8\n         line 25: 14\n         line 27: 26\n@@ -220,13 +220,13 @@\n            39     103     4   ts3   Ldev/langchain4j/data/segment/TextSegment;\n            46      96     5   ts4   Ldev/langchain4j/data/segment/TextSegment;\n            55      87     6 segmentList   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            55      87     6 segmentList   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n     RuntimeVisibleAnnotations:\n-      0: #49()\n+      0: #92()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TextSegmentTransformerTest.java\"\n InnerClasses:\n-  public static #27= #2 of #24;           // LowercaseFnordTransformer=class dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer of class dev/langchain4j/data/segment/TextSegmentTransformerTest\n+  public static #96= #7 of #53;           // LowercaseFnordTransformer=class dev/langchain4j/data/segment/TextSegmentTransformerTest$LowercaseFnordTransformer of class dev/langchain4j/data/segment/TextSegmentTransformerTest\n"}]}, {"source1": "dev/langchain4j/internal/ExceptionsTest.class", "source2": "dev/langchain4j/internal/ExceptionsTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,72 +1,72 @@\n-  SHA-256 checksum ed89d9034591f7ff817a9353e12ab148557c00f30e6a42de45ea4b6462b64d06\n+  SHA-256 checksum 16158da135d334355d9717b6b9feb9f6bbcf01e84a60b093fa7763efe54ed154\n   Compiled from \"ExceptionsTest.java\"\n class dev.langchain4j.internal.ExceptionsTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #14                         // dev/langchain4j/internal/ExceptionsTest\n-  super_class: #3                         // java/lang/Object\n+  this_class: #18                         // dev/langchain4j/internal/ExceptionsTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 1\n Constant pool:\n-   #1 = Methodref          #3.#29         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #30            // test %s\n-   #3 = Class              #31            // java/lang/Object\n-   #4 = String             #32            // test\n-   #5 = Methodref          #33.#34        // dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-   #6 = Methodref          #14.#35        // dev/langchain4j/internal/ExceptionsTest.assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-   #7 = Class              #36            // java/lang/IllegalArgumentException\n-   #8 = Methodref          #9.#37         // org/assertj/core/api/AbstractThrowableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-   #9 = Class              #38            // org/assertj/core/api/AbstractThrowableAssert\n-  #10 = String             #39            // test test\n-  #11 = Methodref          #9.#40         // org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #12 = Methodref          #33.#41        // dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n-  #13 = Class              #42            // java/lang/RuntimeException\n-  #14 = Class              #43            // dev/langchain4j/internal/ExceptionsTest\n-  #15 = Class              #44            // org/assertj/core/api/WithAssertions\n-  #16 = Utf8               <init>\n-  #17 = Utf8               ()V\n-  #18 = Utf8               Code\n-  #19 = Utf8               LineNumberTable\n-  #20 = Utf8               LocalVariableTable\n-  #21 = Utf8               this\n-  #22 = Utf8               Ldev/langchain4j/internal/ExceptionsTest;\n-  #23 = Utf8               test_illegalArgument\n-  #24 = Utf8               RuntimeVisibleAnnotations\n-  #25 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #26 = Utf8               test_runtime\n-  #27 = Utf8               SourceFile\n-  #28 = Utf8               ExceptionsTest.java\n-  #29 = NameAndType        #16:#17        // \"<init>\":()V\n-  #30 = Utf8               test %s\n-  #31 = Utf8               java/lang/Object\n-  #32 = Utf8               test\n-  #33 = Class              #45            // dev/langchain4j/internal/Exceptions\n-  #34 = NameAndType        #46:#47        // illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-  #35 = NameAndType        #48:#49        // assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #36 = Utf8               java/lang/IllegalArgumentException\n-  #37 = NameAndType        #50:#51        // isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #38 = Utf8               org/assertj/core/api/AbstractThrowableAssert\n-  #39 = Utf8               test test\n-  #40 = NameAndType        #52:#53        // hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #41 = NameAndType        #54:#55        // runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // test %s\n+   #8 = Utf8               test %s\n+   #9 = String             #10            // test\n+  #10 = Utf8               test\n+  #11 = Methodref          #12.#13        // dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+  #12 = Class              #14            // dev/langchain4j/internal/Exceptions\n+  #13 = NameAndType        #15:#16        // illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+  #14 = Utf8               dev/langchain4j/internal/Exceptions\n+  #15 = Utf8               illegalArgument\n+  #16 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+  #17 = Methodref          #18.#19        // dev/langchain4j/internal/ExceptionsTest.assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #18 = Class              #20            // dev/langchain4j/internal/ExceptionsTest\n+  #19 = NameAndType        #21:#22        // assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #20 = Utf8               dev/langchain4j/internal/ExceptionsTest\n+  #21 = Utf8               assertThat\n+  #22 = Utf8               (Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #23 = Class              #24            // java/lang/IllegalArgumentException\n+  #24 = Utf8               java/lang/IllegalArgumentException\n+  #25 = Methodref          #26.#27        // org/assertj/core/api/AbstractThrowableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #26 = Class              #28            // org/assertj/core/api/AbstractThrowableAssert\n+  #27 = NameAndType        #29:#30        // isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #28 = Utf8               org/assertj/core/api/AbstractThrowableAssert\n+  #29 = Utf8               isInstanceOf\n+  #30 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #31 = String             #32            // test test\n+  #32 = Utf8               test test\n+  #33 = Methodref          #26.#34        // org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #34 = NameAndType        #35:#36        // hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #35 = Utf8               hasMessage\n+  #36 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #37 = Methodref          #12.#38        // dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+  #38 = NameAndType        #39:#40        // runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+  #39 = Utf8               runtime\n+  #40 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+  #41 = Class              #42            // java/lang/RuntimeException\n   #42 = Utf8               java/lang/RuntimeException\n-  #43 = Utf8               dev/langchain4j/internal/ExceptionsTest\n+  #43 = Class              #44            // org/assertj/core/api/WithAssertions\n   #44 = Utf8               org/assertj/core/api/WithAssertions\n-  #45 = Utf8               dev/langchain4j/internal/Exceptions\n-  #46 = Utf8               illegalArgument\n-  #47 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-  #48 = Utf8               assertThat\n-  #49 = Utf8               (Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #50 = Utf8               isInstanceOf\n-  #51 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #52 = Utf8               hasMessage\n-  #53 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #54 = Utf8               runtime\n-  #55 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+  #45 = Utf8               Code\n+  #46 = Utf8               LineNumberTable\n+  #47 = Utf8               LocalVariableTable\n+  #48 = Utf8               this\n+  #49 = Utf8               Ldev/langchain4j/internal/ExceptionsTest;\n+  #50 = Utf8               test_illegalArgument\n+  #51 = Utf8               RuntimeVisibleAnnotations\n+  #52 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #53 = Utf8               test_runtime\n+  #54 = Utf8               SourceFile\n+  #55 = Utf8               ExceptionsTest.java\n {\n   dev.langchain4j.internal.ExceptionsTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -80,70 +80,70 @@\n \n   public void test_illegalArgument();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #2                  // String test %s\n+         1: ldc           #7                  // String test %s\n          3: iconst_1\n-         4: anewarray     #3                  // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n-         9: ldc           #4                  // String test\n+         9: ldc           #9                  // String test\n         11: aastore\n-        12: invokestatic  #5                  // Method dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-        15: invokevirtual #6                  // Method assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-        18: ldc           #7                  // class java/lang/IllegalArgumentException\n-        20: invokevirtual #8                  // Method org/assertj/core/api/AbstractThrowableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-        23: checkcast     #9                  // class org/assertj/core/api/AbstractThrowableAssert\n-        26: ldc           #10                 // String test test\n-        28: invokevirtual #11                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        12: invokestatic  #11                 // Method dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+        15: invokevirtual #17                 // Method assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        18: ldc           #23                 // class java/lang/IllegalArgumentException\n+        20: invokevirtual #25                 // Method org/assertj/core/api/AbstractThrowableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        23: checkcast     #26                 // class org/assertj/core/api/AbstractThrowableAssert\n+        26: ldc           #31                 // String test test\n+        28: invokevirtual #33                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n         31: pop\n         32: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 20\n         line 11: 28\n         line 12: 32\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      33     0  this   Ldev/langchain4j/internal/ExceptionsTest;\n     RuntimeVisibleAnnotations:\n-      0: #25()\n+      0: #52()\n         org.junit.jupiter.api.Test\n \n   public void test_runtime();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #2                  // String test %s\n+         1: ldc           #7                  // String test %s\n          3: iconst_1\n-         4: anewarray     #3                  // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n-         9: ldc           #4                  // String test\n+         9: ldc           #9                  // String test\n         11: aastore\n-        12: invokestatic  #12                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n-        15: invokevirtual #6                  // Method assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-        18: ldc           #13                 // class java/lang/RuntimeException\n-        20: invokevirtual #8                  // Method org/assertj/core/api/AbstractThrowableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-        23: checkcast     #9                  // class org/assertj/core/api/AbstractThrowableAssert\n-        26: ldc           #10                 // String test test\n-        28: invokevirtual #11                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        12: invokestatic  #37                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+        15: invokevirtual #17                 // Method assertThat:(Ljava/lang/Throwable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        18: ldc           #41                 // class java/lang/RuntimeException\n+        20: invokevirtual #25                 // Method org/assertj/core/api/AbstractThrowableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        23: checkcast     #26                 // class org/assertj/core/api/AbstractThrowableAssert\n+        26: ldc           #31                 // String test test\n+        28: invokevirtual #33                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n         31: pop\n         32: return\n       LineNumberTable:\n         line 16: 0\n         line 17: 20\n         line 18: 28\n         line 19: 32\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      33     0  this   Ldev/langchain4j/internal/ExceptionsTest;\n     RuntimeVisibleAnnotations:\n-      0: #25()\n+      0: #52()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ExceptionsTest.java\"\n"}]}, {"source1": "dev/langchain4j/internal/GsonJsonCodecTest$1.class", "source2": "dev/langchain4j/internal/GsonJsonCodecTest$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,66 +1,66 @@\n-  SHA-256 checksum 0c5660a1eacf39212fa736c9dbb05218bc1237c0fa709254b8e230c0bbb7ed80\n+  SHA-256 checksum 221567fcd53901cdfb321a037900fe8bb83c19ae5ca5a213f31847383baaf936\n   Compiled from \"GsonJsonCodecTest.java\"\n class dev.langchain4j.internal.GsonJsonCodecTest$1 extends com.google.gson.reflect.TypeToken<java.util.Map<java.lang.String, java.lang.String>>\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/internal/GsonJsonCodecTest$1\n-  super_class: #4                         // com/google/gson/reflect/TypeToken\n+  this_class: #2                          // dev/langchain4j/internal/GsonJsonCodecTest$1\n+  super_class: #8                         // com/google/gson/reflect/TypeToken\n   interfaces: 0, fields: 1, methods: 1, attributes: 4\n Constant pool:\n-   #1 = Fieldref           #3.#22         // dev/langchain4j/internal/GsonJsonCodecTest$1.this$0:Ldev/langchain4j/internal/GsonJsonCodecTest;\n-   #2 = Methodref          #4.#23         // com/google/gson/reflect/TypeToken.\"<init>\":()V\n-   #3 = Class              #24            // dev/langchain4j/internal/GsonJsonCodecTest$1\n-   #4 = Class              #25            // com/google/gson/reflect/TypeToken\n+   #1 = Fieldref           #2.#3          // dev/langchain4j/internal/GsonJsonCodecTest$1.this$0:Ldev/langchain4j/internal/GsonJsonCodecTest;\n+   #2 = Class              #4             // dev/langchain4j/internal/GsonJsonCodecTest$1\n+   #3 = NameAndType        #5:#6          // this$0:Ldev/langchain4j/internal/GsonJsonCodecTest;\n+   #4 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest$1\n    #5 = Utf8               this$0\n    #6 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest;\n-   #7 = Utf8               <init>\n-   #8 = Utf8               (Ldev/langchain4j/internal/GsonJsonCodecTest;)V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               InnerClasses\n-  #14 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest$1;\n-  #15 = Utf8               Signature\n-  #16 = Utf8               Lcom/google/gson/reflect/TypeToken<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;\n-  #17 = Utf8               SourceFile\n-  #18 = Utf8               GsonJsonCodecTest.java\n-  #19 = Utf8               EnclosingMethod\n-  #20 = Class              #26            // dev/langchain4j/internal/GsonJsonCodecTest\n-  #21 = NameAndType        #27:#28        // test_map:()V\n-  #22 = NameAndType        #5:#6          // this$0:Ldev/langchain4j/internal/GsonJsonCodecTest;\n-  #23 = NameAndType        #7:#28         // \"<init>\":()V\n-  #24 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest$1\n-  #25 = Utf8               com/google/gson/reflect/TypeToken\n-  #26 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest\n+   #7 = Methodref          #8.#9          // com/google/gson/reflect/TypeToken.\"<init>\":()V\n+   #8 = Class              #10            // com/google/gson/reflect/TypeToken\n+   #9 = NameAndType        #11:#12        // \"<init>\":()V\n+  #10 = Utf8               com/google/gson/reflect/TypeToken\n+  #11 = Utf8               <init>\n+  #12 = Utf8               ()V\n+  #13 = Utf8               (Ldev/langchain4j/internal/GsonJsonCodecTest;)V\n+  #14 = Utf8               Code\n+  #15 = Utf8               LineNumberTable\n+  #16 = Utf8               LocalVariableTable\n+  #17 = Utf8               this\n+  #18 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest$1;\n+  #19 = Utf8               Signature\n+  #20 = Utf8               Lcom/google/gson/reflect/TypeToken<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;\n+  #21 = Utf8               SourceFile\n+  #22 = Utf8               GsonJsonCodecTest.java\n+  #23 = Utf8               EnclosingMethod\n+  #24 = Class              #25            // dev/langchain4j/internal/GsonJsonCodecTest\n+  #25 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest\n+  #26 = NameAndType        #27:#12        // test_map:()V\n   #27 = Utf8               test_map\n-  #28 = Utf8               ()V\n+  #28 = Utf8               InnerClasses\n {\n   final dev.langchain4j.internal.GsonJsonCodecTest this$0;\n     descriptor: Ldev/langchain4j/internal/GsonJsonCodecTest;\n     flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC\n \n   dev.langchain4j.internal.GsonJsonCodecTest$1(dev.langchain4j.internal.GsonJsonCodecTest);\n     descriptor: (Ldev/langchain4j/internal/GsonJsonCodecTest;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n          2: putfield      #1                  // Field this$0:Ldev/langchain4j/internal/GsonJsonCodecTest;\n          5: aload_0\n-         6: invokespecial #2                  // Method com/google/gson/reflect/TypeToken.\"<init>\":()V\n+         6: invokespecial #7                  // Method com/google/gson/reflect/TypeToken.\"<init>\":()V\n          9: return\n       LineNumberTable:\n         line 64: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/internal/GsonJsonCodecTest$1;\n             0      10     1 this$0   Ldev/langchain4j/internal/GsonJsonCodecTest;\n }\n-Signature: #16                          // Lcom/google/gson/reflect/TypeToken<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;\n+Signature: #20                          // Lcom/google/gson/reflect/TypeToken<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;\n SourceFile: \"GsonJsonCodecTest.java\"\n-EnclosingMethod: #20.#21                // dev.langchain4j.internal.GsonJsonCodecTest.test_map\n+EnclosingMethod: #24.#26                // dev.langchain4j.internal.GsonJsonCodecTest.test_map\n InnerClasses:\n-  #3;                                     // class dev/langchain4j/internal/GsonJsonCodecTest$1\n+  #2;                                     // class dev/langchain4j/internal/GsonJsonCodecTest$1\n"}]}, {"source1": "dev/langchain4j/internal/GsonJsonCodecTest$DateExample.class", "source2": "dev/langchain4j/internal/GsonJsonCodecTest$DateExample.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,59 +1,58 @@\n-  SHA-256 checksum c83e14d92cef5b78243598309dbd53df6f31bcd8a450bed505eafa25f68ca08d\n+  SHA-256 checksum 5a56d1a958e20e73312d34693264c20fdb04f668db40a9f1a365f9585d028ea9\n   Compiled from \"GsonJsonCodecTest.java\"\n public class dev.langchain4j.internal.GsonJsonCodecTest$DateExample\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n-  super_class: #7                         // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 2, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #7.#30         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #4.#31         // dev/langchain4j/internal/GsonJsonCodecTest$DateExample.localDate:Ljava/time/LocalDate;\n-   #3 = Fieldref           #4.#32         // dev/langchain4j/internal/GsonJsonCodecTest$DateExample.localDateTime:Ljava/time/LocalDateTime;\n-   #4 = Class              #34            // dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n-   #5 = Methodref          #35.#36        // java/time/LocalDate.equals:(Ljava/lang/Object;)Z\n-   #6 = Methodref          #37.#36        // java/time/LocalDateTime.equals:(Ljava/lang/Object;)Z\n-   #7 = Class              #38            // java/lang/Object\n-   #8 = Utf8               localDate\n-   #9 = Utf8               Ljava/time/LocalDate;\n-  #10 = Utf8               localDateTime\n-  #11 = Utf8               Ljava/time/LocalDateTime;\n-  #12 = Utf8               <init>\n-  #13 = Utf8               (Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n-  #14 = Utf8               Code\n-  #15 = Utf8               LineNumberTable\n-  #16 = Utf8               LocalVariableTable\n-  #17 = Utf8               this\n-  #18 = Utf8               DateExample\n-  #19 = Utf8               InnerClasses\n-  #20 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest$DateExample;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/internal/GsonJsonCodecTest$DateExample.localDate:Ljava/time/LocalDate;\n+   #8 = Class              #10            // dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n+   #9 = NameAndType        #11:#12        // localDate:Ljava/time/LocalDate;\n+  #10 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n+  #11 = Utf8               localDate\n+  #12 = Utf8               Ljava/time/LocalDate;\n+  #13 = Fieldref           #8.#14         // dev/langchain4j/internal/GsonJsonCodecTest$DateExample.localDateTime:Ljava/time/LocalDateTime;\n+  #14 = NameAndType        #15:#16        // localDateTime:Ljava/time/LocalDateTime;\n+  #15 = Utf8               localDateTime\n+  #16 = Utf8               Ljava/time/LocalDateTime;\n+  #17 = Methodref          #18.#19        // java/time/LocalDate.equals:(Ljava/lang/Object;)Z\n+  #18 = Class              #20            // java/time/LocalDate\n+  #19 = NameAndType        #21:#22        // equals:(Ljava/lang/Object;)Z\n+  #20 = Utf8               java/time/LocalDate\n   #21 = Utf8               equals\n   #22 = Utf8               (Ljava/lang/Object;)Z\n-  #23 = Utf8               o\n-  #24 = Utf8               Ljava/lang/Object;\n-  #25 = Utf8               that\n-  #26 = Utf8               StackMapTable\n-  #27 = Class              #34            // dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n-  #28 = Utf8               SourceFile\n-  #29 = Utf8               GsonJsonCodecTest.java\n-  #30 = NameAndType        #12:#39        // \"<init>\":()V\n-  #31 = NameAndType        #8:#9          // localDate:Ljava/time/LocalDate;\n-  #32 = NameAndType        #10:#11        // localDateTime:Ljava/time/LocalDateTime;\n-  #33 = Class              #40            // dev/langchain4j/internal/GsonJsonCodecTest\n-  #34 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n-  #35 = Class              #41            // java/time/LocalDate\n-  #36 = NameAndType        #21:#22        // equals:(Ljava/lang/Object;)Z\n-  #37 = Class              #42            // java/time/LocalDateTime\n-  #38 = Utf8               java/lang/Object\n-  #39 = Utf8               ()V\n+  #23 = Methodref          #24.#19        // java/time/LocalDateTime.equals:(Ljava/lang/Object;)Z\n+  #24 = Class              #25            // java/time/LocalDateTime\n+  #25 = Utf8               java/time/LocalDateTime\n+  #26 = Utf8               (Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+  #27 = Utf8               Code\n+  #28 = Utf8               LineNumberTable\n+  #29 = Utf8               LocalVariableTable\n+  #30 = Utf8               this\n+  #31 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest$DateExample;\n+  #32 = Utf8               o\n+  #33 = Utf8               Ljava/lang/Object;\n+  #34 = Utf8               that\n+  #35 = Utf8               StackMapTable\n+  #36 = Utf8               SourceFile\n+  #37 = Utf8               GsonJsonCodecTest.java\n+  #38 = Utf8               InnerClasses\n+  #39 = Class              #40            // dev/langchain4j/internal/GsonJsonCodecTest\n   #40 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest\n-  #41 = Utf8               java/time/LocalDate\n-  #42 = Utf8               java/time/LocalDateTime\n+  #41 = Utf8               DateExample\n {\n   public java.time.LocalDate localDate;\n     descriptor: Ljava/time/LocalDate;\n     flags: (0x0001) ACC_PUBLIC\n \n   public java.time.LocalDateTime localDateTime;\n     descriptor: Ljava/time/LocalDateTime;\n@@ -64,18 +63,18 @@\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=3\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field localDate:Ljava/time/LocalDate;\n+         6: putfield      #7                  // Field localDate:Ljava/time/LocalDate;\n          9: aload_0\n         10: aload_2\n-        11: putfield      #3                  // Field localDateTime:Ljava/time/LocalDateTime;\n+        11: putfield      #13                 // Field localDateTime:Ljava/time/LocalDateTime;\n         14: return\n       LineNumberTable:\n         line 90: 0\n         line 91: 4\n         line 92: 9\n         line 93: 14\n       LocalVariableTable:\n@@ -91,32 +90,32 @@\n       stack=2, locals=3, args_size=2\n          0: aload_0\n          1: aload_1\n          2: if_acmpne     7\n          5: iconst_1\n          6: ireturn\n          7: aload_1\n-         8: instanceof    #4                  // class dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n+         8: instanceof    #8                  // class dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n         11: ifne          16\n         14: iconst_0\n         15: ireturn\n         16: aload_1\n-        17: checkcast     #4                  // class dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n+        17: checkcast     #8                  // class dev/langchain4j/internal/GsonJsonCodecTest$DateExample\n         20: astore_2\n         21: aload_0\n-        22: getfield      #2                  // Field localDate:Ljava/time/LocalDate;\n+        22: getfield      #7                  // Field localDate:Ljava/time/LocalDate;\n         25: aload_2\n-        26: getfield      #2                  // Field localDate:Ljava/time/LocalDate;\n-        29: invokevirtual #5                  // Method java/time/LocalDate.equals:(Ljava/lang/Object;)Z\n+        26: getfield      #7                  // Field localDate:Ljava/time/LocalDate;\n+        29: invokevirtual #17                 // Method java/time/LocalDate.equals:(Ljava/lang/Object;)Z\n         32: ifeq          53\n         35: aload_0\n-        36: getfield      #3                  // Field localDateTime:Ljava/time/LocalDateTime;\n+        36: getfield      #13                 // Field localDateTime:Ljava/time/LocalDateTime;\n         39: aload_2\n-        40: getfield      #3                  // Field localDateTime:Ljava/time/LocalDateTime;\n-        43: invokevirtual #6                  // Method java/time/LocalDateTime.equals:(Ljava/lang/Object;)Z\n+        40: getfield      #13                 // Field localDateTime:Ljava/time/LocalDateTime;\n+        43: invokevirtual #23                 // Method java/time/LocalDateTime.equals:(Ljava/lang/Object;)Z\n         46: ifeq          53\n         49: iconst_1\n         50: goto          54\n         53: iconst_0\n         54: ireturn\n       LineNumberTable:\n         line 97: 0\n@@ -137,8 +136,8 @@\n           offset_delta = 36\n           locals = [ class dev/langchain4j/internal/GsonJsonCodecTest$DateExample ]\n         frame_type = 64 /* same_locals_1_stack_item */\n           stack = [ int ]\n }\n SourceFile: \"GsonJsonCodecTest.java\"\n InnerClasses:\n-  public static #18= #4 of #33;           // DateExample=class dev/langchain4j/internal/GsonJsonCodecTest$DateExample of class dev/langchain4j/internal/GsonJsonCodecTest\n+  public static #41= #8 of #39;           // DateExample=class dev/langchain4j/internal/GsonJsonCodecTest$DateExample of class dev/langchain4j/internal/GsonJsonCodecTest\n"}]}, {"source1": "dev/langchain4j/internal/GsonJsonCodecTest$Example.class", "source2": "dev/langchain4j/internal/GsonJsonCodecTest$Example.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,56 +1,55 @@\n-  SHA-256 checksum 44ab1c5f0b8bff587d443ac931540384d87186f35a7ec17ab285f6d7c2b59b9e\n+  SHA-256 checksum 1058346df56cf798f214e34573a150eb81d027ac69fb52b22ed43594bef3ef31\n   Compiled from \"GsonJsonCodecTest.java\"\n public class dev.langchain4j.internal.GsonJsonCodecTest$Example\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/internal/GsonJsonCodecTest$Example\n-  super_class: #6                         // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/internal/GsonJsonCodecTest$Example\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 2, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #6.#29         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #4.#30         // dev/langchain4j/internal/GsonJsonCodecTest$Example.name:Ljava/lang/String;\n-   #3 = Fieldref           #4.#31         // dev/langchain4j/internal/GsonJsonCodecTest$Example.age:I\n-   #4 = Class              #33            // dev/langchain4j/internal/GsonJsonCodecTest$Example\n-   #5 = Methodref          #34.#35        // java/lang/String.equals:(Ljava/lang/Object;)Z\n-   #6 = Class              #36            // java/lang/Object\n-   #7 = Utf8               name\n-   #8 = Utf8               Ljava/lang/String;\n-   #9 = Utf8               age\n-  #10 = Utf8               I\n-  #11 = Utf8               <init>\n-  #12 = Utf8               (Ljava/lang/String;I)V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               Example\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest$Example;\n-  #20 = Utf8               equals\n-  #21 = Utf8               (Ljava/lang/Object;)Z\n-  #22 = Utf8               o\n-  #23 = Utf8               Ljava/lang/Object;\n-  #24 = Utf8               example\n-  #25 = Utf8               StackMapTable\n-  #26 = Class              #33            // dev/langchain4j/internal/GsonJsonCodecTest$Example\n-  #27 = Utf8               SourceFile\n-  #28 = Utf8               GsonJsonCodecTest.java\n-  #29 = NameAndType        #11:#37        // \"<init>\":()V\n-  #30 = NameAndType        #7:#8          // name:Ljava/lang/String;\n-  #31 = NameAndType        #9:#10         // age:I\n-  #32 = Class              #38            // dev/langchain4j/internal/GsonJsonCodecTest\n-  #33 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest$Example\n-  #34 = Class              #39            // java/lang/String\n-  #35 = NameAndType        #20:#21        // equals:(Ljava/lang/Object;)Z\n-  #36 = Utf8               java/lang/Object\n-  #37 = Utf8               ()V\n-  #38 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest\n-  #39 = Utf8               java/lang/String\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/internal/GsonJsonCodecTest$Example.name:Ljava/lang/String;\n+   #8 = Class              #10            // dev/langchain4j/internal/GsonJsonCodecTest$Example\n+   #9 = NameAndType        #11:#12        // name:Ljava/lang/String;\n+  #10 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest$Example\n+  #11 = Utf8               name\n+  #12 = Utf8               Ljava/lang/String;\n+  #13 = Fieldref           #8.#14         // dev/langchain4j/internal/GsonJsonCodecTest$Example.age:I\n+  #14 = NameAndType        #15:#16        // age:I\n+  #15 = Utf8               age\n+  #16 = Utf8               I\n+  #17 = Methodref          #18.#19        // java/lang/String.equals:(Ljava/lang/Object;)Z\n+  #18 = Class              #20            // java/lang/String\n+  #19 = NameAndType        #21:#22        // equals:(Ljava/lang/Object;)Z\n+  #20 = Utf8               java/lang/String\n+  #21 = Utf8               equals\n+  #22 = Utf8               (Ljava/lang/Object;)Z\n+  #23 = Utf8               (Ljava/lang/String;I)V\n+  #24 = Utf8               Code\n+  #25 = Utf8               LineNumberTable\n+  #26 = Utf8               LocalVariableTable\n+  #27 = Utf8               this\n+  #28 = Utf8               Ldev/langchain4j/internal/GsonJsonCodecTest$Example;\n+  #29 = Utf8               o\n+  #30 = Utf8               Ljava/lang/Object;\n+  #31 = Utf8               example\n+  #32 = Utf8               StackMapTable\n+  #33 = Utf8               SourceFile\n+  #34 = Utf8               GsonJsonCodecTest.java\n+  #35 = Utf8               InnerClasses\n+  #36 = Class              #37            // dev/langchain4j/internal/GsonJsonCodecTest\n+  #37 = Utf8               dev/langchain4j/internal/GsonJsonCodecTest\n+  #38 = Utf8               Example\n {\n   public java.lang.String name;\n     descriptor: Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n \n   public int age;\n     descriptor: I\n@@ -61,18 +60,18 @@\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=3\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field name:Ljava/lang/String;\n+         6: putfield      #7                  // Field name:Ljava/lang/String;\n          9: aload_0\n         10: iload_2\n-        11: putfield      #3                  // Field age:I\n+        11: putfield      #13                 // Field age:I\n         14: return\n       LineNumberTable:\n         line 20: 0\n         line 21: 4\n         line 22: 9\n         line 23: 14\n       LocalVariableTable:\n@@ -88,31 +87,31 @@\n       stack=2, locals=3, args_size=2\n          0: aload_0\n          1: aload_1\n          2: if_acmpne     7\n          5: iconst_1\n          6: ireturn\n          7: aload_1\n-         8: instanceof    #4                  // class dev/langchain4j/internal/GsonJsonCodecTest$Example\n+         8: instanceof    #8                  // class dev/langchain4j/internal/GsonJsonCodecTest$Example\n         11: ifne          16\n         14: iconst_0\n         15: ireturn\n         16: aload_1\n-        17: checkcast     #4                  // class dev/langchain4j/internal/GsonJsonCodecTest$Example\n+        17: checkcast     #8                  // class dev/langchain4j/internal/GsonJsonCodecTest$Example\n         20: astore_2\n         21: aload_0\n-        22: getfield      #3                  // Field age:I\n+        22: getfield      #13                 // Field age:I\n         25: aload_2\n-        26: getfield      #3                  // Field age:I\n+        26: getfield      #13                 // Field age:I\n         29: if_icmpne     50\n         32: aload_0\n-        33: getfield      #2                  // Field name:Ljava/lang/String;\n+        33: getfield      #7                  // Field name:Ljava/lang/String;\n         36: aload_2\n-        37: getfield      #2                  // Field name:Ljava/lang/String;\n-        40: invokevirtual #5                  // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+        37: getfield      #7                  // Field name:Ljava/lang/String;\n+        40: invokevirtual #17                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         43: ifeq          50\n         46: iconst_1\n         47: goto          51\n         50: iconst_0\n         51: ireturn\n       LineNumberTable:\n         line 27: 0\n@@ -133,8 +132,8 @@\n           offset_delta = 33\n           locals = [ class dev/langchain4j/internal/GsonJsonCodecTest$Example ]\n         frame_type = 64 /* same_locals_1_stack_item */\n           stack = [ int ]\n }\n SourceFile: \"GsonJsonCodecTest.java\"\n InnerClasses:\n-  public static #17= #4 of #32;           // Example=class dev/langchain4j/internal/GsonJsonCodecTest$Example of class dev/langchain4j/internal/GsonJsonCodecTest\n+  public static #38= #8 of #36;           // Example=class dev/langchain4j/internal/GsonJsonCodecTest$Example of class dev/langchain4j/internal/GsonJsonCodecTest\n"}]}, {"source1": "dev/langchain4j/internal/GsonJsonCodecTest.class", "source2": "dev/langchain4j/internal/GsonJsonCodecTest.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -27,47 +27,43 @@\n         return sb.toString();\n     }\n     \n     @Test\n     public void test() throws Exception {\n         final GsonJsonCodec codec = new GsonJsonCodec();\n         final GsonJsonCodecTest.Example example = new GsonJsonCodecTest.Example(\"John\", 42);\n-        this.assertThat(codec.fromJson(codec.toJson((Object)example), (Class)GsonJsonCodecTest.Example.class)).isEqualTo((Object)example);\n+        this.assertThat((Object)codec.fromJson(codec.toJson((Object)example), (Class)GsonJsonCodecTest.Example.class)).isEqualTo((Object)example);\n         final InputStream inputStream = codec.toInputStream((Object)example, (Class)GsonJsonCodecTest.Example.class);\n-        this.assertThat(codec.fromJson(readAllBytes(inputStream), (Class)GsonJsonCodecTest.Example.class)).isEqualTo((Object)example);\n+        this.assertThat((Object)codec.fromJson(readAllBytes(inputStream), (Class)GsonJsonCodecTest.Example.class)).isEqualTo((Object)example);\n     }\n     \n     @Test\n     public void test_map() {\n         final GsonJsonCodec codec = new GsonJsonCodec();\n         final TypeToken<Map<String, String>> tt = (TypeToken<Map<String, String>>)new GsonJsonCodecTest.GsonJsonCodecTest$1(this);\n         this.assertThat((Object)GsonJsonCodec.MAP_TYPE).isEqualTo((Object)tt.getType());\n         final Map<String, String> expectedMap = new HashMap<String, String>();\n         expectedMap.put(\"a\", \"b\");\n         this.assertThat(codec.toJson((Object)expectedMap)).isEqualTo(\"{\\n  \\\"a\\\": \\\"b\\\"\\n}\");\n         this.assertThat(codec.fromJson(\"{\\\"a\\\": \\\"b\\\"}\", (Class)expectedMap.getClass())).isEqualTo((Object)expectedMap);\n-        this.assertThatExceptionOfType((Class)JsonSyntaxException.class).isThrownBy(() -> {\n-            final Map map = (Map)codec.fromJson(\"{\\\"a\\\": [1, 2]}\", (Class)Map.class);\n-        });\n+        this.assertThatExceptionOfType((Class)JsonSyntaxException.class).isThrownBy(() -> codec.fromJson(\"{\\\"a\\\": [1, 2]}\", (Class)Map.class));\n     }\n     \n     @Test\n     public void test_datetime() {\n         final GsonJsonCodec codec = new GsonJsonCodec();\n         final GsonJsonCodecTest.DateExample example = new GsonJsonCodecTest.DateExample(LocalDate.of(2019, 1, 1), LocalDateTime.of(2019, 1, 1, 0, 0, 0));\n         this.assertThat(codec.toJson((Object)example)).isEqualTo(\"{\\n  \\\"localDate\\\": \\\"2019-01-01\\\",\\n  \\\"localDateTime\\\": \\\"2019-01-01T00:00:00\\\"\\n}\");\n-        this.assertThat(codec.fromJson(codec.toJson((Object)example), (Class)GsonJsonCodecTest.DateExample.class)).isEqualTo((Object)example);\n+        this.assertThat((Object)codec.fromJson(codec.toJson((Object)example), (Class)GsonJsonCodecTest.DateExample.class)).isEqualTo((Object)example);\n     }\n     \n     @Test\n     public void test_broken() {\n         final GsonJsonCodec codec = new GsonJsonCodec();\n-        this.assertThatExceptionOfType((Class)JsonSyntaxException.class).isThrownBy(() -> {\n-            final Integer n = (Integer)codec.fromJson(\"abc\", (Class)Integer.class);\n-        });\n+        this.assertThatExceptionOfType((Class)JsonSyntaxException.class).isThrownBy(() -> codec.fromJson(\"abc\", (Class)Integer.class));\n         this.assertThatExceptionOfType((Class)ClassCastException.class).isThrownBy(() -> {\n             try (final InputStream ignored = codec.toInputStream((Object)\"abc\", (Class)Integer.class)) {\n                 this.fail(\"should not reach here\");\n             }\n         });\n     }\n }\n"}]}, {"source1": "dev/langchain4j/internal/JsonTest$1.class", "source2": "dev/langchain4j/internal/JsonTest$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,26 +1,26 @@\n-  SHA-256 checksum 2d5430213280ef93715c10255cc666feeb21bfef7012ffa3b4c514c94a29825e\n+  SHA-256 checksum 70e690c2b88dd586da2c0bb47dbbbfff385e6fed786f76fb6007396ac09c28f1\n   Compiled from \"JsonTest.java\"\n class dev.langchain4j.internal.JsonTest$1\n   minor version: 0\n   major version: 52\n   flags: (0x1020) ACC_SUPER, ACC_SYNTHETIC\n   this_class: #1                          // dev/langchain4j/internal/JsonTest$1\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 0, attributes: 3\n Constant pool:\n-   #1 = Class              #7             // dev/langchain4j/internal/JsonTest$1\n-   #2 = Class              #9             // java/lang/Object\n-   #3 = Utf8               SourceFile\n-   #4 = Utf8               JsonTest.java\n-   #5 = Utf8               EnclosingMethod\n-   #6 = Class              #10            // dev/langchain4j/internal/JsonTest\n-   #7 = Utf8               dev/langchain4j/internal/JsonTest$1\n-   #8 = Utf8               InnerClasses\n-   #9 = Utf8               java/lang/Object\n-  #10 = Utf8               dev/langchain4j/internal/JsonTest\n+   #1 = Class              #2             // dev/langchain4j/internal/JsonTest$1\n+   #2 = Utf8               dev/langchain4j/internal/JsonTest$1\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               SourceFile\n+   #6 = Utf8               JsonTest.java\n+   #7 = Utf8               EnclosingMethod\n+   #8 = Class              #9             // dev/langchain4j/internal/JsonTest\n+   #9 = Utf8               dev/langchain4j/internal/JsonTest\n+  #10 = Utf8               InnerClasses\n {\n }\n SourceFile: \"JsonTest.java\"\n-EnclosingMethod: #6.#0                  // dev.langchain4j.internal.JsonTest\n+EnclosingMethod: #8.#0                  // dev.langchain4j.internal.JsonTest\n InnerClasses:\n   static #1;                              // class dev/langchain4j/internal/JsonTest$1\n"}]}, {"source1": "dev/langchain4j/internal/JsonTest$TestData.class", "source2": "dev/langchain4j/internal/JsonTest$TestData.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,124 +1,124 @@\n-  SHA-256 checksum 15b3833712bd2873f9d32780bd58ea1e7136963a7002ea85f36388785521d651\n+  SHA-256 checksum dcc7488004033d27414cd51577661b35d72ef19a3900505b1dae13ea6b5da4b3\n   Compiled from \"JsonTest.java\"\n class dev.langchain4j.internal.JsonTest$TestData\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #6                          // dev/langchain4j/internal/JsonTest$TestData\n-  super_class: #7                         // java/lang/Object\n+  this_class: #2                          // dev/langchain4j/internal/JsonTest$TestData\n+  super_class: #8                         // java/lang/Object\n   interfaces: 0, fields: 3, methods: 8, attributes: 2\n Constant pool:\n-   #1 = Methodref          #6.#45         // dev/langchain4j/internal/JsonTest$TestData.\"<init>\":()V\n-   #2 = Methodref          #7.#45         // java/lang/Object.\"<init>\":()V\n-   #3 = Fieldref           #6.#46         // dev/langchain4j/internal/JsonTest$TestData.sampleDate:Ljava/time/LocalDate;\n-   #4 = Fieldref           #6.#47         // dev/langchain4j/internal/JsonTest$TestData.sampleDateTime:Ljava/time/LocalDateTime;\n-   #5 = Fieldref           #6.#48         // dev/langchain4j/internal/JsonTest$TestData.someValue:Ljava/lang/String;\n-   #6 = Class              #50            // dev/langchain4j/internal/JsonTest$TestData\n-   #7 = Class              #51            // java/lang/Object\n-   #8 = Utf8               sampleDate\n-   #9 = Utf8               Ljava/time/LocalDate;\n-  #10 = Utf8               sampleDateTime\n-  #11 = Utf8               Ljava/time/LocalDateTime;\n-  #12 = Utf8               someValue\n-  #13 = Utf8               Ljava/lang/String;\n-  #14 = Utf8               RuntimeVisibleAnnotations\n-  #15 = Utf8               Lcom/google/gson/annotations/SerializedName;\n-  #16 = Utf8               value\n-  #17 = Utf8               some_value\n-  #18 = Utf8               <init>\n-  #19 = Utf8               ()V\n-  #20 = Utf8               Code\n-  #21 = Utf8               LineNumberTable\n-  #22 = Utf8               LocalVariableTable\n-  #23 = Utf8               this\n-  #24 = Utf8               TestData\n-  #25 = Utf8               InnerClasses\n-  #26 = Utf8               Ldev/langchain4j/internal/JsonTest$TestData;\n-  #27 = Utf8               getSampleDate\n-  #28 = Utf8               ()Ljava/time/LocalDate;\n-  #29 = Utf8               setSampleDate\n-  #30 = Utf8               (Ljava/time/LocalDate;)V\n-  #31 = Utf8               getSampleDateTime\n-  #32 = Utf8               ()Ljava/time/LocalDateTime;\n-  #33 = Utf8               setSampleDateTime\n-  #34 = Utf8               (Ljava/time/LocalDateTime;)V\n-  #35 = Utf8               getSomeValue\n-  #36 = Utf8               ()Ljava/lang/String;\n-  #37 = Utf8               setSomeValue\n-  #38 = Utf8               (Ljava/lang/String;)V\n-  #39 = Class              #52            // dev/langchain4j/internal/JsonTest$1\n-  #40 = Utf8               (Ldev/langchain4j/internal/JsonTest$1;)V\n-  #41 = Utf8               x0\n-  #42 = Utf8               Ldev/langchain4j/internal/JsonTest$1;\n-  #43 = Utf8               SourceFile\n-  #44 = Utf8               JsonTest.java\n-  #45 = NameAndType        #18:#19        // \"<init>\":()V\n-  #46 = NameAndType        #8:#9          // sampleDate:Ljava/time/LocalDate;\n-  #47 = NameAndType        #10:#11        // sampleDateTime:Ljava/time/LocalDateTime;\n-  #48 = NameAndType        #12:#13        // someValue:Ljava/lang/String;\n-  #49 = Class              #53            // dev/langchain4j/internal/JsonTest\n-  #50 = Utf8               dev/langchain4j/internal/JsonTest$TestData\n-  #51 = Utf8               java/lang/Object\n-  #52 = Utf8               dev/langchain4j/internal/JsonTest$1\n-  #53 = Utf8               dev/langchain4j/internal/JsonTest\n+   #1 = Methodref          #2.#3          // dev/langchain4j/internal/JsonTest$TestData.\"<init>\":()V\n+   #2 = Class              #4             // dev/langchain4j/internal/JsonTest$TestData\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               dev/langchain4j/internal/JsonTest$TestData\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Methodref          #8.#3          // java/lang/Object.\"<init>\":()V\n+   #8 = Class              #9             // java/lang/Object\n+   #9 = Utf8               java/lang/Object\n+  #10 = Fieldref           #2.#11         // dev/langchain4j/internal/JsonTest$TestData.sampleDate:Ljava/time/LocalDate;\n+  #11 = NameAndType        #12:#13        // sampleDate:Ljava/time/LocalDate;\n+  #12 = Utf8               sampleDate\n+  #13 = Utf8               Ljava/time/LocalDate;\n+  #14 = Fieldref           #2.#15         // dev/langchain4j/internal/JsonTest$TestData.sampleDateTime:Ljava/time/LocalDateTime;\n+  #15 = NameAndType        #16:#17        // sampleDateTime:Ljava/time/LocalDateTime;\n+  #16 = Utf8               sampleDateTime\n+  #17 = Utf8               Ljava/time/LocalDateTime;\n+  #18 = Fieldref           #2.#19         // dev/langchain4j/internal/JsonTest$TestData.someValue:Ljava/lang/String;\n+  #19 = NameAndType        #20:#21        // someValue:Ljava/lang/String;\n+  #20 = Utf8               someValue\n+  #21 = Utf8               Ljava/lang/String;\n+  #22 = Utf8               RuntimeVisibleAnnotations\n+  #23 = Utf8               Lcom/google/gson/annotations/SerializedName;\n+  #24 = Utf8               value\n+  #25 = Utf8               some_value\n+  #26 = Utf8               Code\n+  #27 = Utf8               LineNumberTable\n+  #28 = Utf8               LocalVariableTable\n+  #29 = Utf8               this\n+  #30 = Utf8               Ldev/langchain4j/internal/JsonTest$TestData;\n+  #31 = Utf8               getSampleDate\n+  #32 = Utf8               ()Ljava/time/LocalDate;\n+  #33 = Utf8               setSampleDate\n+  #34 = Utf8               (Ljava/time/LocalDate;)V\n+  #35 = Utf8               getSampleDateTime\n+  #36 = Utf8               ()Ljava/time/LocalDateTime;\n+  #37 = Utf8               setSampleDateTime\n+  #38 = Utf8               (Ljava/time/LocalDateTime;)V\n+  #39 = Utf8               getSomeValue\n+  #40 = Utf8               ()Ljava/lang/String;\n+  #41 = Utf8               setSomeValue\n+  #42 = Utf8               (Ljava/lang/String;)V\n+  #43 = Utf8               (Ldev/langchain4j/internal/JsonTest$1;)V\n+  #44 = Utf8               x0\n+  #45 = Utf8               Ldev/langchain4j/internal/JsonTest$1;\n+  #46 = Utf8               SourceFile\n+  #47 = Utf8               JsonTest.java\n+  #48 = Utf8               InnerClasses\n+  #49 = Class              #50            // dev/langchain4j/internal/JsonTest\n+  #50 = Utf8               dev/langchain4j/internal/JsonTest\n+  #51 = Utf8               TestData\n+  #52 = Class              #53            // dev/langchain4j/internal/JsonTest$1\n+  #53 = Utf8               dev/langchain4j/internal/JsonTest$1\n {\n   private java.time.LocalDate sampleDate;\n     descriptor: Ljava/time/LocalDate;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.time.LocalDateTime sampleDateTime;\n     descriptor: Ljava/time/LocalDateTime;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.String someValue;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n     RuntimeVisibleAnnotations:\n-      0: #15(#16=s#17)\n+      0: #23(#24=s#25)\n         com.google.gson.annotations.SerializedName(\n           value=\"some_value\"\n         )\n \n   private dev.langchain4j.internal.JsonTest$TestData();\n     descriptor: ()V\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokespecial #2                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #7                  // Method java/lang/Object.\"<init>\":()V\n          4: return\n       LineNumberTable:\n         line 82: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n \n   java.time.LocalDate getSampleDate();\n     descriptor: ()Ljava/time/LocalDate;\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #3                  // Field sampleDate:Ljava/time/LocalDate;\n+         1: getfield      #10                 // Field sampleDate:Ljava/time/LocalDate;\n          4: areturn\n       LineNumberTable:\n         line 90: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n \n   void setSampleDate(java.time.LocalDate);\n     descriptor: (Ljava/time/LocalDate;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #3                  // Field sampleDate:Ljava/time/LocalDate;\n+         2: putfield      #10                 // Field sampleDate:Ljava/time/LocalDate;\n          5: return\n       LineNumberTable:\n         line 94: 0\n         line 95: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       6     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n@@ -126,30 +126,30 @@\n \n   java.time.LocalDateTime getSampleDateTime();\n     descriptor: ()Ljava/time/LocalDateTime;\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #4                  // Field sampleDateTime:Ljava/time/LocalDateTime;\n+         1: getfield      #14                 // Field sampleDateTime:Ljava/time/LocalDateTime;\n          4: areturn\n       LineNumberTable:\n         line 98: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n \n   void setSampleDateTime(java.time.LocalDateTime);\n     descriptor: (Ljava/time/LocalDateTime;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #4                  // Field sampleDateTime:Ljava/time/LocalDateTime;\n+         2: putfield      #14                 // Field sampleDateTime:Ljava/time/LocalDateTime;\n          5: return\n       LineNumberTable:\n         line 102: 0\n         line 103: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       6     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n@@ -157,30 +157,30 @@\n \n   java.lang.String getSomeValue();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #5                  // Field someValue:Ljava/lang/String;\n+         1: getfield      #18                 // Field someValue:Ljava/lang/String;\n          4: areturn\n       LineNumberTable:\n         line 106: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n \n   void setSomeValue(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #5                  // Field someValue:Ljava/lang/String;\n+         2: putfield      #18                 // Field someValue:Ljava/lang/String;\n          5: return\n       LineNumberTable:\n         line 110: 0\n         line 111: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       6     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n@@ -199,9 +199,9 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/internal/JsonTest$TestData;\n             0       5     1    x0   Ldev/langchain4j/internal/JsonTest$1;\n }\n SourceFile: \"JsonTest.java\"\n InnerClasses:\n-  private static #24= #6 of #49;          // TestData=class dev/langchain4j/internal/JsonTest$TestData of class dev/langchain4j/internal/JsonTest\n-  static #39;                             // class dev/langchain4j/internal/JsonTest$1\n+  private static #51= #2 of #49;          // TestData=class dev/langchain4j/internal/JsonTest$TestData of class dev/langchain4j/internal/JsonTest\n+  static #52;                             // class dev/langchain4j/internal/JsonTest$1\n"}]}, {"source1": "dev/langchain4j/internal/JsonTest$TestObject.class", "source2": "dev/langchain4j/internal/JsonTest$TestObject.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,49 +1,49 @@\n-  SHA-256 checksum 305fac544d8e09a66c9dfc70501973acfcfcb882db60d36ac0cb1b2a07cb6248\n+  SHA-256 checksum 20cc4e6f88bbc140ca6efef153c0d6881f0612444f3fe0e39239a0edc7ee8d16\n   Compiled from \"JsonTest.java\"\n class dev.langchain4j.internal.JsonTest$TestObject\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #5                          // dev/langchain4j/internal/JsonTest$TestObject\n-  super_class: #6                         // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/internal/JsonTest$TestObject\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 3, methods: 1, attributes: 2\n Constant pool:\n-   #1 = Methodref          #6.#24         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #5.#25         // dev/langchain4j/internal/JsonTest$TestObject.name:Ljava/lang/String;\n-   #3 = Fieldref           #5.#26         // dev/langchain4j/internal/JsonTest$TestObject.date:Ljava/time/LocalDate;\n-   #4 = Fieldref           #5.#27         // dev/langchain4j/internal/JsonTest$TestObject.dateTime:Ljava/time/LocalDateTime;\n-   #5 = Class              #29            // dev/langchain4j/internal/JsonTest$TestObject\n-   #6 = Class              #30            // java/lang/Object\n-   #7 = Utf8               name\n-   #8 = Utf8               Ljava/lang/String;\n-   #9 = Utf8               date\n-  #10 = Utf8               Ljava/time/LocalDate;\n-  #11 = Utf8               dateTime\n-  #12 = Utf8               Ljava/time/LocalDateTime;\n-  #13 = Utf8               <init>\n-  #14 = Utf8               (Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n-  #15 = Utf8               Code\n-  #16 = Utf8               LineNumberTable\n-  #17 = Utf8               LocalVariableTable\n-  #18 = Utf8               this\n-  #19 = Utf8               TestObject\n-  #20 = Utf8               InnerClasses\n-  #21 = Utf8               Ldev/langchain4j/internal/JsonTest$TestObject;\n-  #22 = Utf8               SourceFile\n-  #23 = Utf8               JsonTest.java\n-  #24 = NameAndType        #13:#31        // \"<init>\":()V\n-  #25 = NameAndType        #7:#8          // name:Ljava/lang/String;\n-  #26 = NameAndType        #9:#10         // date:Ljava/time/LocalDate;\n-  #27 = NameAndType        #11:#12        // dateTime:Ljava/time/LocalDateTime;\n-  #28 = Class              #32            // dev/langchain4j/internal/JsonTest\n-  #29 = Utf8               dev/langchain4j/internal/JsonTest$TestObject\n-  #30 = Utf8               java/lang/Object\n-  #31 = Utf8               ()V\n-  #32 = Utf8               dev/langchain4j/internal/JsonTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/internal/JsonTest$TestObject.name:Ljava/lang/String;\n+   #8 = Class              #10            // dev/langchain4j/internal/JsonTest$TestObject\n+   #9 = NameAndType        #11:#12        // name:Ljava/lang/String;\n+  #10 = Utf8               dev/langchain4j/internal/JsonTest$TestObject\n+  #11 = Utf8               name\n+  #12 = Utf8               Ljava/lang/String;\n+  #13 = Fieldref           #8.#14         // dev/langchain4j/internal/JsonTest$TestObject.date:Ljava/time/LocalDate;\n+  #14 = NameAndType        #15:#16        // date:Ljava/time/LocalDate;\n+  #15 = Utf8               date\n+  #16 = Utf8               Ljava/time/LocalDate;\n+  #17 = Fieldref           #8.#18         // dev/langchain4j/internal/JsonTest$TestObject.dateTime:Ljava/time/LocalDateTime;\n+  #18 = NameAndType        #19:#20        // dateTime:Ljava/time/LocalDateTime;\n+  #19 = Utf8               dateTime\n+  #20 = Utf8               Ljava/time/LocalDateTime;\n+  #21 = Utf8               (Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+  #22 = Utf8               Code\n+  #23 = Utf8               LineNumberTable\n+  #24 = Utf8               LocalVariableTable\n+  #25 = Utf8               this\n+  #26 = Utf8               Ldev/langchain4j/internal/JsonTest$TestObject;\n+  #27 = Utf8               SourceFile\n+  #28 = Utf8               JsonTest.java\n+  #29 = Utf8               InnerClasses\n+  #30 = Class              #31            // dev/langchain4j/internal/JsonTest\n+  #31 = Utf8               dev/langchain4j/internal/JsonTest\n+  #32 = Utf8               TestObject\n {\n   private final java.lang.String name;\n     descriptor: Ljava/lang/String;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.time.LocalDate date;\n     descriptor: Ljava/time/LocalDate;\n@@ -58,21 +58,21 @@\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=4, args_size=4\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field name:Ljava/lang/String;\n+         6: putfield      #7                  // Field name:Ljava/lang/String;\n          9: aload_0\n         10: aload_2\n-        11: putfield      #3                  // Field date:Ljava/time/LocalDate;\n+        11: putfield      #13                 // Field date:Ljava/time/LocalDate;\n         14: aload_0\n         15: aload_3\n-        16: putfield      #4                  // Field dateTime:Ljava/time/LocalDateTime;\n+        16: putfield      #17                 // Field dateTime:Ljava/time/LocalDateTime;\n         19: return\n       LineNumberTable:\n         line 75: 0\n         line 76: 4\n         line 77: 9\n         line 78: 14\n         line 79: 19\n@@ -81,8 +81,8 @@\n             0      20     0  this   Ldev/langchain4j/internal/JsonTest$TestObject;\n             0      20     1  name   Ljava/lang/String;\n             0      20     2  date   Ljava/time/LocalDate;\n             0      20     3 dateTime   Ljava/time/LocalDateTime;\n }\n SourceFile: \"JsonTest.java\"\n InnerClasses:\n-  private static #19= #5 of #28;          // TestObject=class dev/langchain4j/internal/JsonTest$TestObject of class dev/langchain4j/internal/JsonTest\n+  private static #32= #8 of #30;          // TestObject=class dev/langchain4j/internal/JsonTest$TestObject of class dev/langchain4j/internal/JsonTest\n"}]}, {"source1": "dev/langchain4j/internal/JsonTest.class", "source2": "dev/langchain4j/internal/JsonTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,208 +1,203 @@\n-  SHA-256 checksum 063c3098290f40c7375a2ffcbd5d34a0d5c1188f8ac6bfb98de94a923c68e48b\n+  SHA-256 checksum 29d57d440bdd5a71a6056be5b229a9cb956578fa888c7251cff7115103295b84\n   Compiled from \"JsonTest.java\"\n class dev.langchain4j.internal.JsonTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #41                         // dev/langchain4j/internal/JsonTest\n-  super_class: #42                        // java/lang/Object\n+  this_class: #148                        // dev/langchain4j/internal/JsonTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 3, attributes: 2\n Constant pool:\n-    #1 = Methodref          #42.#84       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #85           // dev/langchain4j/internal/JsonTest$TestData\n-    #3 = Methodref          #2.#86        // dev/langchain4j/internal/JsonTest$TestData.\"<init>\":(Ldev/langchain4j/internal/JsonTest$1;)V\n-    #4 = Methodref          #87.#88       // java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n-    #5 = Methodref          #2.#89        // dev/langchain4j/internal/JsonTest$TestData.setSampleDate:(Ljava/time/LocalDate;)V\n-    #6 = Methodref          #90.#91       // java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n-    #7 = Methodref          #2.#92        // dev/langchain4j/internal/JsonTest$TestData.setSampleDateTime:(Ljava/time/LocalDateTime;)V\n-    #8 = String             #93           // value\n-    #9 = Methodref          #2.#94        // dev/langchain4j/internal/JsonTest$TestData.setSomeValue:(Ljava/lang/String;)V\n-   #10 = Methodref          #95.#96       // dev/langchain4j/internal/Json.toJson:(Ljava/lang/Object;)Ljava/lang/String;\n-   #11 = Methodref          #97.#98       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #12 = String             #99           // {\\n  \\\"sampleDate\\\": \\\"2023-01-15\\\",\\n  \\\"sampleDateTime\\\": \\\"2023-01-15T10:20:00\\\",\\n  \\\"some_value\\\": \\\"value\\\"\\n}\n-   #13 = Methodref          #100.#101     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #14 = Methodref          #95.#102      // dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-   #15 = Methodref          #2.#103       // dev/langchain4j/internal/JsonTest$TestData.getSampleDate:()Ljava/time/LocalDate;\n-   #16 = Methodref          #97.#104      // org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n-   #17 = Methodref          #105.#106     // org/assertj/core/api/AbstractLocalDateAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #18 = Methodref          #2.#107       // dev/langchain4j/internal/JsonTest$TestData.getSampleDateTime:()Ljava/time/LocalDateTime;\n-   #19 = Methodref          #97.#108      // org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n-   #20 = Methodref          #109.#110     // org/assertj/core/api/AbstractLocalDateTimeAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n-   #21 = Methodref          #2.#111       // dev/langchain4j/internal/JsonTest$TestData.getSomeValue:()Ljava/lang/String;\n-   #22 = Class              #112          // dev/langchain4j/internal/JsonTest$TestObject\n-   #23 = String             #113          // John\n-   #24 = Methodref          #22.#114      // dev/langchain4j/internal/JsonTest$TestObject.\"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n-   #25 = String             #115          // Jane\n-   #26 = Methodref          #116.#117     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #27 = String             #118          // [{\\\"name\\\":\\\"John\\\",\\\"date\\\":\\\"2021-08-17\\\",\\\"dateTime\\\":\\\"2021-08-17T14:20:00\\\"},{\\\"name\\\":\\\"Jane\\\",\\\"date\\\":\\\"2021-08-16\\\",\\\"dateTime\\\":\\\"2021-08-16T13:19:00\\\"}]\n-   #28 = Class              #119          // java/util/List\n-   #29 = Methodref          #95.#120      // dev/langchain4j/internal/Json.toInputStream:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n-   #30 = Class              #121          // java/io/BufferedReader\n-   #31 = Class              #122          // java/io/InputStreamReader\n-   #32 = Methodref          #31.#123      // java/io/InputStreamReader.\"<init>\":(Ljava/io/InputStream;)V\n-   #33 = Methodref          #30.#124      // java/io/BufferedReader.\"<init>\":(Ljava/io/Reader;)V\n-   #34 = Methodref          #30.#125      // java/io/BufferedReader.lines:()Ljava/util/stream/Stream;\n-   #35 = Methodref          #126.#127     // java/util/stream/Collectors.joining:()Ljava/util/stream/Collector;\n-   #36 = InterfaceMethodref #128.#129     // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #37 = Class              #130          // java/lang/String\n-   #38 = Methodref          #30.#131      // java/io/BufferedReader.close:()V\n-   #39 = Class              #132          // java/lang/Throwable\n-   #40 = Methodref          #39.#133      // java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n-   #41 = Class              #134          // dev/langchain4j/internal/JsonTest\n-   #42 = Class              #135          // java/lang/Object\n-   #43 = Class              #136          // dev/langchain4j/internal/JsonTest$1\n-   #44 = Utf8               InnerClasses\n-   #45 = Utf8               TestData\n-   #46 = Utf8               TestObject\n-   #47 = Utf8               <init>\n-   #48 = Utf8               ()V\n-   #49 = Utf8               Code\n-   #50 = Utf8               LineNumberTable\n-   #51 = Utf8               LocalVariableTable\n-   #52 = Utf8               this\n-   #53 = Utf8               Ldev/langchain4j/internal/JsonTest;\n-   #54 = Utf8               conversionToJsonAndFromJsonWorks\n-   #55 = Utf8               testData\n-   #56 = Utf8               Ldev/langchain4j/internal/JsonTest$TestData;\n-   #57 = Utf8               json\n-   #58 = Utf8               Ljava/lang/String;\n-   #59 = Utf8               deserializedData\n-   #60 = Utf8               RuntimeVisibleAnnotations\n-   #61 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #62 = Utf8               toInputStreamWorksForList\n-   #63 = Utf8               resultJson\n-   #64 = Utf8               bufferedReader\n-   #65 = Utf8               Ljava/io/BufferedReader;\n-   #66 = Utf8               testObjects\n-   #67 = Utf8               Ljava/util/List;\n-   #68 = Utf8               expectedJson\n-   #69 = Utf8               inputStream\n-   #70 = Utf8               Ljava/io/InputStream;\n-   #71 = Utf8               LocalVariableTypeTable\n-   #72 = Utf8               Ljava/util/List<Ldev/langchain4j/internal/JsonTest$TestObject;>;\n-   #73 = Utf8               StackMapTable\n-   #74 = Class              #134          // dev/langchain4j/internal/JsonTest\n-   #75 = Class              #119          // java/util/List\n-   #76 = Class              #130          // java/lang/String\n-   #77 = Class              #137          // java/io/InputStream\n-   #78 = Class              #121          // java/io/BufferedReader\n-   #79 = Class              #132          // java/lang/Throwable\n-   #80 = Utf8               Exceptions\n-   #81 = Class              #138          // java/io/IOException\n-   #82 = Utf8               SourceFile\n-   #83 = Utf8               JsonTest.java\n-   #84 = NameAndType        #47:#48       // \"<init>\":()V\n-   #85 = Utf8               dev/langchain4j/internal/JsonTest$TestData\n-   #86 = NameAndType        #47:#139      // \"<init>\":(Ldev/langchain4j/internal/JsonTest$1;)V\n-   #87 = Class              #140          // java/time/LocalDate\n-   #88 = NameAndType        #141:#142     // of:(III)Ljava/time/LocalDate;\n-   #89 = NameAndType        #143:#144     // setSampleDate:(Ljava/time/LocalDate;)V\n-   #90 = Class              #145          // java/time/LocalDateTime\n-   #91 = NameAndType        #141:#146     // of:(IIIII)Ljava/time/LocalDateTime;\n-   #92 = NameAndType        #147:#148     // setSampleDateTime:(Ljava/time/LocalDateTime;)V\n-   #93 = Utf8               value\n-   #94 = NameAndType        #149:#150     // setSomeValue:(Ljava/lang/String;)V\n-   #95 = Class              #151          // dev/langchain4j/internal/Json\n-   #96 = NameAndType        #152:#153     // toJson:(Ljava/lang/Object;)Ljava/lang/String;\n-   #97 = Class              #154          // org/assertj/core/api/Assertions\n-   #98 = NameAndType        #155:#156     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #99 = Utf8               {\\n  \\\"sampleDate\\\": \\\"2023-01-15\\\",\\n  \\\"sampleDateTime\\\": \\\"2023-01-15T10:20:00\\\",\\n  \\\"some_value\\\": \\\"value\\\"\\n}\n-  #100 = Class              #157          // org/assertj/core/api/AbstractStringAssert\n-  #101 = NameAndType        #158:#156     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #102 = NameAndType        #159:#160     // fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-  #103 = NameAndType        #161:#162     // getSampleDate:()Ljava/time/LocalDate;\n-  #104 = NameAndType        #155:#163     // assertThat:(Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n-  #105 = Class              #164          // org/assertj/core/api/AbstractLocalDateAssert\n-  #106 = NameAndType        #158:#165     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #107 = NameAndType        #166:#167     // getSampleDateTime:()Ljava/time/LocalDateTime;\n-  #108 = NameAndType        #155:#168     // assertThat:(Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n-  #109 = Class              #169          // org/assertj/core/api/AbstractLocalDateTimeAssert\n-  #110 = NameAndType        #158:#170     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n-  #111 = NameAndType        #171:#172     // getSomeValue:()Ljava/lang/String;\n-  #112 = Utf8               dev/langchain4j/internal/JsonTest$TestObject\n-  #113 = Utf8               John\n-  #114 = NameAndType        #47:#173      // \"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n-  #115 = Utf8               Jane\n-  #116 = Class              #174          // java/util/Arrays\n-  #117 = NameAndType        #175:#176     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #118 = Utf8               [{\\\"name\\\":\\\"John\\\",\\\"date\\\":\\\"2021-08-17\\\",\\\"dateTime\\\":\\\"2021-08-17T14:20:00\\\"},{\\\"name\\\":\\\"Jane\\\",\\\"date\\\":\\\"2021-08-16\\\",\\\"dateTime\\\":\\\"2021-08-16T13:19:00\\\"}]\n-  #119 = Utf8               java/util/List\n-  #120 = NameAndType        #177:#178     // toInputStream:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n-  #121 = Utf8               java/io/BufferedReader\n-  #122 = Utf8               java/io/InputStreamReader\n-  #123 = NameAndType        #47:#179      // \"<init>\":(Ljava/io/InputStream;)V\n-  #124 = NameAndType        #47:#180      // \"<init>\":(Ljava/io/Reader;)V\n-  #125 = NameAndType        #181:#182     // lines:()Ljava/util/stream/Stream;\n-  #126 = Class              #183          // java/util/stream/Collectors\n-  #127 = NameAndType        #184:#185     // joining:()Ljava/util/stream/Collector;\n-  #128 = Class              #186          // java/util/stream/Stream\n-  #129 = NameAndType        #187:#188     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #130 = Utf8               java/lang/String\n-  #131 = NameAndType        #189:#48      // close:()V\n-  #132 = Utf8               java/lang/Throwable\n-  #133 = NameAndType        #190:#191     // addSuppressed:(Ljava/lang/Throwable;)V\n-  #134 = Utf8               dev/langchain4j/internal/JsonTest\n-  #135 = Utf8               java/lang/Object\n-  #136 = Utf8               dev/langchain4j/internal/JsonTest$1\n-  #137 = Utf8               java/io/InputStream\n-  #138 = Utf8               java/io/IOException\n-  #139 = Utf8               (Ldev/langchain4j/internal/JsonTest$1;)V\n-  #140 = Utf8               java/time/LocalDate\n-  #141 = Utf8               of\n-  #142 = Utf8               (III)Ljava/time/LocalDate;\n-  #143 = Utf8               setSampleDate\n-  #144 = Utf8               (Ljava/time/LocalDate;)V\n-  #145 = Utf8               java/time/LocalDateTime\n-  #146 = Utf8               (IIIII)Ljava/time/LocalDateTime;\n-  #147 = Utf8               setSampleDateTime\n-  #148 = Utf8               (Ljava/time/LocalDateTime;)V\n-  #149 = Utf8               setSomeValue\n-  #150 = Utf8               (Ljava/lang/String;)V\n-  #151 = Utf8               dev/langchain4j/internal/Json\n-  #152 = Utf8               toJson\n-  #153 = Utf8               (Ljava/lang/Object;)Ljava/lang/String;\n-  #154 = Utf8               org/assertj/core/api/Assertions\n-  #155 = Utf8               assertThat\n-  #156 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #157 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #158 = Utf8               isEqualTo\n-  #159 = Utf8               fromJson\n-  #160 = Utf8               (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-  #161 = Utf8               getSampleDate\n-  #162 = Utf8               ()Ljava/time/LocalDate;\n-  #163 = Utf8               (Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n-  #164 = Utf8               org/assertj/core/api/AbstractLocalDateAssert\n-  #165 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #166 = Utf8               getSampleDateTime\n-  #167 = Utf8               ()Ljava/time/LocalDateTime;\n-  #168 = Utf8               (Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n-  #169 = Utf8               org/assertj/core/api/AbstractLocalDateTimeAssert\n-  #170 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n-  #171 = Utf8               getSomeValue\n-  #172 = Utf8               ()Ljava/lang/String;\n-  #173 = Utf8               (Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n-  #174 = Utf8               java/util/Arrays\n-  #175 = Utf8               asList\n-  #176 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #177 = Utf8               toInputStream\n-  #178 = Utf8               (Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n-  #179 = Utf8               (Ljava/io/InputStream;)V\n-  #180 = Utf8               (Ljava/io/Reader;)V\n-  #181 = Utf8               lines\n-  #182 = Utf8               ()Ljava/util/stream/Stream;\n-  #183 = Utf8               java/util/stream/Collectors\n-  #184 = Utf8               joining\n-  #185 = Utf8               ()Ljava/util/stream/Collector;\n-  #186 = Utf8               java/util/stream/Stream\n-  #187 = Utf8               collect\n-  #188 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #189 = Utf8               close\n-  #190 = Utf8               addSuppressed\n-  #191 = Utf8               (Ljava/lang/Throwable;)V\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/internal/JsonTest$TestData\n+    #8 = Utf8               dev/langchain4j/internal/JsonTest$TestData\n+    #9 = Methodref          #7.#10        // dev/langchain4j/internal/JsonTest$TestData.\"<init>\":(Ldev/langchain4j/internal/JsonTest$1;)V\n+   #10 = NameAndType        #5:#11        // \"<init>\":(Ldev/langchain4j/internal/JsonTest$1;)V\n+   #11 = Utf8               (Ldev/langchain4j/internal/JsonTest$1;)V\n+   #12 = Methodref          #13.#14       // java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n+   #13 = Class              #15           // java/time/LocalDate\n+   #14 = NameAndType        #16:#17       // of:(III)Ljava/time/LocalDate;\n+   #15 = Utf8               java/time/LocalDate\n+   #16 = Utf8               of\n+   #17 = Utf8               (III)Ljava/time/LocalDate;\n+   #18 = Methodref          #7.#19        // dev/langchain4j/internal/JsonTest$TestData.setSampleDate:(Ljava/time/LocalDate;)V\n+   #19 = NameAndType        #20:#21       // setSampleDate:(Ljava/time/LocalDate;)V\n+   #20 = Utf8               setSampleDate\n+   #21 = Utf8               (Ljava/time/LocalDate;)V\n+   #22 = Methodref          #23.#24       // java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n+   #23 = Class              #25           // java/time/LocalDateTime\n+   #24 = NameAndType        #16:#26       // of:(IIIII)Ljava/time/LocalDateTime;\n+   #25 = Utf8               java/time/LocalDateTime\n+   #26 = Utf8               (IIIII)Ljava/time/LocalDateTime;\n+   #27 = Methodref          #7.#28        // dev/langchain4j/internal/JsonTest$TestData.setSampleDateTime:(Ljava/time/LocalDateTime;)V\n+   #28 = NameAndType        #29:#30       // setSampleDateTime:(Ljava/time/LocalDateTime;)V\n+   #29 = Utf8               setSampleDateTime\n+   #30 = Utf8               (Ljava/time/LocalDateTime;)V\n+   #31 = String             #32           // value\n+   #32 = Utf8               value\n+   #33 = Methodref          #7.#34        // dev/langchain4j/internal/JsonTest$TestData.setSomeValue:(Ljava/lang/String;)V\n+   #34 = NameAndType        #35:#36       // setSomeValue:(Ljava/lang/String;)V\n+   #35 = Utf8               setSomeValue\n+   #36 = Utf8               (Ljava/lang/String;)V\n+   #37 = Methodref          #38.#39       // dev/langchain4j/internal/Json.toJson:(Ljava/lang/Object;)Ljava/lang/String;\n+   #38 = Class              #40           // dev/langchain4j/internal/Json\n+   #39 = NameAndType        #41:#42       // toJson:(Ljava/lang/Object;)Ljava/lang/String;\n+   #40 = Utf8               dev/langchain4j/internal/Json\n+   #41 = Utf8               toJson\n+   #42 = Utf8               (Ljava/lang/Object;)Ljava/lang/String;\n+   #43 = Methodref          #44.#45       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #44 = Class              #46           // org/assertj/core/api/Assertions\n+   #45 = NameAndType        #47:#48       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #46 = Utf8               org/assertj/core/api/Assertions\n+   #47 = Utf8               assertThat\n+   #48 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #49 = String             #50           // {\\n  \\\"sampleDate\\\": \\\"2023-01-15\\\",\\n  \\\"sampleDateTime\\\": \\\"2023-01-15T10:20:00\\\",\\n  \\\"some_value\\\": \\\"value\\\"\\n}\n+   #50 = Utf8               {\\n  \\\"sampleDate\\\": \\\"2023-01-15\\\",\\n  \\\"sampleDateTime\\\": \\\"2023-01-15T10:20:00\\\",\\n  \\\"some_value\\\": \\\"value\\\"\\n}\n+   #51 = Methodref          #52.#53       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #52 = Class              #54           // org/assertj/core/api/AbstractStringAssert\n+   #53 = NameAndType        #55:#48       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #54 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #55 = Utf8               isEqualTo\n+   #56 = Methodref          #38.#57       // dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+   #57 = NameAndType        #58:#59       // fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+   #58 = Utf8               fromJson\n+   #59 = Utf8               (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+   #60 = Methodref          #7.#61        // dev/langchain4j/internal/JsonTest$TestData.getSampleDate:()Ljava/time/LocalDate;\n+   #61 = NameAndType        #62:#63       // getSampleDate:()Ljava/time/LocalDate;\n+   #62 = Utf8               getSampleDate\n+   #63 = Utf8               ()Ljava/time/LocalDate;\n+   #64 = Methodref          #44.#65       // org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n+   #65 = NameAndType        #47:#66       // assertThat:(Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n+   #66 = Utf8               (Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n+   #67 = Methodref          #68.#69       // org/assertj/core/api/AbstractLocalDateAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #68 = Class              #70           // org/assertj/core/api/AbstractLocalDateAssert\n+   #69 = NameAndType        #55:#71       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #70 = Utf8               org/assertj/core/api/AbstractLocalDateAssert\n+   #71 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #72 = Methodref          #7.#73        // dev/langchain4j/internal/JsonTest$TestData.getSampleDateTime:()Ljava/time/LocalDateTime;\n+   #73 = NameAndType        #74:#75       // getSampleDateTime:()Ljava/time/LocalDateTime;\n+   #74 = Utf8               getSampleDateTime\n+   #75 = Utf8               ()Ljava/time/LocalDateTime;\n+   #76 = Methodref          #44.#77       // org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+   #77 = NameAndType        #47:#78       // assertThat:(Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+   #78 = Utf8               (Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+   #79 = Methodref          #80.#81       // org/assertj/core/api/AbstractLocalDateTimeAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+   #80 = Class              #82           // org/assertj/core/api/AbstractLocalDateTimeAssert\n+   #81 = NameAndType        #55:#83       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+   #82 = Utf8               org/assertj/core/api/AbstractLocalDateTimeAssert\n+   #83 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+   #84 = Methodref          #7.#85        // dev/langchain4j/internal/JsonTest$TestData.getSomeValue:()Ljava/lang/String;\n+   #85 = NameAndType        #86:#87       // getSomeValue:()Ljava/lang/String;\n+   #86 = Utf8               getSomeValue\n+   #87 = Utf8               ()Ljava/lang/String;\n+   #88 = Class              #89           // dev/langchain4j/internal/JsonTest$TestObject\n+   #89 = Utf8               dev/langchain4j/internal/JsonTest$TestObject\n+   #90 = String             #91           // John\n+   #91 = Utf8               John\n+   #92 = Methodref          #88.#93       // dev/langchain4j/internal/JsonTest$TestObject.\"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+   #93 = NameAndType        #5:#94        // \"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+   #94 = Utf8               (Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+   #95 = String             #96           // Jane\n+   #96 = Utf8               Jane\n+   #97 = Methodref          #98.#99       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #98 = Class              #100          // java/util/Arrays\n+   #99 = NameAndType        #101:#102     // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #100 = Utf8               java/util/Arrays\n+  #101 = Utf8               asList\n+  #102 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #103 = String             #104          // [{\\\"name\\\":\\\"John\\\",\\\"date\\\":\\\"2021-08-17\\\",\\\"dateTime\\\":\\\"2021-08-17T14:20:00\\\"},{\\\"name\\\":\\\"Jane\\\",\\\"date\\\":\\\"2021-08-16\\\",\\\"dateTime\\\":\\\"2021-08-16T13:19:00\\\"}]\n+  #104 = Utf8               [{\\\"name\\\":\\\"John\\\",\\\"date\\\":\\\"2021-08-17\\\",\\\"dateTime\\\":\\\"2021-08-17T14:20:00\\\"},{\\\"name\\\":\\\"Jane\\\",\\\"date\\\":\\\"2021-08-16\\\",\\\"dateTime\\\":\\\"2021-08-16T13:19:00\\\"}]\n+  #105 = Class              #106          // java/util/List\n+  #106 = Utf8               java/util/List\n+  #107 = Methodref          #38.#108      // dev/langchain4j/internal/Json.toInputStream:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n+  #108 = NameAndType        #109:#110     // toInputStream:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n+  #109 = Utf8               toInputStream\n+  #110 = Utf8               (Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n+  #111 = Class              #112          // java/io/BufferedReader\n+  #112 = Utf8               java/io/BufferedReader\n+  #113 = Class              #114          // java/io/InputStreamReader\n+  #114 = Utf8               java/io/InputStreamReader\n+  #115 = Methodref          #113.#116     // java/io/InputStreamReader.\"<init>\":(Ljava/io/InputStream;)V\n+  #116 = NameAndType        #5:#117       // \"<init>\":(Ljava/io/InputStream;)V\n+  #117 = Utf8               (Ljava/io/InputStream;)V\n+  #118 = Methodref          #111.#119     // java/io/BufferedReader.\"<init>\":(Ljava/io/Reader;)V\n+  #119 = NameAndType        #5:#120       // \"<init>\":(Ljava/io/Reader;)V\n+  #120 = Utf8               (Ljava/io/Reader;)V\n+  #121 = Methodref          #111.#122     // java/io/BufferedReader.lines:()Ljava/util/stream/Stream;\n+  #122 = NameAndType        #123:#124     // lines:()Ljava/util/stream/Stream;\n+  #123 = Utf8               lines\n+  #124 = Utf8               ()Ljava/util/stream/Stream;\n+  #125 = Methodref          #126.#127     // java/util/stream/Collectors.joining:()Ljava/util/stream/Collector;\n+  #126 = Class              #128          // java/util/stream/Collectors\n+  #127 = NameAndType        #129:#130     // joining:()Ljava/util/stream/Collector;\n+  #128 = Utf8               java/util/stream/Collectors\n+  #129 = Utf8               joining\n+  #130 = Utf8               ()Ljava/util/stream/Collector;\n+  #131 = InterfaceMethodref #132.#133     // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #132 = Class              #134          // java/util/stream/Stream\n+  #133 = NameAndType        #135:#136     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #134 = Utf8               java/util/stream/Stream\n+  #135 = Utf8               collect\n+  #136 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #137 = Class              #138          // java/lang/String\n+  #138 = Utf8               java/lang/String\n+  #139 = Methodref          #111.#140     // java/io/BufferedReader.close:()V\n+  #140 = NameAndType        #141:#6       // close:()V\n+  #141 = Utf8               close\n+  #142 = Class              #143          // java/lang/Throwable\n+  #143 = Utf8               java/lang/Throwable\n+  #144 = Methodref          #142.#145     // java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n+  #145 = NameAndType        #146:#147     // addSuppressed:(Ljava/lang/Throwable;)V\n+  #146 = Utf8               addSuppressed\n+  #147 = Utf8               (Ljava/lang/Throwable;)V\n+  #148 = Class              #149          // dev/langchain4j/internal/JsonTest\n+  #149 = Utf8               dev/langchain4j/internal/JsonTest\n+  #150 = Utf8               Code\n+  #151 = Utf8               LineNumberTable\n+  #152 = Utf8               LocalVariableTable\n+  #153 = Utf8               this\n+  #154 = Utf8               Ldev/langchain4j/internal/JsonTest;\n+  #155 = Utf8               conversionToJsonAndFromJsonWorks\n+  #156 = Utf8               testData\n+  #157 = Utf8               Ldev/langchain4j/internal/JsonTest$TestData;\n+  #158 = Utf8               json\n+  #159 = Utf8               Ljava/lang/String;\n+  #160 = Utf8               deserializedData\n+  #161 = Utf8               RuntimeVisibleAnnotations\n+  #162 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #163 = Utf8               toInputStreamWorksForList\n+  #164 = Utf8               resultJson\n+  #165 = Utf8               bufferedReader\n+  #166 = Utf8               Ljava/io/BufferedReader;\n+  #167 = Utf8               testObjects\n+  #168 = Utf8               Ljava/util/List;\n+  #169 = Utf8               expectedJson\n+  #170 = Utf8               inputStream\n+  #171 = Utf8               Ljava/io/InputStream;\n+  #172 = Utf8               LocalVariableTypeTable\n+  #173 = Utf8               Ljava/util/List<Ldev/langchain4j/internal/JsonTest$TestObject;>;\n+  #174 = Utf8               StackMapTable\n+  #175 = Class              #176          // java/io/InputStream\n+  #176 = Utf8               java/io/InputStream\n+  #177 = Utf8               Exceptions\n+  #178 = Class              #179          // java/io/IOException\n+  #179 = Utf8               java/io/IOException\n+  #180 = Utf8               SourceFile\n+  #181 = Utf8               JsonTest.java\n+  #182 = Utf8               InnerClasses\n+  #183 = Utf8               TestData\n+  #184 = Class              #185          // dev/langchain4j/internal/JsonTest$1\n+  #185 = Utf8               dev/langchain4j/internal/JsonTest$1\n+  #186 = Utf8               TestObject\n {\n   dev.langchain4j.internal.JsonTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -215,69 +210,69 @@\n             0       5     0  this   Ldev/langchain4j/internal/JsonTest;\n \n   void conversionToJsonAndFromJsonWorks();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=4, args_size=1\n-         0: new           #2                  // class dev/langchain4j/internal/JsonTest$TestData\n+         0: new           #7                  // class dev/langchain4j/internal/JsonTest$TestData\n          3: dup\n          4: aconst_null\n-         5: invokespecial #3                  // Method dev/langchain4j/internal/JsonTest$TestData.\"<init>\":(Ldev/langchain4j/internal/JsonTest$1;)V\n+         5: invokespecial #9                  // Method dev/langchain4j/internal/JsonTest$TestData.\"<init>\":(Ldev/langchain4j/internal/JsonTest$1;)V\n          8: astore_1\n          9: aload_1\n         10: sipush        2023\n         13: iconst_1\n         14: bipush        15\n-        16: invokestatic  #4                  // Method java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n-        19: invokevirtual #5                  // Method dev/langchain4j/internal/JsonTest$TestData.setSampleDate:(Ljava/time/LocalDate;)V\n+        16: invokestatic  #12                 // Method java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n+        19: invokevirtual #18                 // Method dev/langchain4j/internal/JsonTest$TestData.setSampleDate:(Ljava/time/LocalDate;)V\n         22: aload_1\n         23: sipush        2023\n         26: iconst_1\n         27: bipush        15\n         29: bipush        10\n         31: bipush        20\n-        33: invokestatic  #6                  // Method java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n-        36: invokevirtual #7                  // Method dev/langchain4j/internal/JsonTest$TestData.setSampleDateTime:(Ljava/time/LocalDateTime;)V\n+        33: invokestatic  #22                 // Method java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n+        36: invokevirtual #27                 // Method dev/langchain4j/internal/JsonTest$TestData.setSampleDateTime:(Ljava/time/LocalDateTime;)V\n         39: aload_1\n-        40: ldc           #8                  // String value\n-        42: invokevirtual #9                  // Method dev/langchain4j/internal/JsonTest$TestData.setSomeValue:(Ljava/lang/String;)V\n+        40: ldc           #31                 // String value\n+        42: invokevirtual #33                 // Method dev/langchain4j/internal/JsonTest$TestData.setSomeValue:(Ljava/lang/String;)V\n         45: aload_1\n-        46: invokestatic  #10                 // Method dev/langchain4j/internal/Json.toJson:(Ljava/lang/Object;)Ljava/lang/String;\n+        46: invokestatic  #37                 // Method dev/langchain4j/internal/Json.toJson:(Ljava/lang/Object;)Ljava/lang/String;\n         49: astore_2\n         50: aload_2\n-        51: invokestatic  #11                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        54: ldc           #12                 // String {\\n  \\\"sampleDate\\\": \\\"2023-01-15\\\",\\n  \\\"sampleDateTime\\\": \\\"2023-01-15T10:20:00\\\",\\n  \\\"some_value\\\": \\\"value\\\"\\n}\n-        56: invokevirtual #13                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        51: invokestatic  #43                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        54: ldc           #49                 // String {\\n  \\\"sampleDate\\\": \\\"2023-01-15\\\",\\n  \\\"sampleDateTime\\\": \\\"2023-01-15T10:20:00\\\",\\n  \\\"some_value\\\": \\\"value\\\"\\n}\n+        56: invokevirtual #51                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         59: pop\n         60: aload_2\n-        61: ldc           #2                  // class dev/langchain4j/internal/JsonTest$TestData\n-        63: invokestatic  #14                 // Method dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-        66: checkcast     #2                  // class dev/langchain4j/internal/JsonTest$TestData\n+        61: ldc           #7                  // class dev/langchain4j/internal/JsonTest$TestData\n+        63: invokestatic  #56                 // Method dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+        66: checkcast     #7                  // class dev/langchain4j/internal/JsonTest$TestData\n         69: astore_3\n         70: aload_3\n-        71: invokevirtual #15                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDate:()Ljava/time/LocalDate;\n-        74: invokestatic  #16                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n+        71: invokevirtual #60                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDate:()Ljava/time/LocalDate;\n+        74: invokestatic  #64                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDate;)Lorg/assertj/core/api/AbstractLocalDateAssert;\n         77: aload_1\n-        78: invokevirtual #15                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDate:()Ljava/time/LocalDate;\n-        81: invokevirtual #17                 // Method org/assertj/core/api/AbstractLocalDateAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        78: invokevirtual #60                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDate:()Ljava/time/LocalDate;\n+        81: invokevirtual #67                 // Method org/assertj/core/api/AbstractLocalDateAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         84: pop\n         85: aload_3\n-        86: invokevirtual #18                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDateTime:()Ljava/time/LocalDateTime;\n-        89: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+        86: invokevirtual #72                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDateTime:()Ljava/time/LocalDateTime;\n+        89: invokestatic  #76                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/time/LocalDateTime;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n         92: aload_1\n-        93: invokevirtual #18                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDateTime:()Ljava/time/LocalDateTime;\n-        96: invokevirtual #20                 // Method org/assertj/core/api/AbstractLocalDateTimeAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n+        93: invokevirtual #72                 // Method dev/langchain4j/internal/JsonTest$TestData.getSampleDateTime:()Ljava/time/LocalDateTime;\n+        96: invokevirtual #79                 // Method org/assertj/core/api/AbstractLocalDateTimeAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractLocalDateTimeAssert;\n         99: pop\n        100: aload_3\n-       101: invokevirtual #21                 // Method dev/langchain4j/internal/JsonTest$TestData.getSomeValue:()Ljava/lang/String;\n-       104: invokestatic  #11                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       101: invokevirtual #84                 // Method dev/langchain4j/internal/JsonTest$TestData.getSomeValue:()Ljava/lang/String;\n+       104: invokestatic  #43                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        107: aload_1\n-       108: invokevirtual #21                 // Method dev/langchain4j/internal/JsonTest$TestData.getSomeValue:()Ljava/lang/String;\n-       111: invokevirtual #13                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       108: invokevirtual #84                 // Method dev/langchain4j/internal/JsonTest$TestData.getSomeValue:()Ljava/lang/String;\n+       111: invokevirtual #51                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        114: pop\n        115: return\n       LineNumberTable:\n         line 22: 0\n         line 23: 9\n         line 24: 22\n         line 25: 39\n@@ -292,181 +287,143 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     116     0  this   Ldev/langchain4j/internal/JsonTest;\n             9     107     1 testData   Ldev/langchain4j/internal/JsonTest$TestData;\n            50      66     2  json   Ljava/lang/String;\n            70      46     3 deserializedData   Ldev/langchain4j/internal/JsonTest$TestData;\n     RuntimeVisibleAnnotations:\n-      0: #61()\n+      0: #162()\n         org.junit.jupiter.api.Test\n \n   void toInputStreamWorksForList() throws java.io.IOException;\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n-      stack=12, locals=9, args_size=1\n+      stack=12, locals=7, args_size=1\n          0: iconst_2\n-         1: anewarray     #22                 // class dev/langchain4j/internal/JsonTest$TestObject\n+         1: anewarray     #88                 // class dev/langchain4j/internal/JsonTest$TestObject\n          4: dup\n          5: iconst_0\n-         6: new           #22                 // class dev/langchain4j/internal/JsonTest$TestObject\n+         6: new           #88                 // class dev/langchain4j/internal/JsonTest$TestObject\n          9: dup\n-        10: ldc           #23                 // String John\n+        10: ldc           #90                 // String John\n         12: sipush        2021\n         15: bipush        8\n         17: bipush        17\n-        19: invokestatic  #4                  // Method java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n+        19: invokestatic  #12                 // Method java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n         22: sipush        2021\n         25: bipush        8\n         27: bipush        17\n         29: bipush        14\n         31: bipush        20\n-        33: invokestatic  #6                  // Method java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n-        36: invokespecial #24                 // Method dev/langchain4j/internal/JsonTest$TestObject.\"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+        33: invokestatic  #22                 // Method java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n+        36: invokespecial #92                 // Method dev/langchain4j/internal/JsonTest$TestObject.\"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n         39: aastore\n         40: dup\n         41: iconst_1\n-        42: new           #22                 // class dev/langchain4j/internal/JsonTest$TestObject\n+        42: new           #88                 // class dev/langchain4j/internal/JsonTest$TestObject\n         45: dup\n-        46: ldc           #25                 // String Jane\n+        46: ldc           #95                 // String Jane\n         48: sipush        2021\n         51: bipush        8\n         53: bipush        16\n-        55: invokestatic  #4                  // Method java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n+        55: invokestatic  #12                 // Method java/time/LocalDate.of:(III)Ljava/time/LocalDate;\n         58: sipush        2021\n         61: bipush        8\n         63: bipush        16\n         65: bipush        13\n         67: bipush        19\n-        69: invokestatic  #6                  // Method java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n-        72: invokespecial #24                 // Method dev/langchain4j/internal/JsonTest$TestObject.\"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n+        69: invokestatic  #22                 // Method java/time/LocalDateTime.of:(IIIII)Ljava/time/LocalDateTime;\n+        72: invokespecial #92                 // Method dev/langchain4j/internal/JsonTest$TestObject.\"<init>\":(Ljava/lang/String;Ljava/time/LocalDate;Ljava/time/LocalDateTime;)V\n         75: aastore\n-        76: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        76: invokestatic  #97                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         79: astore_1\n-        80: ldc           #27                 // String [{\\\"name\\\":\\\"John\\\",\\\"date\\\":\\\"2021-08-17\\\",\\\"dateTime\\\":\\\"2021-08-17T14:20:00\\\"},{\\\"name\\\":\\\"Jane\\\",\\\"date\\\":\\\"2021-08-16\\\",\\\"dateTime\\\":\\\"2021-08-16T13:19:00\\\"}]\n+        80: ldc           #103                // String [{\\\"name\\\":\\\"John\\\",\\\"date\\\":\\\"2021-08-17\\\",\\\"dateTime\\\":\\\"2021-08-17T14:20:00\\\"},{\\\"name\\\":\\\"Jane\\\",\\\"date\\\":\\\"2021-08-16\\\",\\\"dateTime\\\":\\\"2021-08-16T13:19:00\\\"}]\n         82: astore_2\n         83: aload_1\n-        84: ldc           #28                 // class java/util/List\n-        86: invokestatic  #29                 // Method dev/langchain4j/internal/Json.toInputStream:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n+        84: ldc           #105                // class java/util/List\n+        86: invokestatic  #107                // Method dev/langchain4j/internal/Json.toInputStream:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/io/InputStream;\n         89: astore_3\n-        90: new           #30                 // class java/io/BufferedReader\n+        90: new           #111                // class java/io/BufferedReader\n         93: dup\n-        94: new           #31                 // class java/io/InputStreamReader\n+        94: new           #113                // class java/io/InputStreamReader\n         97: dup\n         98: aload_3\n-        99: invokespecial #32                 // Method java/io/InputStreamReader.\"<init>\":(Ljava/io/InputStream;)V\n-       102: invokespecial #33                 // Method java/io/BufferedReader.\"<init>\":(Ljava/io/Reader;)V\n+        99: invokespecial #115                // Method java/io/InputStreamReader.\"<init>\":(Ljava/io/InputStream;)V\n+       102: invokespecial #118                // Method java/io/BufferedReader.\"<init>\":(Ljava/io/Reader;)V\n        105: astore        4\n-       107: aconst_null\n-       108: astore        5\n-       110: aload         4\n-       112: invokevirtual #34                 // Method java/io/BufferedReader.lines:()Ljava/util/stream/Stream;\n-       115: invokestatic  #35                 // Method java/util/stream/Collectors.joining:()Ljava/util/stream/Collector;\n-       118: invokeinterface #36,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-       123: checkcast     #37                 // class java/lang/String\n-       126: astore        6\n-       128: aload         6\n-       130: invokestatic  #11                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       133: aload_2\n-       134: invokevirtual #13                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       137: pop\n-       138: aload         4\n-       140: ifnull        225\n-       143: aload         5\n-       145: ifnull        168\n-       148: aload         4\n-       150: invokevirtual #38                 // Method java/io/BufferedReader.close:()V\n-       153: goto          225\n-       156: astore        6\n-       158: aload         5\n-       160: aload         6\n-       162: invokevirtual #40                 // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n-       165: goto          225\n-       168: aload         4\n-       170: invokevirtual #38                 // Method java/io/BufferedReader.close:()V\n-       173: goto          225\n-       176: astore        6\n-       178: aload         6\n-       180: astore        5\n-       182: aload         6\n-       184: athrow\n-       185: astore        7\n-       187: aload         4\n-       189: ifnull        222\n-       192: aload         5\n-       194: ifnull        217\n-       197: aload         4\n-       199: invokevirtual #38                 // Method java/io/BufferedReader.close:()V\n-       202: goto          222\n-       205: astore        8\n-       207: aload         5\n-       209: aload         8\n-       211: invokevirtual #40                 // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n-       214: goto          222\n-       217: aload         4\n-       219: invokevirtual #38                 // Method java/io/BufferedReader.close:()V\n-       222: aload         7\n-       224: athrow\n-       225: return\n+       107: aload         4\n+       109: invokevirtual #121                // Method java/io/BufferedReader.lines:()Ljava/util/stream/Stream;\n+       112: invokestatic  #125                // Method java/util/stream/Collectors.joining:()Ljava/util/stream/Collector;\n+       115: invokeinterface #131,  2          // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+       120: checkcast     #137                // class java/lang/String\n+       123: astore        5\n+       125: aload         5\n+       127: invokestatic  #43                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       130: aload_2\n+       131: invokevirtual #51                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       134: pop\n+       135: aload         4\n+       137: invokevirtual #139                // Method java/io/BufferedReader.close:()V\n+       140: goto          165\n+       143: astore        5\n+       145: aload         4\n+       147: invokevirtual #139                // Method java/io/BufferedReader.close:()V\n+       150: goto          162\n+       153: astore        6\n+       155: aload         5\n+       157: aload         6\n+       159: invokevirtual #144                // Method java/lang/Throwable.addSuppressed:(Ljava/lang/Throwable;)V\n+       162: aload         5\n+       164: athrow\n+       165: return\n       Exception table:\n          from    to  target type\n-           148   153   156   Class java/lang/Throwable\n-           110   138   176   Class java/lang/Throwable\n-           110   138   185   any\n-           197   202   205   Class java/lang/Throwable\n-           176   187   185   any\n+           107   135   143   Class java/lang/Throwable\n+           145   150   153   Class java/lang/Throwable\n       LineNumberTable:\n         line 47: 0\n         line 48: 19\n         line 49: 55\n         line 47: 76\n         line 52: 80\n         line 62: 83\n         line 63: 90\n-        line 64: 110\n-        line 66: 128\n-        line 67: 138\n-        line 63: 176\n-        line 67: 185\n-        line 68: 225\n+        line 64: 107\n+        line 66: 125\n+        line 67: 135\n+        line 63: 143\n+        line 68: 165\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-          128      10     6 resultJson   Ljava/lang/String;\n-          107     118     4 bufferedReader   Ljava/io/BufferedReader;\n-            0     226     0  this   Ldev/langchain4j/internal/JsonTest;\n-           80     146     1 testObjects   Ljava/util/List;\n-           83     143     2 expectedJson   Ljava/lang/String;\n-           90     136     3 inputStream   Ljava/io/InputStream;\n+          125      10     5 resultJson   Ljava/lang/String;\n+          107      58     4 bufferedReader   Ljava/io/BufferedReader;\n+            0     166     0  this   Ldev/langchain4j/internal/JsonTest;\n+           80      86     1 testObjects   Ljava/util/List;\n+           83      83     2 expectedJson   Ljava/lang/String;\n+           90      76     3 inputStream   Ljava/io/InputStream;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n-           80     146     1 testObjects   Ljava/util/List<Ldev/langchain4j/internal/JsonTest$TestObject;>;\n-      StackMapTable: number_of_entries = 8\n+           80      86     1 testObjects   Ljava/util/List<Ldev/langchain4j/internal/JsonTest$TestObject;>;\n+      StackMapTable: number_of_entries = 4\n         frame_type = 255 /* full_frame */\n-          offset_delta = 156\n-          locals = [ class dev/langchain4j/internal/JsonTest, class java/util/List, class java/lang/String, class java/io/InputStream, class java/io/BufferedReader, class java/lang/Throwable ]\n-          stack = [ class java/lang/Throwable ]\n-        frame_type = 11 /* same */\n-        frame_type = 71 /* same_locals_1_stack_item */\n-          stack = [ class java/lang/Throwable ]\n-        frame_type = 72 /* same_locals_1_stack_item */\n+          offset_delta = 143\n+          locals = [ class dev/langchain4j/internal/JsonTest, class java/util/List, class java/lang/String, class java/io/InputStream, class java/io/BufferedReader ]\n           stack = [ class java/lang/Throwable ]\n         frame_type = 255 /* full_frame */\n-          offset_delta = 19\n-          locals = [ class dev/langchain4j/internal/JsonTest, class java/util/List, class java/lang/String, class java/io/InputStream, class java/io/BufferedReader, class java/lang/Throwable, top, class java/lang/Throwable ]\n+          offset_delta = 9\n+          locals = [ class dev/langchain4j/internal/JsonTest, class java/util/List, class java/lang/String, class java/io/InputStream, class java/io/BufferedReader, class java/lang/Throwable ]\n           stack = [ class java/lang/Throwable ]\n-        frame_type = 11 /* same */\n-        frame_type = 4 /* same */\n-        frame_type = 255 /* full_frame */\n+        frame_type = 8 /* same */\n+        frame_type = 249 /* chop */\n           offset_delta = 2\n-          locals = [ class dev/langchain4j/internal/JsonTest, class java/util/List, class java/lang/String, class java/io/InputStream ]\n-          stack = []\n     Exceptions:\n       throws java.io.IOException\n     RuntimeVisibleAnnotations:\n-      0: #61()\n+      0: #162()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"JsonTest.java\"\n InnerClasses:\n-  static #43;                             // class dev/langchain4j/internal/JsonTest$1\n-  private static #45= #2 of #41;          // TestData=class dev/langchain4j/internal/JsonTest$TestData of class dev/langchain4j/internal/JsonTest\n-  private static #46= #22 of #41;         // TestObject=class dev/langchain4j/internal/JsonTest$TestObject of class dev/langchain4j/internal/JsonTest\n+  private static #183= #7 of #148;        // TestData=class dev/langchain4j/internal/JsonTest$TestData of class dev/langchain4j/internal/JsonTest\n+  static #184;                            // class dev/langchain4j/internal/JsonTest$1\n+  private static #186= #88 of #148;       // TestObject=class dev/langchain4j/internal/JsonTest$TestObject of class dev/langchain4j/internal/JsonTest\n"}]}, {"source1": "dev/langchain4j/internal/RetryUtilsTest.class", "source2": "dev/langchain4j/internal/RetryUtilsTest.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -17,60 +17,58 @@\n             Assertions.assertThat(RetryUtils.DEFAULT_RETRY_POLICY.jitterDelayMillis(3)).isBetween(Integer.valueOf(1125), Integer.valueOf(1350));\n         }\n     }\n     \n     @Test\n     void test_withRetry_directly() throws Exception {\n         final Callable<String> mockAction = (Callable)Mockito.mock((Class)Callable.class);\n-        Mockito.when((Object)mockAction.call()).thenReturn((Object)\"Success\");\n+        Mockito.when((Object)(String)mockAction.call()).thenReturn((Object)\"Success\");\n         final String result = (String)RetryUtils.withRetry((Callable)mockAction, 1);\n         Assertions.assertThat(result).isEqualTo(\"Success\");\n         ((Callable)Mockito.verify((Object)mockAction)).call();\n         Mockito.verifyNoMoreInteractions(new Object[] { mockAction });\n     }\n     \n     @Test\n     void test_withRetry_noAttempts_directly() throws Exception {\n         final Callable<String> mockAction = (Callable)Mockito.mock((Class)Callable.class);\n-        Mockito.when((Object)mockAction.call()).thenReturn((Object)\"Success\");\n+        Mockito.when((Object)(String)mockAction.call()).thenReturn((Object)\"Success\");\n         final String result = (String)RetryUtils.withRetry((Callable)mockAction);\n         Assertions.assertThat(result).isEqualTo(\"Success\");\n         ((Callable)Mockito.verify((Object)mockAction)).call();\n         Mockito.verifyNoMoreInteractions(new Object[] { mockAction });\n     }\n     \n     @Test\n     void testSuccessfulCall() throws Exception {\n         final Callable<String> mockAction = (Callable)Mockito.mock((Class)Callable.class);\n-        Mockito.when((Object)mockAction.call()).thenReturn((Object)\"Success\");\n+        Mockito.when((Object)(String)mockAction.call()).thenReturn((Object)\"Success\");\n         final String result = (String)RetryUtils.retryPolicyBuilder().delayMillis(100).build().withRetry((Callable)mockAction, 3);\n         Assertions.assertThat(result).isEqualTo(\"Success\");\n         ((Callable)Mockito.verify((Object)mockAction)).call();\n         Mockito.verifyNoMoreInteractions(new Object[] { mockAction });\n     }\n     \n     @Test\n     void testRetryThenSuccess() throws Exception {\n         final Callable<String> mockAction = (Callable)Mockito.mock((Class)Callable.class);\n-        Mockito.when((Object)mockAction.call()).thenThrow(new Throwable[] { new RuntimeException() }).thenReturn((Object)\"Success\");\n+        Mockito.when((Object)(String)mockAction.call()).thenThrow(new Throwable[] { new RuntimeException() }).thenReturn((Object)\"Success\");\n         final long startTime = System.currentTimeMillis();\n         final String result = (String)RetryUtils.retryPolicyBuilder().delayMillis(100).build().withRetry((Callable)mockAction, 3);\n         final long endTime = System.currentTimeMillis();\n         final long duration = endTime - startTime;\n         Assertions.assertThat(result).isEqualTo(\"Success\");\n         ((Callable)Mockito.verify((Object)mockAction, Mockito.times(2))).call();\n         Mockito.verifyNoMoreInteractions(new Object[] { mockAction });\n         Assertions.assertThat(duration).isGreaterThanOrEqualTo(100L);\n     }\n     \n     @Test\n     void testMaxAttemptsReached() throws Exception {\n         final Callable<String> mockAction = (Callable)Mockito.mock((Class)Callable.class);\n-        Mockito.when((Object)mockAction.call()).thenThrow(new Throwable[] { new RuntimeException() });\n+        Mockito.when((Object)(String)mockAction.call()).thenThrow(new Throwable[] { new RuntimeException() });\n         final RetryUtils.RetryPolicy policy = RetryUtils.retryPolicyBuilder().delayMillis(100).build();\n-        Assertions.assertThatThrownBy(() -> {\n-            final String s = (String)policy.withRetry(mockAction, 3);\n-        }).isInstanceOf((Class)RuntimeException.class);\n+        Assertions.assertThatThrownBy(() -> policy.withRetry(mockAction, 3)).isInstanceOf((Class)RuntimeException.class);\n         ((Callable)Mockito.verify((Object)mockAction, Mockito.times(3))).call();\n         Mockito.verifyNoMoreInteractions(new Object[] { mockAction });\n     }\n }\n"}]}, {"source1": "dev/langchain4j/internal/UtilsTest.class", "source2": "dev/langchain4j/internal/UtilsTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,435 +1,432 @@\n-  SHA-256 checksum 7090196b3faee14ce54336258c12d17bc8c92dd17163d16ad1faf00d5d018681\n+  SHA-256 checksum 8b371fbfcff6a9f81f2820a8782369596bbafcd43cd8a280c1445b8ce3fbb0e3\n   Compiled from \"UtilsTest.java\"\n class dev.langchain4j.internal.UtilsTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #97                         // dev/langchain4j/internal/UtilsTest\n-  super_class: #45                        // java/lang/Object\n+  this_class: #312                        // dev/langchain4j/internal/UtilsTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 22, attributes: 3\n Constant pool:\n-    #1 = Methodref          #45.#163      // java/lang/Object.\"<init>\":()V\n-    #2 = String             #164          // foo\n-    #3 = String             #165          // bar\n-    #4 = Methodref          #166.#167     // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-    #5 = Class              #168          // java/lang/String\n-    #6 = Methodref          #169.#170     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #7 = Methodref          #29.#171      // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #8 = InvokeDynamic      #0:#177       // #0:get:()Ljava/util/function/Supplier;\n-    #9 = Methodref          #166.#178     // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #10 = InvokeDynamic      #1:#177       // #1:get:()Ljava/util/function/Supplier;\n-   #11 = Methodref          #166.#180     // dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n-   #12 = Methodref          #169.#181     // org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #13 = Methodref          #182.#183     // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #14 = String             #184          //\n-   #15 = String             #185          //\n-   #16 = Methodref          #182.#186     // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #17 = Methodref          #166.#187     // dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n-   #18 = Methodref          #166.#188     // dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-   #19 = Methodref          #166.#189     // dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n-   #20 = Methodref          #190.#191     // java/util/Collections.emptyList:()Ljava/util/List;\n-   #21 = String             #192          // abc\n-   #22 = Methodref          #190.#193     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #23 = Methodref          #166.#194     // dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n-   #24 = Methodref          #166.#195     // dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n-   #25 = String             #196          // foofoo\n-   #26 = String             #197          // foofoofoo\n-   #27 = Methodref          #166.#198     // dev/langchain4j/internal/Utils.randomUUID:()Ljava/lang/String;\n-   #28 = Methodref          #29.#199      // org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-   #29 = Class              #200          // org/assertj/core/api/AbstractStringAssert\n-   #30 = Methodref          #29.#201      // org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-   #31 = Methodref          #29.#202      // org/assertj/core/api/AbstractStringAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #32 = Methodref          #34.#203      // java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-   #33 = Methodref          #169.#204     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #34 = Class              #205          // java/util/UUID\n-   #35 = Methodref          #206.#207     // org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-   #36 = String             #208          // Hello\n-   #37 = String             #209          // World\n-   #38 = Methodref          #166.#210     // dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n-   #39 = Class              #211          // java/lang/NullPointerException\n-   #40 = Methodref          #169.#212     // org/assertj/core/api/Assertions.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #41 = InvokeDynamic      #2:#215       // #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #42 = Methodref          #216.#217     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #43 = Methodref          #166.#218     // dev/langchain4j/internal/Utils.quoted:(Ljava/lang/Object;)Ljava/lang/String;\n-   #44 = Class              #219          // org/junit/jupiter/params/provider/Arguments\n-   #45 = Class              #220          // java/lang/Object\n-   #46 = String             #221          // null\n-   #47 = InterfaceMethodref #44.#222      // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #48 = String             #223          // \\\"\\\"\n-   #49 = String             #224          // \\\" \\\"\n-   #50 = String             #225          // hello\n-   #51 = String             #226          // \\\"hello\\\"\n-   #52 = InterfaceMethodref #227.#228     // java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-   #53 = Methodref          #166.#229     // dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n-   #54 = Methodref          #29.#230      // org/assertj/core/api/AbstractStringAssert.isNull:()V\n-   #55 = Methodref          #29.#231      // org/assertj/core/api/AbstractStringAssert.isEmpty:()V\n-   #56 = String             #232          // foobar\n-   #57 = Class              #233          // java/net/InetSocketAddress\n-   #58 = Methodref          #57.#234      // java/net/InetSocketAddress.\"<init>\":(I)V\n-   #59 = Methodref          #235.#236     // com/sun/net/httpserver/HttpServer.create:(Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n-   #60 = Methodref          #235.#237     // com/sun/net/httpserver/HttpServer.getAddress:()Ljava/net/InetSocketAddress;\n-   #61 = Methodref          #57.#238      // java/net/InetSocketAddress.getPort:()I\n-   #62 = String             #239          // /ok_endpoint\n-   #63 = InvokeDynamic      #3:#242       // #3:handle:()Lcom/sun/net/httpserver/HttpHandler;\n-   #64 = Methodref          #235.#243     // com/sun/net/httpserver/HttpServer.createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n-   #65 = String             #244          // /error_endpoint\n-   #66 = InvokeDynamic      #4:#242       // #4:handle:()Lcom/sun/net/httpserver/HttpHandler;\n-   #67 = Methodref          #235.#246     // com/sun/net/httpserver/HttpServer.start:()V\n-   #68 = Class              #247          // java/lang/StringBuilder\n-   #69 = Methodref          #68.#163      // java/lang/StringBuilder.\"<init>\":()V\n-   #70 = String             #248          // http://localhost:\n-   #71 = Methodref          #68.#249      // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #72 = Methodref          #68.#250      // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n-   #73 = Methodref          #68.#251      // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #74 = Methodref          #166.#252     // dev/langchain4j/internal/Utils.readBytes:(Ljava/lang/String;)[B\n-   #75 = Methodref          #169.#253     // org/assertj/core/api/Assertions.assertThat:([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n-   #76 = Methodref          #5.#254       // java/lang/String.getBytes:()[B\n-   #77 = Methodref          #255.#256     // org/assertj/core/api/AbstractByteArrayAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #78 = Class              #257          // java/lang/RuntimeException\n-   #79 = InvokeDynamic      #5:#259       // #5:call:(I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #80 = String             #260          // Error while reading: 500\n-   #81 = Methodref          #261.#262     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #82 = Methodref          #235.#263     // com/sun/net/httpserver/HttpServer.stop:(I)V\n-   #83 = Methodref          #166.#264     // dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n-   #84 = Methodref          #169.#265     // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #85 = Methodref          #266.#230     // org/assertj/core/api/ListAssert.isNull:()V\n-   #86 = Methodref          #266.#231     // org/assertj/core/api/ListAssert.isEmpty:()V\n-   #87 = String             #267          // one\n-   #88 = Methodref          #266.#268     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #89 = String             #269          // two\n-   #90 = Methodref          #270.#271     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #91 = String             #272          // nope\n-   #92 = Class              #273          // java/net/HttpURLConnection\n-   #93 = Methodref          #274.#275     // com/sun/net/httpserver/HttpExchange.sendResponseHeaders:(IJ)V\n-   #94 = Methodref          #274.#276     // com/sun/net/httpserver/HttpExchange.getResponseBody:()Ljava/io/OutputStream;\n-   #95 = Methodref          #277.#278     // java/io/OutputStream.write:([B)V\n-   #96 = Methodref          #274.#279     // com/sun/net/httpserver/HttpExchange.close:()V\n-   #97 = Class              #280          // dev/langchain4j/internal/UtilsTest\n-   #98 = Utf8               <init>\n-   #99 = Utf8               ()V\n-  #100 = Utf8               Code\n-  #101 = Utf8               LineNumberTable\n-  #102 = Utf8               LocalVariableTable\n-  #103 = Utf8               this\n-  #104 = Utf8               Ldev/langchain4j/internal/UtilsTest;\n-  #105 = Utf8               test_getOrDefault\n-  #106 = Utf8               RuntimeVisibleAnnotations\n-  #107 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #108 = Utf8               test_isNullOrBlank\n-  #109 = Utf8               test_areNotNullOrBlank\n-  #110 = Utf8               test_isNullOrEmpty\n-  #111 = Utf8               test_isCollectionEmpty\n-  #112 = Utf8               test_repeat\n-  #113 = Utf8               randomUUIDWorks\n-  #114 = Utf8               uuid1\n-  #115 = Utf8               Ljava/lang/String;\n-  #116 = Utf8               uuid2\n-  #117 = Utf8               generateUUIDFromTextWorks\n-  #118 = Utf8               input1\n-  #119 = Utf8               input2\n-  #120 = Utf8               uuidFromInput1\n-  #121 = Utf8               uuidFromInput2\n-  #122 = Utf8               generateUUIDFromEmptyInputWorks\n-  #123 = Utf8               uuidFromEmptyInput\n-  #124 = Utf8               generateUUIDFromNullInputWorks\n-  #125 = Utf8               test_quoted\n-  #126 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V\n-  #127 = Utf8               string\n-  #128 = Utf8               expected\n-  #129 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n-  #130 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-  #131 = Utf8               ()Ljava/util/stream/Stream;\n-  #132 = Utf8               Signature\n-  #133 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n-  #134 = Utf8               test_firstChars\n-  #135 = Utf8               test_readBytes\n-  #136 = Utf8               port\n-  #137 = Utf8               I\n-  #138 = Utf8               httpServer\n-  #139 = Utf8               Lcom/sun/net/httpserver/HttpServer;\n-  #140 = Utf8               StackMapTable\n-  #141 = Class              #280          // dev/langchain4j/internal/UtilsTest\n-  #142 = Class              #281          // com/sun/net/httpserver/HttpServer\n-  #143 = Class              #282          // java/lang/Throwable\n-  #144 = Utf8               Exceptions\n-  #145 = Class              #283          // java/io/IOException\n-  #146 = Utf8               test_copyIfNotNull\n-  #147 = Utf8               lambda$test_readBytes$5\n-  #148 = Utf8               (I)V\n-  #149 = Class              #282          // java/lang/Throwable\n-  #150 = Utf8               lambda$test_readBytes$4\n-  #151 = Utf8               (Lcom/sun/net/httpserver/HttpExchange;)V\n-  #152 = Utf8               exchange\n-  #153 = Utf8               Lcom/sun/net/httpserver/HttpExchange;\n-  #154 = Utf8               response\n-  #155 = Utf8               [B\n-  #156 = Utf8               lambda$test_readBytes$3\n-  #157 = Utf8               lambda$generateUUIDFromNullInputWorks$2\n-  #158 = Utf8               lambda$test_getOrDefault$1\n-  #159 = Utf8               ()Ljava/lang/String;\n-  #160 = Utf8               lambda$test_getOrDefault$0\n-  #161 = Utf8               SourceFile\n-  #162 = Utf8               UtilsTest.java\n-  #163 = NameAndType        #98:#99       // \"<init>\":()V\n-  #164 = Utf8               foo\n-  #165 = Utf8               bar\n-  #166 = Class              #284          // dev/langchain4j/internal/Utils\n-  #167 = NameAndType        #285:#286     // getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #168 = Utf8               java/lang/String\n-  #169 = Class              #287          // org/assertj/core/api/Assertions\n-  #170 = NameAndType        #288:#289     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #171 = NameAndType        #290:#289     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #172 = Utf8               BootstrapMethods\n-  #173 = MethodHandle       6:#291        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #174 = MethodType         #292          //  ()Ljava/lang/Object;\n-  #175 = MethodHandle       6:#293        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$0:()Ljava/lang/String;\n-  #176 = MethodType         #159          //  ()Ljava/lang/String;\n-  #177 = NameAndType        #294:#295     // get:()Ljava/util/function/Supplier;\n-  #178 = NameAndType        #285:#296     // getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #179 = MethodHandle       6:#297        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$1:()Ljava/lang/String;\n-  #180 = NameAndType        #298:#299     // isNullOrBlank:(Ljava/lang/String;)Z\n-  #181 = NameAndType        #288:#300     // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #182 = Class              #301          // org/assertj/core/api/AbstractBooleanAssert\n-  #183 = NameAndType        #302:#303     // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #184 = Utf8\n-  #185 = Utf8\n-  #186 = NameAndType        #304:#303     // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #187 = NameAndType        #305:#299     // isNotNullOrBlank:(Ljava/lang/String;)Z\n-  #188 = NameAndType        #306:#307     // areNotNullOrBlank:([Ljava/lang/String;)Z\n-  #189 = NameAndType        #308:#309     // isNullOrEmpty:(Ljava/util/Collection;)Z\n-  #190 = Class              #310          // java/util/Collections\n-  #191 = NameAndType        #311:#312     // emptyList:()Ljava/util/List;\n-  #192 = Utf8               abc\n-  #193 = NameAndType        #313:#314     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #194 = NameAndType        #315:#309     // isCollectionEmpty:(Ljava/util/Collection;)Z\n-  #195 = NameAndType        #316:#317     // repeat:(Ljava/lang/String;I)Ljava/lang/String;\n-  #196 = Utf8               foofoo\n-  #197 = Utf8               foofoofoo\n-  #198 = NameAndType        #318:#159     // randomUUID:()Ljava/lang/String;\n-  #199 = NameAndType        #319:#320     // isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-  #200 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #201 = NameAndType        #321:#322     // isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-  #202 = NameAndType        #323:#324     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #203 = NameAndType        #325:#326     // fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-  #204 = NameAndType        #288:#327     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #205 = Utf8               java/util/UUID\n-  #206 = Class              #328          // org/assertj/core/api/AbstractComparableAssert\n-  #207 = NameAndType        #329:#330     // isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #208 = Utf8               Hello\n-  #209 = Utf8               World\n-  #210 = NameAndType        #331:#332     // generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n-  #211 = Utf8               java/lang/NullPointerException\n-  #212 = NameAndType        #333:#334     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #213 = MethodType         #99           //  ()V\n-  #214 = MethodHandle       6:#335        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$generateUUIDFromNullInputWorks$2:()V\n-  #215 = NameAndType        #336:#340     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #216 = Class              #341          // org/assertj/core/api/ThrowableTypeAssert\n-  #217 = NameAndType        #342:#343     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #218 = NameAndType        #344:#345     // quoted:(Ljava/lang/Object;)Ljava/lang/String;\n-  #219 = Utf8               org/junit/jupiter/params/provider/Arguments\n-  #220 = Utf8               java/lang/Object\n-  #221 = Utf8               null\n-  #222 = NameAndType        #346:#347     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #223 = Utf8               \\\"\\\"\n-  #224 = Utf8               \\\" \\\"\n-  #225 = Utf8               hello\n-  #226 = Utf8               \\\"hello\\\"\n-  #227 = Class              #348          // java/util/stream/Stream\n-  #228 = NameAndType        #346:#349     // of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-  #229 = NameAndType        #350:#317     // firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n-  #230 = NameAndType        #351:#99      // isNull:()V\n-  #231 = NameAndType        #352:#99      // isEmpty:()V\n-  #232 = Utf8               foobar\n-  #233 = Utf8               java/net/InetSocketAddress\n-  #234 = NameAndType        #98:#148      // \"<init>\":(I)V\n-  #235 = Class              #281          // com/sun/net/httpserver/HttpServer\n-  #236 = NameAndType        #353:#354     // create:(Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n-  #237 = NameAndType        #355:#356     // getAddress:()Ljava/net/InetSocketAddress;\n-  #238 = NameAndType        #357:#358     // getPort:()I\n-  #239 = Utf8               /ok_endpoint\n-  #240 = MethodType         #151          //  (Lcom/sun/net/httpserver/HttpExchange;)V\n-  #241 = MethodHandle       6:#359        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n-  #242 = NameAndType        #360:#361     // handle:()Lcom/sun/net/httpserver/HttpHandler;\n-  #243 = NameAndType        #362:#363     // createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n-  #244 = Utf8               /error_endpoint\n-  #245 = MethodHandle       6:#364        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n-  #246 = NameAndType        #365:#99      // start:()V\n-  #247 = Utf8               java/lang/StringBuilder\n-  #248 = Utf8               http://localhost:\n-  #249 = NameAndType        #366:#367     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #250 = NameAndType        #366:#368     // append:(I)Ljava/lang/StringBuilder;\n-  #251 = NameAndType        #369:#159     // toString:()Ljava/lang/String;\n-  #252 = NameAndType        #370:#371     // readBytes:(Ljava/lang/String;)[B\n-  #253 = NameAndType        #288:#372     // assertThat:([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n-  #254 = NameAndType        #373:#374     // getBytes:()[B\n-  #255 = Class              #375          // org/assertj/core/api/AbstractByteArrayAssert\n-  #256 = NameAndType        #290:#324     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #257 = Utf8               java/lang/RuntimeException\n-  #258 = MethodHandle       6:#376        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$5:(I)V\n-  #259 = NameAndType        #336:#377     // call:(I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #260 = Utf8               Error while reading: 500\n-  #261 = Class              #378          // org/assertj/core/api/ThrowableAssertAlternative\n-  #262 = NameAndType        #379:#380     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #263 = NameAndType        #381:#148     // stop:(I)V\n-  #264 = NameAndType        #382:#383     // copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n-  #265 = NameAndType        #288:#384     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #266 = Class              #385          // org/assertj/core/api/ListAssert\n-  #267 = Utf8               one\n-  #268 = NameAndType        #386:#387     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #269 = Utf8               two\n-  #270 = Class              #388          // java/util/Arrays\n-  #271 = NameAndType        #389:#390     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #272 = Utf8               nope\n-  #273 = Utf8               java/net/HttpURLConnection\n-  #274 = Class              #391          // com/sun/net/httpserver/HttpExchange\n-  #275 = NameAndType        #392:#393     // sendResponseHeaders:(IJ)V\n-  #276 = NameAndType        #394:#395     // getResponseBody:()Ljava/io/OutputStream;\n-  #277 = Class              #396          // java/io/OutputStream\n-  #278 = NameAndType        #397:#398     // write:([B)V\n-  #279 = NameAndType        #399:#99      // close:()V\n-  #280 = Utf8               dev/langchain4j/internal/UtilsTest\n-  #281 = Utf8               com/sun/net/httpserver/HttpServer\n-  #282 = Utf8               java/lang/Throwable\n-  #283 = Utf8               java/io/IOException\n-  #284 = Utf8               dev/langchain4j/internal/Utils\n-  #285 = Utf8               getOrDefault\n-  #286 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #287 = Utf8               org/assertj/core/api/Assertions\n-  #288 = Utf8               assertThat\n-  #289 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #290 = Utf8               isEqualTo\n-  #291 = Methodref          #400.#401     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #292 = Utf8               ()Ljava/lang/Object;\n-  #293 = Methodref          #97.#402      // dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$0:()Ljava/lang/String;\n-  #294 = Utf8               get\n-  #295 = Utf8               ()Ljava/util/function/Supplier;\n-  #296 = Utf8               (Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #297 = Methodref          #97.#403      // dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$1:()Ljava/lang/String;\n-  #298 = Utf8               isNullOrBlank\n-  #299 = Utf8               (Ljava/lang/String;)Z\n-  #300 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #301 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n-  #302 = Utf8               isTrue\n-  #303 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n-  #304 = Utf8               isFalse\n-  #305 = Utf8               isNotNullOrBlank\n-  #306 = Utf8               areNotNullOrBlank\n-  #307 = Utf8               ([Ljava/lang/String;)Z\n-  #308 = Utf8               isNullOrEmpty\n-  #309 = Utf8               (Ljava/util/Collection;)Z\n-  #310 = Utf8               java/util/Collections\n-  #311 = Utf8               emptyList\n-  #312 = Utf8               ()Ljava/util/List;\n-  #313 = Utf8               singletonList\n-  #314 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #315 = Utf8               isCollectionEmpty\n-  #316 = Utf8               repeat\n-  #317 = Utf8               (Ljava/lang/String;I)Ljava/lang/String;\n-  #318 = Utf8               randomUUID\n-  #319 = Utf8               isNotNull\n-  #320 = Utf8               ()Lorg/assertj/core/api/AbstractAssert;\n-  #321 = Utf8               isNotEmpty\n-  #322 = Utf8               ()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-  #323 = Utf8               isNotEqualTo\n-  #324 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #325 = Utf8               fromString\n-  #326 = Utf8               (Ljava/lang/String;)Ljava/util/UUID;\n-  #327 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #328 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #329 = Utf8               isInstanceOf\n-  #330 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #331 = Utf8               generateUUIDFrom\n-  #332 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n-  #333 = Utf8               assertThatExceptionOfType\n-  #334 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #335 = Methodref          #97.#404      // dev/langchain4j/internal/UtilsTest.lambda$generateUUIDFromNullInputWorks$2:()V\n-  #336 = Utf8               call\n-  #337 = Class              #406          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #338 = Utf8               ThrowingCallable\n-  #339 = Utf8               InnerClasses\n-  #340 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #341 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #342 = Utf8               isThrownBy\n-  #343 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #344 = Utf8               quoted\n-  #345 = Utf8               (Ljava/lang/Object;)Ljava/lang/String;\n-  #346 = Utf8               of\n-  #347 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #348 = Utf8               java/util/stream/Stream\n-  #349 = Utf8               ([Ljava/lang/Object;)Ljava/util/stream/Stream;\n-  #350 = Utf8               firstChars\n-  #351 = Utf8               isNull\n-  #352 = Utf8               isEmpty\n-  #353 = Utf8               create\n-  #354 = Utf8               (Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n-  #355 = Utf8               getAddress\n-  #356 = Utf8               ()Ljava/net/InetSocketAddress;\n-  #357 = Utf8               getPort\n-  #358 = Utf8               ()I\n-  #359 = Methodref          #97.#407      // dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n-  #360 = Utf8               handle\n-  #361 = Utf8               ()Lcom/sun/net/httpserver/HttpHandler;\n-  #362 = Utf8               createContext\n-  #363 = Utf8               (Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n-  #364 = Methodref          #97.#408      // dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n-  #365 = Utf8               start\n-  #366 = Utf8               append\n-  #367 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #368 = Utf8               (I)Ljava/lang/StringBuilder;\n-  #369 = Utf8               toString\n-  #370 = Utf8               readBytes\n-  #371 = Utf8               (Ljava/lang/String;)[B\n-  #372 = Utf8               ([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n-  #373 = Utf8               getBytes\n-  #374 = Utf8               ()[B\n-  #375 = Utf8               org/assertj/core/api/AbstractByteArrayAssert\n-  #376 = Methodref          #97.#409      // dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$5:(I)V\n-  #377 = Utf8               (I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #378 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #379 = Utf8               withMessageContaining\n-  #380 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #381 = Utf8               stop\n-  #382 = Utf8               copyIfNotNull\n-  #383 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #384 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #385 = Utf8               org/assertj/core/api/ListAssert\n-  #386 = Utf8               containsExactly\n-  #387 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #388 = Utf8               java/util/Arrays\n-  #389 = Utf8               asList\n-  #390 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #391 = Utf8               com/sun/net/httpserver/HttpExchange\n-  #392 = Utf8               sendResponseHeaders\n-  #393 = Utf8               (IJ)V\n-  #394 = Utf8               getResponseBody\n-  #395 = Utf8               ()Ljava/io/OutputStream;\n-  #396 = Utf8               java/io/OutputStream\n-  #397 = Utf8               write\n-  #398 = Utf8               ([B)V\n-  #399 = Utf8               close\n-  #400 = Class              #410          // java/lang/invoke/LambdaMetafactory\n-  #401 = NameAndType        #411:#414     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #402 = NameAndType        #160:#159     // lambda$test_getOrDefault$0:()Ljava/lang/String;\n-  #403 = NameAndType        #158:#159     // lambda$test_getOrDefault$1:()Ljava/lang/String;\n-  #404 = NameAndType        #157:#99      // lambda$generateUUIDFromNullInputWorks$2:()V\n-  #405 = Class              #415          // org/assertj/core/api/ThrowableAssert\n-  #406 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #407 = NameAndType        #156:#151     // lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n-  #408 = NameAndType        #150:#151     // lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n-  #409 = NameAndType        #147:#148     // lambda$test_readBytes$5:(I)V\n-  #410 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #411 = Utf8               metafactory\n-  #412 = Class              #417          // java/lang/invoke/MethodHandles$Lookup\n-  #413 = Utf8               Lookup\n-  #414 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #415 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #416 = Class              #418          // java/lang/invoke/MethodHandles\n-  #417 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #418 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // foo\n+    #8 = Utf8               foo\n+    #9 = String             #10           // bar\n+   #10 = Utf8               bar\n+   #11 = Methodref          #12.#13       // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #12 = Class              #14           // dev/langchain4j/internal/Utils\n+   #13 = NameAndType        #15:#16       // getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #14 = Utf8               dev/langchain4j/internal/Utils\n+   #15 = Utf8               getOrDefault\n+   #16 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #17 = Class              #18           // java/lang/String\n+   #18 = Utf8               java/lang/String\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #20 = Class              #22           // org/assertj/core/api/Assertions\n+   #21 = NameAndType        #23:#24       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #22 = Utf8               org/assertj/core/api/Assertions\n+   #23 = Utf8               assertThat\n+   #24 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #25 = Methodref          #26.#27       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #26 = Class              #28           // org/assertj/core/api/AbstractStringAssert\n+   #27 = NameAndType        #29:#24       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #28 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #29 = Utf8               isEqualTo\n+   #30 = InvokeDynamic      #0:#31        // #0:get:()Ljava/util/function/Supplier;\n+   #31 = NameAndType        #32:#33       // get:()Ljava/util/function/Supplier;\n+   #32 = Utf8               get\n+   #33 = Utf8               ()Ljava/util/function/Supplier;\n+   #34 = Methodref          #12.#35       // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #35 = NameAndType        #15:#36       // getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #36 = Utf8               (Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #37 = InvokeDynamic      #1:#31        // #1:get:()Ljava/util/function/Supplier;\n+   #38 = Methodref          #12.#39       // dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n+   #39 = NameAndType        #40:#41       // isNullOrBlank:(Ljava/lang/String;)Z\n+   #40 = Utf8               isNullOrBlank\n+   #41 = Utf8               (Ljava/lang/String;)Z\n+   #42 = Methodref          #20.#43       // org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #43 = NameAndType        #23:#44       // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #44 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #45 = Methodref          #46.#47       // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #46 = Class              #48           // org/assertj/core/api/AbstractBooleanAssert\n+   #47 = NameAndType        #49:#50       // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #48 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n+   #49 = Utf8               isTrue\n+   #50 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #51 = String             #52           //\n+   #52 = Utf8\n+   #53 = String             #54           //\n+   #54 = Utf8\n+   #55 = Methodref          #46.#56       // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #56 = NameAndType        #57:#50       // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #57 = Utf8               isFalse\n+   #58 = Methodref          #12.#59       // dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n+   #59 = NameAndType        #60:#41       // isNotNullOrBlank:(Ljava/lang/String;)Z\n+   #60 = Utf8               isNotNullOrBlank\n+   #61 = Methodref          #12.#62       // dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+   #62 = NameAndType        #63:#64       // areNotNullOrBlank:([Ljava/lang/String;)Z\n+   #63 = Utf8               areNotNullOrBlank\n+   #64 = Utf8               ([Ljava/lang/String;)Z\n+   #65 = Methodref          #12.#66       // dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n+   #66 = NameAndType        #67:#68       // isNullOrEmpty:(Ljava/util/Collection;)Z\n+   #67 = Utf8               isNullOrEmpty\n+   #68 = Utf8               (Ljava/util/Collection;)Z\n+   #69 = Methodref          #70.#71       // java/util/Collections.emptyList:()Ljava/util/List;\n+   #70 = Class              #72           // java/util/Collections\n+   #71 = NameAndType        #73:#74       // emptyList:()Ljava/util/List;\n+   #72 = Utf8               java/util/Collections\n+   #73 = Utf8               emptyList\n+   #74 = Utf8               ()Ljava/util/List;\n+   #75 = String             #76           // abc\n+   #76 = Utf8               abc\n+   #77 = Methodref          #70.#78       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #78 = NameAndType        #79:#80       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #79 = Utf8               singletonList\n+   #80 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #81 = Methodref          #12.#82       // dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n+   #82 = NameAndType        #83:#68       // isCollectionEmpty:(Ljava/util/Collection;)Z\n+   #83 = Utf8               isCollectionEmpty\n+   #84 = Methodref          #12.#85       // dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n+   #85 = NameAndType        #86:#87       // repeat:(Ljava/lang/String;I)Ljava/lang/String;\n+   #86 = Utf8               repeat\n+   #87 = Utf8               (Ljava/lang/String;I)Ljava/lang/String;\n+   #88 = String             #89           // foofoo\n+   #89 = Utf8               foofoo\n+   #90 = String             #91           // foofoofoo\n+   #91 = Utf8               foofoofoo\n+   #92 = Methodref          #12.#93       // dev/langchain4j/internal/Utils.randomUUID:()Ljava/lang/String;\n+   #93 = NameAndType        #94:#95       // randomUUID:()Ljava/lang/String;\n+   #94 = Utf8               randomUUID\n+   #95 = Utf8               ()Ljava/lang/String;\n+   #96 = Methodref          #26.#97       // org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+   #97 = NameAndType        #98:#99       // isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+   #98 = Utf8               isNotNull\n+   #99 = Utf8               ()Lorg/assertj/core/api/AbstractAssert;\n+  #100 = Methodref          #26.#101      // org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+  #101 = NameAndType        #102:#103     // isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+  #102 = Utf8               isNotEmpty\n+  #103 = Utf8               ()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+  #104 = Methodref          #26.#105      // org/assertj/core/api/AbstractStringAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #105 = NameAndType        #106:#107     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #106 = Utf8               isNotEqualTo\n+  #107 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #108 = Methodref          #109.#110     // java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+  #109 = Class              #111          // java/util/UUID\n+  #110 = NameAndType        #112:#113     // fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+  #111 = Utf8               java/util/UUID\n+  #112 = Utf8               fromString\n+  #113 = Utf8               (Ljava/lang/String;)Ljava/util/UUID;\n+  #114 = Methodref          #20.#115      // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #115 = NameAndType        #23:#116      // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #116 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #117 = Methodref          #118.#119     // org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #118 = Class              #120          // org/assertj/core/api/AbstractComparableAssert\n+  #119 = NameAndType        #121:#122     // isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #120 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+  #121 = Utf8               isInstanceOf\n+  #122 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #123 = String             #124          // Hello\n+  #124 = Utf8               Hello\n+  #125 = String             #126          // World\n+  #126 = Utf8               World\n+  #127 = Methodref          #12.#128      // dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+  #128 = NameAndType        #129:#130     // generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+  #129 = Utf8               generateUUIDFrom\n+  #130 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+  #131 = Class              #132          // java/lang/NullPointerException\n+  #132 = Utf8               java/lang/NullPointerException\n+  #133 = Methodref          #20.#134      // org/assertj/core/api/Assertions.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #134 = NameAndType        #135:#136     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #135 = Utf8               assertThatExceptionOfType\n+  #136 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+  #137 = InvokeDynamic      #2:#138       // #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #138 = NameAndType        #139:#140     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #139 = Utf8               call\n+  #140 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #141 = Methodref          #142.#143     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #142 = Class              #144          // org/assertj/core/api/ThrowableTypeAssert\n+  #143 = NameAndType        #145:#146     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #144 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+  #145 = Utf8               isThrownBy\n+  #146 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #147 = Methodref          #12.#148      // dev/langchain4j/internal/Utils.quoted:(Ljava/lang/Object;)Ljava/lang/String;\n+  #148 = NameAndType        #149:#150     // quoted:(Ljava/lang/Object;)Ljava/lang/String;\n+  #149 = Utf8               quoted\n+  #150 = Utf8               (Ljava/lang/Object;)Ljava/lang/String;\n+  #151 = Class              #152          // org/junit/jupiter/params/provider/Arguments\n+  #152 = Utf8               org/junit/jupiter/params/provider/Arguments\n+  #153 = String             #154          // null\n+  #154 = Utf8               null\n+  #155 = InterfaceMethodref #151.#156     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #156 = NameAndType        #157:#158     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #157 = Utf8               of\n+  #158 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #159 = String             #160          // \\\"\\\"\n+  #160 = Utf8               \\\"\\\"\n+  #161 = String             #162          // \\\" \\\"\n+  #162 = Utf8               \\\" \\\"\n+  #163 = String             #164          // hello\n+  #164 = Utf8               hello\n+  #165 = String             #166          // \\\"hello\\\"\n+  #166 = Utf8               \\\"hello\\\"\n+  #167 = InterfaceMethodref #168.#169     // java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+  #168 = Class              #170          // java/util/stream/Stream\n+  #169 = NameAndType        #157:#171     // of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+  #170 = Utf8               java/util/stream/Stream\n+  #171 = Utf8               ([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+  #172 = Methodref          #12.#173      // dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n+  #173 = NameAndType        #174:#87      // firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n+  #174 = Utf8               firstChars\n+  #175 = Methodref          #26.#176      // org/assertj/core/api/AbstractStringAssert.isNull:()V\n+  #176 = NameAndType        #177:#6       // isNull:()V\n+  #177 = Utf8               isNull\n+  #178 = Methodref          #26.#179      // org/assertj/core/api/AbstractStringAssert.isEmpty:()V\n+  #179 = NameAndType        #180:#6       // isEmpty:()V\n+  #180 = Utf8               isEmpty\n+  #181 = String             #182          // foobar\n+  #182 = Utf8               foobar\n+  #183 = Class              #184          // java/net/InetSocketAddress\n+  #184 = Utf8               java/net/InetSocketAddress\n+  #185 = Methodref          #183.#186     // java/net/InetSocketAddress.\"<init>\":(I)V\n+  #186 = NameAndType        #5:#187       // \"<init>\":(I)V\n+  #187 = Utf8               (I)V\n+  #188 = Methodref          #189.#190     // com/sun/net/httpserver/HttpServer.create:(Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n+  #189 = Class              #191          // com/sun/net/httpserver/HttpServer\n+  #190 = NameAndType        #192:#193     // create:(Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n+  #191 = Utf8               com/sun/net/httpserver/HttpServer\n+  #192 = Utf8               create\n+  #193 = Utf8               (Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n+  #194 = Methodref          #189.#195     // com/sun/net/httpserver/HttpServer.getAddress:()Ljava/net/InetSocketAddress;\n+  #195 = NameAndType        #196:#197     // getAddress:()Ljava/net/InetSocketAddress;\n+  #196 = Utf8               getAddress\n+  #197 = Utf8               ()Ljava/net/InetSocketAddress;\n+  #198 = Methodref          #183.#199     // java/net/InetSocketAddress.getPort:()I\n+  #199 = NameAndType        #200:#201     // getPort:()I\n+  #200 = Utf8               getPort\n+  #201 = Utf8               ()I\n+  #202 = String             #203          // /ok_endpoint\n+  #203 = Utf8               /ok_endpoint\n+  #204 = InvokeDynamic      #3:#205       // #3:handle:()Lcom/sun/net/httpserver/HttpHandler;\n+  #205 = NameAndType        #206:#207     // handle:()Lcom/sun/net/httpserver/HttpHandler;\n+  #206 = Utf8               handle\n+  #207 = Utf8               ()Lcom/sun/net/httpserver/HttpHandler;\n+  #208 = Methodref          #189.#209     // com/sun/net/httpserver/HttpServer.createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n+  #209 = NameAndType        #210:#211     // createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n+  #210 = Utf8               createContext\n+  #211 = Utf8               (Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n+  #212 = String             #213          // /error_endpoint\n+  #213 = Utf8               /error_endpoint\n+  #214 = InvokeDynamic      #4:#205       // #4:handle:()Lcom/sun/net/httpserver/HttpHandler;\n+  #215 = Methodref          #189.#216     // com/sun/net/httpserver/HttpServer.start:()V\n+  #216 = NameAndType        #217:#6       // start:()V\n+  #217 = Utf8               start\n+  #218 = Class              #219          // java/lang/StringBuilder\n+  #219 = Utf8               java/lang/StringBuilder\n+  #220 = Methodref          #218.#3       // java/lang/StringBuilder.\"<init>\":()V\n+  #221 = String             #222          // http://localhost:\n+  #222 = Utf8               http://localhost:\n+  #223 = Methodref          #218.#224     // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #224 = NameAndType        #225:#226     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #225 = Utf8               append\n+  #226 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #227 = Methodref          #218.#228     // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n+  #228 = NameAndType        #225:#229     // append:(I)Ljava/lang/StringBuilder;\n+  #229 = Utf8               (I)Ljava/lang/StringBuilder;\n+  #230 = Methodref          #218.#231     // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+  #231 = NameAndType        #232:#95      // toString:()Ljava/lang/String;\n+  #232 = Utf8               toString\n+  #233 = Methodref          #12.#234      // dev/langchain4j/internal/Utils.readBytes:(Ljava/lang/String;)[B\n+  #234 = NameAndType        #235:#236     // readBytes:(Ljava/lang/String;)[B\n+  #235 = Utf8               readBytes\n+  #236 = Utf8               (Ljava/lang/String;)[B\n+  #237 = Methodref          #20.#238      // org/assertj/core/api/Assertions.assertThat:([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n+  #238 = NameAndType        #23:#239      // assertThat:([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n+  #239 = Utf8               ([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n+  #240 = Methodref          #17.#241      // java/lang/String.getBytes:()[B\n+  #241 = NameAndType        #242:#243     // getBytes:()[B\n+  #242 = Utf8               getBytes\n+  #243 = Utf8               ()[B\n+  #244 = Methodref          #245.#246     // org/assertj/core/api/AbstractByteArrayAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #245 = Class              #247          // org/assertj/core/api/AbstractByteArrayAssert\n+  #246 = NameAndType        #29:#107      // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #247 = Utf8               org/assertj/core/api/AbstractByteArrayAssert\n+  #248 = Class              #249          // java/lang/RuntimeException\n+  #249 = Utf8               java/lang/RuntimeException\n+  #250 = InvokeDynamic      #5:#251       // #5:call:(I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #251 = NameAndType        #139:#252     // call:(I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #252 = Utf8               (I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #253 = String             #254          // Error while reading: 500\n+  #254 = Utf8               Error while reading: 500\n+  #255 = Methodref          #256.#257     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #256 = Class              #258          // org/assertj/core/api/ThrowableAssertAlternative\n+  #257 = NameAndType        #259:#260     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #258 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+  #259 = Utf8               withMessageContaining\n+  #260 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #261 = Methodref          #189.#262     // com/sun/net/httpserver/HttpServer.stop:(I)V\n+  #262 = NameAndType        #263:#187     // stop:(I)V\n+  #263 = Utf8               stop\n+  #264 = Methodref          #12.#265      // dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n+  #265 = NameAndType        #266:#267     // copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n+  #266 = Utf8               copyIfNotNull\n+  #267 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+  #268 = Methodref          #20.#269      // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #269 = NameAndType        #23:#270      // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #270 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #271 = Methodref          #272.#176     // org/assertj/core/api/ListAssert.isNull:()V\n+  #272 = Class              #273          // org/assertj/core/api/ListAssert\n+  #273 = Utf8               org/assertj/core/api/ListAssert\n+  #274 = Methodref          #272.#179     // org/assertj/core/api/ListAssert.isEmpty:()V\n+  #275 = String             #276          // one\n+  #276 = Utf8               one\n+  #277 = Methodref          #272.#278     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #278 = NameAndType        #279:#280     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #279 = Utf8               containsExactly\n+  #280 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #281 = String             #282          // two\n+  #282 = Utf8               two\n+  #283 = Methodref          #284.#285     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #284 = Class              #286          // java/util/Arrays\n+  #285 = NameAndType        #287:#288     // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #286 = Utf8               java/util/Arrays\n+  #287 = Utf8               asList\n+  #288 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #289 = String             #290          // nope\n+  #290 = Utf8               nope\n+  #291 = Class              #292          // java/net/HttpURLConnection\n+  #292 = Utf8               java/net/HttpURLConnection\n+  #293 = Methodref          #294.#295     // com/sun/net/httpserver/HttpExchange.sendResponseHeaders:(IJ)V\n+  #294 = Class              #296          // com/sun/net/httpserver/HttpExchange\n+  #295 = NameAndType        #297:#298     // sendResponseHeaders:(IJ)V\n+  #296 = Utf8               com/sun/net/httpserver/HttpExchange\n+  #297 = Utf8               sendResponseHeaders\n+  #298 = Utf8               (IJ)V\n+  #299 = Methodref          #294.#300     // com/sun/net/httpserver/HttpExchange.getResponseBody:()Ljava/io/OutputStream;\n+  #300 = NameAndType        #301:#302     // getResponseBody:()Ljava/io/OutputStream;\n+  #301 = Utf8               getResponseBody\n+  #302 = Utf8               ()Ljava/io/OutputStream;\n+  #303 = Methodref          #304.#305     // java/io/OutputStream.write:([B)V\n+  #304 = Class              #306          // java/io/OutputStream\n+  #305 = NameAndType        #307:#308     // write:([B)V\n+  #306 = Utf8               java/io/OutputStream\n+  #307 = Utf8               write\n+  #308 = Utf8               ([B)V\n+  #309 = Methodref          #294.#310     // com/sun/net/httpserver/HttpExchange.close:()V\n+  #310 = NameAndType        #311:#6       // close:()V\n+  #311 = Utf8               close\n+  #312 = Class              #313          // dev/langchain4j/internal/UtilsTest\n+  #313 = Utf8               dev/langchain4j/internal/UtilsTest\n+  #314 = Utf8               Code\n+  #315 = Utf8               LineNumberTable\n+  #316 = Utf8               LocalVariableTable\n+  #317 = Utf8               this\n+  #318 = Utf8               Ldev/langchain4j/internal/UtilsTest;\n+  #319 = Utf8               test_getOrDefault\n+  #320 = Utf8               RuntimeVisibleAnnotations\n+  #321 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #322 = Utf8               test_isNullOrBlank\n+  #323 = Utf8               test_areNotNullOrBlank\n+  #324 = Utf8               test_isNullOrEmpty\n+  #325 = Utf8               test_isCollectionEmpty\n+  #326 = Utf8               test_repeat\n+  #327 = Utf8               randomUUIDWorks\n+  #328 = Utf8               uuid1\n+  #329 = Utf8               Ljava/lang/String;\n+  #330 = Utf8               uuid2\n+  #331 = Utf8               generateUUIDFromTextWorks\n+  #332 = Utf8               input1\n+  #333 = Utf8               input2\n+  #334 = Utf8               uuidFromInput1\n+  #335 = Utf8               uuidFromInput2\n+  #336 = Utf8               generateUUIDFromEmptyInputWorks\n+  #337 = Utf8               uuidFromEmptyInput\n+  #338 = Utf8               generateUUIDFromNullInputWorks\n+  #339 = Utf8               test_quoted\n+  #340 = Utf8               (Ljava/lang/String;Ljava/lang/String;)V\n+  #341 = Utf8               string\n+  #342 = Utf8               expected\n+  #343 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n+  #344 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #345 = Utf8               ()Ljava/util/stream/Stream;\n+  #346 = Utf8               Signature\n+  #347 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+  #348 = Utf8               test_firstChars\n+  #349 = Utf8               test_readBytes\n+  #350 = Utf8               port\n+  #351 = Utf8               I\n+  #352 = Utf8               httpServer\n+  #353 = Utf8               Lcom/sun/net/httpserver/HttpServer;\n+  #354 = Utf8               StackMapTable\n+  #355 = Class              #356          // java/lang/Throwable\n+  #356 = Utf8               java/lang/Throwable\n+  #357 = Utf8               Exceptions\n+  #358 = Class              #359          // java/io/IOException\n+  #359 = Utf8               java/io/IOException\n+  #360 = Utf8               test_copyIfNotNull\n+  #361 = Utf8               lambda$test_readBytes$5\n+  #362 = Utf8               lambda$test_readBytes$4\n+  #363 = Utf8               (Lcom/sun/net/httpserver/HttpExchange;)V\n+  #364 = Utf8               exchange\n+  #365 = Utf8               Lcom/sun/net/httpserver/HttpExchange;\n+  #366 = Utf8               response\n+  #367 = Utf8               [B\n+  #368 = Utf8               lambda$test_readBytes$3\n+  #369 = Utf8               lambda$generateUUIDFromNullInputWorks$2\n+  #370 = Utf8               lambda$test_getOrDefault$1\n+  #371 = Utf8               lambda$test_getOrDefault$0\n+  #372 = Utf8               SourceFile\n+  #373 = Utf8               UtilsTest.java\n+  #374 = Utf8               BootstrapMethods\n+  #375 = MethodHandle       6:#376        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #376 = Methodref          #377.#378     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #377 = Class              #379          // java/lang/invoke/LambdaMetafactory\n+  #378 = NameAndType        #380:#381     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #379 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #380 = Utf8               metafactory\n+  #381 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #382 = MethodType         #383          //  ()Ljava/lang/Object;\n+  #383 = Utf8               ()Ljava/lang/Object;\n+  #384 = MethodHandle       6:#385        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$0:()Ljava/lang/String;\n+  #385 = Methodref          #312.#386     // dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$0:()Ljava/lang/String;\n+  #386 = NameAndType        #371:#95      // lambda$test_getOrDefault$0:()Ljava/lang/String;\n+  #387 = MethodType         #95           //  ()Ljava/lang/String;\n+  #388 = MethodHandle       6:#389        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$1:()Ljava/lang/String;\n+  #389 = Methodref          #312.#390     // dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$1:()Ljava/lang/String;\n+  #390 = NameAndType        #370:#95      // lambda$test_getOrDefault$1:()Ljava/lang/String;\n+  #391 = MethodType         #6            //  ()V\n+  #392 = MethodHandle       6:#393        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$generateUUIDFromNullInputWorks$2:()V\n+  #393 = Methodref          #312.#394     // dev/langchain4j/internal/UtilsTest.lambda$generateUUIDFromNullInputWorks$2:()V\n+  #394 = NameAndType        #369:#6       // lambda$generateUUIDFromNullInputWorks$2:()V\n+  #395 = MethodType         #363          //  (Lcom/sun/net/httpserver/HttpExchange;)V\n+  #396 = MethodHandle       6:#397        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n+  #397 = Methodref          #312.#398     // dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n+  #398 = NameAndType        #368:#363     // lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n+  #399 = MethodHandle       6:#400        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n+  #400 = Methodref          #312.#401     // dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n+  #401 = NameAndType        #362:#363     // lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n+  #402 = MethodHandle       6:#403        // REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$5:(I)V\n+  #403 = Methodref          #312.#404     // dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$5:(I)V\n+  #404 = NameAndType        #361:#187     // lambda$test_readBytes$5:(I)V\n+  #405 = Utf8               InnerClasses\n+  #406 = Class              #407          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #407 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #408 = Class              #409          // org/assertj/core/api/ThrowableAssert\n+  #409 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #410 = Utf8               ThrowingCallable\n+  #411 = Class              #412          // java/lang/invoke/MethodHandles$Lookup\n+  #412 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #413 = Class              #414          // java/lang/invoke/MethodHandles\n+  #414 = Utf8               java/lang/invoke/MethodHandles\n+  #415 = Utf8               Lookup\n {\n   dev.langchain4j.internal.UtilsTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -442,104 +439,104 @@\n             0       5     0  this   Ldev/langchain4j/internal/UtilsTest;\n \n   public void test_getOrDefault();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: ldc           #2                  // String foo\n-         2: ldc           #3                  // String bar\n-         4: invokestatic  #4                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-         7: checkcast     #5                  // class java/lang/String\n-        10: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        13: ldc           #2                  // String foo\n-        15: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         0: ldc           #7                  // String foo\n+         2: ldc           #9                  // String bar\n+         4: invokestatic  #11                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+         7: checkcast     #17                 // class java/lang/String\n+        10: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        13: ldc           #7                  // String foo\n+        15: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         18: pop\n         19: aconst_null\n-        20: ldc           #3                  // String bar\n-        22: invokestatic  #4                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-        25: checkcast     #5                  // class java/lang/String\n-        28: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        31: ldc           #3                  // String bar\n-        33: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        20: ldc           #9                  // String bar\n+        22: invokestatic  #11                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        25: checkcast     #17                 // class java/lang/String\n+        28: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        31: ldc           #9                  // String bar\n+        33: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         36: pop\n-        37: ldc           #2                  // String foo\n-        39: invokedynamic #8,  0              // InvokeDynamic #0:get:()Ljava/util/function/Supplier;\n-        44: invokestatic  #9                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        47: checkcast     #5                  // class java/lang/String\n-        50: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        53: ldc           #2                  // String foo\n-        55: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        37: ldc           #7                  // String foo\n+        39: invokedynamic #30,  0             // InvokeDynamic #0:get:()Ljava/util/function/Supplier;\n+        44: invokestatic  #34                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        47: checkcast     #17                 // class java/lang/String\n+        50: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        53: ldc           #7                  // String foo\n+        55: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         58: pop\n         59: aconst_null\n-        60: invokedynamic #10,  0             // InvokeDynamic #1:get:()Ljava/util/function/Supplier;\n-        65: invokestatic  #9                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        68: checkcast     #5                  // class java/lang/String\n-        71: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        74: ldc           #3                  // String bar\n-        76: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        60: invokedynamic #37,  0             // InvokeDynamic #1:get:()Ljava/util/function/Supplier;\n+        65: invokestatic  #34                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        68: checkcast     #17                 // class java/lang/String\n+        71: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        74: ldc           #9                  // String bar\n+        76: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         79: pop\n         80: return\n       LineNumberTable:\n         line 27: 0\n         line 28: 19\n         line 30: 37\n         line 31: 59\n         line 32: 80\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      81     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   public void test_isNullOrBlank();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aconst_null\n-         1: invokestatic  #11                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n-         4: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-         7: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+         1: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n+         4: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+         7: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         10: pop\n-        11: ldc           #14                 // String\n-        13: invokestatic  #11                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n-        16: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        19: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        11: ldc           #51                 // String\n+        13: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n+        16: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        19: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         22: pop\n-        23: ldc           #15                 // String\n-        25: invokestatic  #11                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n-        28: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        31: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        23: ldc           #53                 // String\n+        25: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n+        28: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        31: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         34: pop\n-        35: ldc           #2                  // String foo\n-        37: invokestatic  #11                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n-        40: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        43: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        35: ldc           #7                  // String foo\n+        37: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n+        40: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        43: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         46: pop\n         47: aconst_null\n-        48: invokestatic  #17                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n-        51: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        54: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        48: invokestatic  #58                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n+        51: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        54: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         57: pop\n-        58: ldc           #14                 // String\n-        60: invokestatic  #17                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n-        63: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        66: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        58: ldc           #51                 // String\n+        60: invokestatic  #58                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n+        63: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        66: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         69: pop\n-        70: ldc           #15                 // String\n-        72: invokestatic  #17                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n-        75: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        78: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        70: ldc           #53                 // String\n+        72: invokestatic  #58                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n+        75: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        78: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         81: pop\n-        82: ldc           #2                  // String foo\n-        84: invokestatic  #17                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n-        87: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        90: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        82: ldc           #7                  // String foo\n+        84: invokestatic  #58                 // Method dev/langchain4j/internal/Utils.isNotNullOrBlank:(Ljava/lang/String;)Z\n+        87: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        90: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         93: pop\n         94: return\n       LineNumberTable:\n         line 36: 0\n         line 37: 11\n         line 38: 23\n         line 39: 35\n@@ -548,124 +545,124 @@\n         line 43: 70\n         line 44: 82\n         line 45: 94\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      95     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   public void test_areNotNullOrBlank();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=1, args_size=1\n          0: iconst_0\n-         1: anewarray     #5                  // class java/lang/String\n-         4: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-         7: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        10: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+         1: anewarray     #17                 // class java/lang/String\n+         4: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+         7: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        10: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         13: pop\n         14: iconst_1\n-        15: anewarray     #5                  // class java/lang/String\n+        15: anewarray     #17                 // class java/lang/String\n         18: dup\n         19: iconst_0\n         20: aconst_null\n-        21: checkcast     #5                  // class java/lang/String\n+        21: checkcast     #17                 // class java/lang/String\n         24: aastore\n-        25: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-        28: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        31: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        25: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+        28: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        31: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         34: pop\n         35: iconst_1\n-        36: anewarray     #5                  // class java/lang/String\n+        36: anewarray     #17                 // class java/lang/String\n         39: dup\n         40: iconst_0\n-        41: ldc           #14                 // String\n+        41: ldc           #51                 // String\n         43: aastore\n-        44: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-        47: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        50: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        44: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+        47: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        50: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         53: pop\n         54: iconst_1\n-        55: anewarray     #5                  // class java/lang/String\n+        55: anewarray     #17                 // class java/lang/String\n         58: dup\n         59: iconst_0\n-        60: ldc           #15                 // String\n+        60: ldc           #53                 // String\n         62: aastore\n-        63: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-        66: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        69: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        63: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+        66: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        69: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         72: pop\n         73: iconst_1\n-        74: anewarray     #5                  // class java/lang/String\n+        74: anewarray     #17                 // class java/lang/String\n         77: dup\n         78: iconst_0\n-        79: ldc           #2                  // String foo\n+        79: ldc           #7                  // String foo\n         81: aastore\n-        82: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-        85: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        88: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        82: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+        85: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        88: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         91: pop\n         92: iconst_2\n-        93: anewarray     #5                  // class java/lang/String\n+        93: anewarray     #17                 // class java/lang/String\n         96: dup\n         97: iconst_0\n-        98: ldc           #2                  // String foo\n+        98: ldc           #7                  // String foo\n        100: aastore\n        101: dup\n        102: iconst_1\n-       103: ldc           #3                  // String bar\n+       103: ldc           #9                  // String bar\n        105: aastore\n-       106: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-       109: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       112: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       106: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+       109: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       112: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        115: pop\n        116: iconst_2\n-       117: anewarray     #5                  // class java/lang/String\n+       117: anewarray     #17                 // class java/lang/String\n        120: dup\n        121: iconst_0\n-       122: ldc           #2                  // String foo\n+       122: ldc           #7                  // String foo\n        124: aastore\n        125: dup\n        126: iconst_1\n        127: aconst_null\n        128: aastore\n-       129: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-       132: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       135: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       129: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+       132: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       135: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        138: pop\n        139: iconst_2\n-       140: anewarray     #5                  // class java/lang/String\n+       140: anewarray     #17                 // class java/lang/String\n        143: dup\n        144: iconst_0\n        145: aconst_null\n        146: aastore\n        147: dup\n        148: iconst_1\n-       149: ldc           #3                  // String bar\n+       149: ldc           #9                  // String bar\n        151: aastore\n-       152: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-       155: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       158: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       152: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+       155: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       158: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        161: pop\n        162: iconst_2\n-       163: anewarray     #5                  // class java/lang/String\n+       163: anewarray     #17                 // class java/lang/String\n        166: dup\n        167: iconst_0\n        168: aconst_null\n        169: aastore\n        170: dup\n        171: iconst_1\n        172: aconst_null\n        173: aastore\n-       174: invokestatic  #18                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n-       177: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-       180: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+       174: invokestatic  #61                 // Method dev/langchain4j/internal/Utils.areNotNullOrBlank:([Ljava/lang/String;)Z\n+       177: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+       180: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n        183: pop\n        184: return\n       LineNumberTable:\n         line 49: 0\n         line 50: 14\n         line 51: 35\n         line 52: 54\n@@ -675,169 +672,169 @@\n         line 56: 139\n         line 57: 162\n         line 58: 184\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     185     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   public void test_isNullOrEmpty();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aconst_null\n-         1: invokestatic  #19                 // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n-         4: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-         7: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+         1: invokestatic  #65                 // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n+         4: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+         7: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         10: pop\n-        11: invokestatic  #20                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n-        14: invokestatic  #19                 // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n-        17: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        20: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        11: invokestatic  #69                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n+        14: invokestatic  #65                 // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n+        17: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        20: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         23: pop\n-        24: ldc           #21                 // String abc\n-        26: invokestatic  #22                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        29: invokestatic  #19                 // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n-        32: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        35: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        24: ldc           #75                 // String abc\n+        26: invokestatic  #77                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        29: invokestatic  #65                 // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n+        32: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        35: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         38: pop\n         39: return\n       LineNumberTable:\n         line 62: 0\n         line 63: 11\n         line 64: 24\n         line 65: 39\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      40     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   public void test_isCollectionEmpty();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aconst_null\n-         1: invokestatic  #23                 // Method dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n-         4: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-         7: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+         1: invokestatic  #81                 // Method dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n+         4: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+         7: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         10: pop\n-        11: invokestatic  #20                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n-        14: invokestatic  #23                 // Method dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n-        17: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        20: invokevirtual #13                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        11: invokestatic  #69                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n+        14: invokestatic  #81                 // Method dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n+        17: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        20: invokevirtual #45                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         23: pop\n-        24: ldc           #21                 // String abc\n-        26: invokestatic  #22                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        29: invokestatic  #23                 // Method dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n-        32: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        35: invokevirtual #16                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        24: ldc           #75                 // String abc\n+        26: invokestatic  #77                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        29: invokestatic  #81                 // Method dev/langchain4j/internal/Utils.isCollectionEmpty:(Ljava/util/Collection;)Z\n+        32: invokestatic  #42                 // Method org/assertj/core/api/Assertions.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        35: invokevirtual #55                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         38: pop\n         39: return\n       LineNumberTable:\n         line 70: 0\n         line 71: 11\n         line 72: 24\n         line 73: 39\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      40     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   public void test_repeat();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: ldc           #2                  // String foo\n+         0: ldc           #7                  // String foo\n          2: iconst_0\n-         3: invokestatic  #24                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n-         6: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-         9: ldc           #14                 // String\n-        11: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         3: invokestatic  #84                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n+         6: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         9: ldc           #51                 // String\n+        11: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         14: pop\n-        15: ldc           #2                  // String foo\n+        15: ldc           #7                  // String foo\n         17: iconst_1\n-        18: invokestatic  #24                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n-        21: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        24: ldc           #2                  // String foo\n-        26: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        18: invokestatic  #84                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n+        21: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        24: ldc           #7                  // String foo\n+        26: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         29: pop\n-        30: ldc           #2                  // String foo\n+        30: ldc           #7                  // String foo\n         32: iconst_2\n-        33: invokestatic  #24                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n-        36: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        39: ldc           #25                 // String foofoo\n-        41: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        33: invokestatic  #84                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n+        36: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        39: ldc           #88                 // String foofoo\n+        41: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         44: pop\n-        45: ldc           #2                  // String foo\n+        45: ldc           #7                  // String foo\n         47: iconst_3\n-        48: invokestatic  #24                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n-        51: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        54: ldc           #26                 // String foofoofoo\n-        56: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        48: invokestatic  #84                 // Method dev/langchain4j/internal/Utils.repeat:(Ljava/lang/String;I)Ljava/lang/String;\n+        51: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        54: ldc           #90                 // String foofoofoo\n+        56: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         59: pop\n         60: return\n       LineNumberTable:\n         line 77: 0\n         line 78: 15\n         line 79: 30\n         line 80: 45\n         line 81: 60\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      61     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   void randomUUIDWorks();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: invokestatic  #27                 // Method dev/langchain4j/internal/Utils.randomUUID:()Ljava/lang/String;\n+         0: invokestatic  #92                 // Method dev/langchain4j/internal/Utils.randomUUID:()Ljava/lang/String;\n          3: astore_1\n-         4: invokestatic  #27                 // Method dev/langchain4j/internal/Utils.randomUUID:()Ljava/lang/String;\n+         4: invokestatic  #92                 // Method dev/langchain4j/internal/Utils.randomUUID:()Ljava/lang/String;\n          7: astore_2\n          8: aload_1\n-         9: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        12: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-        15: checkcast     #29                 // class org/assertj/core/api/AbstractStringAssert\n-        18: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+         9: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        12: invokevirtual #96                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+        15: checkcast     #26                 // class org/assertj/core/api/AbstractStringAssert\n+        18: invokevirtual #100                // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         21: pop\n         22: aload_2\n-        23: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        26: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-        29: checkcast     #29                 // class org/assertj/core/api/AbstractStringAssert\n-        32: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+        23: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        26: invokevirtual #96                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+        29: checkcast     #26                 // class org/assertj/core/api/AbstractStringAssert\n+        32: invokevirtual #100                // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         35: pop\n         36: aload_1\n-        37: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        37: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         40: aload_2\n-        41: invokevirtual #31                 // Method org/assertj/core/api/AbstractStringAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        41: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         44: pop\n         45: aload_1\n-        46: invokestatic  #32                 // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-        49: invokestatic  #33                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        52: ldc           #34                 // class java/util/UUID\n-        54: invokevirtual #35                 // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        46: invokestatic  #108                // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+        49: invokestatic  #114                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        52: ldc           #109                // class java/util/UUID\n+        54: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n         57: pop\n         58: aload_2\n-        59: invokestatic  #32                 // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-        62: invokestatic  #33                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        65: ldc           #34                 // class java/util/UUID\n-        67: invokevirtual #35                 // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        59: invokestatic  #108                // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+        62: invokestatic  #114                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        65: ldc           #109                // class java/util/UUID\n+        67: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n         70: pop\n         71: return\n       LineNumberTable:\n         line 85: 0\n         line 86: 4\n         line 88: 8\n         line 89: 22\n@@ -849,66 +846,66 @@\n         line 99: 71\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      72     0  this   Ldev/langchain4j/internal/UtilsTest;\n             4      68     1 uuid1   Ljava/lang/String;\n             8      64     2 uuid2   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   void generateUUIDFromTextWorks();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=5, args_size=1\n-         0: ldc           #36                 // String Hello\n+         0: ldc           #123                // String Hello\n          2: astore_1\n-         3: ldc           #37                 // String World\n+         3: ldc           #125                // String World\n          5: astore_2\n          6: aload_1\n-         7: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+         7: invokestatic  #127                // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n         10: astore_3\n         11: aload_2\n-        12: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+        12: invokestatic  #127                // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n         15: astore        4\n         17: aload_3\n-        18: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        21: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-        24: checkcast     #29                 // class org/assertj/core/api/AbstractStringAssert\n-        27: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+        18: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        21: invokevirtual #96                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+        24: checkcast     #26                 // class org/assertj/core/api/AbstractStringAssert\n+        27: invokevirtual #100                // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         30: pop\n         31: aload         4\n-        33: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        36: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-        39: checkcast     #29                 // class org/assertj/core/api/AbstractStringAssert\n-        42: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+        33: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        36: invokevirtual #96                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+        39: checkcast     #26                 // class org/assertj/core/api/AbstractStringAssert\n+        42: invokevirtual #100                // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         45: pop\n         46: aload_3\n-        47: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        47: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         50: aload         4\n-        52: invokevirtual #31                 // Method org/assertj/core/api/AbstractStringAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        52: invokevirtual #104                // Method org/assertj/core/api/AbstractStringAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         55: pop\n         56: aload_3\n-        57: invokestatic  #32                 // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-        60: invokestatic  #33                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        63: ldc           #34                 // class java/util/UUID\n-        65: invokevirtual #35                 // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        57: invokestatic  #108                // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+        60: invokestatic  #114                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        63: ldc           #109                // class java/util/UUID\n+        65: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n         68: pop\n         69: aload         4\n-        71: invokestatic  #32                 // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-        74: invokestatic  #33                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        77: ldc           #34                 // class java/util/UUID\n-        79: invokevirtual #35                 // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        71: invokestatic  #108                // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+        74: invokestatic  #114                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        77: ldc           #109                // class java/util/UUID\n+        79: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n         82: pop\n         83: aload_1\n-        84: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n-        87: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        84: invokestatic  #127                // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+        87: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         90: aload_3\n-        91: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        91: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         94: pop\n         95: return\n       LineNumberTable:\n         line 103: 0\n         line 104: 3\n         line 106: 6\n         line 107: 11\n@@ -925,271 +922,271 @@\n         Start  Length  Slot  Name   Signature\n             0      96     0  this   Ldev/langchain4j/internal/UtilsTest;\n             3      93     1 input1   Ljava/lang/String;\n             6      90     2 input2   Ljava/lang/String;\n            11      85     3 uuidFromInput1   Ljava/lang/String;\n            17      79     4 uuidFromInput2   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   void generateUUIDFromEmptyInputWorks();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: ldc           #14                 // String\n-         2: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+         0: ldc           #51                 // String\n+         2: invokestatic  #127                // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n          5: astore_1\n          6: aload_1\n-         7: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        10: invokevirtual #28                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n-        13: checkcast     #29                 // class org/assertj/core/api/AbstractStringAssert\n-        16: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+         7: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        10: invokevirtual #96                 // Method org/assertj/core/api/AbstractStringAssert.isNotNull:()Lorg/assertj/core/api/AbstractAssert;\n+        13: checkcast     #26                 // class org/assertj/core/api/AbstractStringAssert\n+        16: invokevirtual #100                // Method org/assertj/core/api/AbstractStringAssert.isNotEmpty:()Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         19: pop\n         20: aload_1\n-        21: invokestatic  #32                 // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n-        24: invokestatic  #33                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        27: ldc           #34                 // class java/util/UUID\n-        29: invokevirtual #35                 // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        21: invokestatic  #108                // Method java/util/UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;\n+        24: invokestatic  #114                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        27: ldc           #109                // class java/util/UUID\n+        29: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n         32: pop\n         33: return\n       LineNumberTable:\n         line 127: 0\n         line 129: 6\n         line 132: 20\n         line 133: 29\n         line 134: 33\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      34     0  this   Ldev/langchain4j/internal/UtilsTest;\n             6      28     1 uuidFromEmptyInput   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   void generateUUIDFromNullInputWorks();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: ldc           #39                 // class java/lang/NullPointerException\n-         2: invokestatic  #40                 // Method org/assertj/core/api/Assertions.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-         5: invokedynamic #41,  0             // InvokeDynamic #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        10: invokevirtual #42                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+         0: ldc           #131                // class java/lang/NullPointerException\n+         2: invokestatic  #133                // Method org/assertj/core/api/Assertions.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+         5: invokedynamic #137,  0            // InvokeDynamic #2:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        10: invokevirtual #141                // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         13: pop\n         14: return\n       LineNumberTable:\n         line 139: 0\n         line 140: 14\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      15     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   void test_quoted(java.lang.String, java.lang.String);\n     descriptor: (Ljava/lang/String;Ljava/lang/String;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=3\n          0: aload_1\n-         1: invokestatic  #43                 // Method dev/langchain4j/internal/Utils.quoted:(Ljava/lang/Object;)Ljava/lang/String;\n-         4: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         1: invokestatic  #147                // Method dev/langchain4j/internal/Utils.quoted:(Ljava/lang/Object;)Ljava/lang/String;\n+         4: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n          7: aload_2\n-         8: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         8: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         11: pop\n         12: return\n       LineNumberTable:\n         line 145: 0\n         line 146: 12\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0  this   Ldev/langchain4j/internal/UtilsTest;\n             0      13     1 string   Ljava/lang/String;\n             0      13     2 expected   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #129()\n+      0: #343()\n         org.junit.jupiter.params.provider.MethodSource\n-      1: #130()\n+      1: #344()\n         org.junit.jupiter.params.ParameterizedTest\n \n   static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> test_quoted();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=7, locals=0, args_size=0\n          0: iconst_4\n-         1: anewarray     #44                 // class org/junit/jupiter/params/provider/Arguments\n+         1: anewarray     #151                // class org/junit/jupiter/params/provider/Arguments\n          4: dup\n          5: iconst_0\n          6: iconst_2\n-         7: anewarray     #45                 // class java/lang/Object\n+         7: anewarray     #2                  // class java/lang/Object\n         10: dup\n         11: iconst_0\n         12: aconst_null\n         13: aastore\n         14: dup\n         15: iconst_1\n-        16: ldc           #46                 // String null\n+        16: ldc           #153                // String null\n         18: aastore\n-        19: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        19: invokestatic  #155                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         22: aastore\n         23: dup\n         24: iconst_1\n         25: iconst_2\n-        26: anewarray     #45                 // class java/lang/Object\n+        26: anewarray     #2                  // class java/lang/Object\n         29: dup\n         30: iconst_0\n-        31: ldc           #14                 // String\n+        31: ldc           #51                 // String\n         33: aastore\n         34: dup\n         35: iconst_1\n-        36: ldc           #48                 // String \\\"\\\"\n+        36: ldc           #159                // String \\\"\\\"\n         38: aastore\n-        39: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        39: invokestatic  #155                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         42: aastore\n         43: dup\n         44: iconst_2\n         45: iconst_2\n-        46: anewarray     #45                 // class java/lang/Object\n+        46: anewarray     #2                  // class java/lang/Object\n         49: dup\n         50: iconst_0\n-        51: ldc           #15                 // String\n+        51: ldc           #53                 // String\n         53: aastore\n         54: dup\n         55: iconst_1\n-        56: ldc           #49                 // String \\\" \\\"\n+        56: ldc           #161                // String \\\" \\\"\n         58: aastore\n-        59: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        59: invokestatic  #155                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         62: aastore\n         63: dup\n         64: iconst_3\n         65: iconst_2\n-        66: anewarray     #45                 // class java/lang/Object\n+        66: anewarray     #2                  // class java/lang/Object\n         69: dup\n         70: iconst_0\n-        71: ldc           #50                 // String hello\n+        71: ldc           #163                // String hello\n         73: aastore\n         74: dup\n         75: iconst_1\n-        76: ldc           #51                 // String \\\"hello\\\"\n+        76: ldc           #165                // String \\\"hello\\\"\n         78: aastore\n-        79: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        79: invokestatic  #155                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n         82: aastore\n-        83: invokestatic  #52                 // InterfaceMethod java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n+        83: invokestatic  #167                // InterfaceMethod java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;\n         86: areturn\n       LineNumberTable:\n         line 149: 0\n-    Signature: #133                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #347                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n \n   public void test_firstChars();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aconst_null\n          1: iconst_3\n-         2: invokestatic  #53                 // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n-         5: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-         8: invokevirtual #54                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n-        11: ldc           #14                 // String\n+         2: invokestatic  #172                // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n+         5: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         8: invokevirtual #175                // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        11: ldc           #51                 // String\n         13: iconst_3\n-        14: invokestatic  #53                 // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n-        17: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        20: invokevirtual #55                 // Method org/assertj/core/api/AbstractStringAssert.isEmpty:()V\n-        23: ldc           #2                  // String foo\n+        14: invokestatic  #172                // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n+        17: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        20: invokevirtual #178                // Method org/assertj/core/api/AbstractStringAssert.isEmpty:()V\n+        23: ldc           #7                  // String foo\n         25: iconst_3\n-        26: invokestatic  #53                 // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n-        29: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        32: ldc           #2                  // String foo\n-        34: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        26: invokestatic  #172                // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n+        29: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        32: ldc           #7                  // String foo\n+        34: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         37: pop\n-        38: ldc           #56                 // String foobar\n+        38: ldc           #181                // String foobar\n         40: iconst_3\n-        41: invokestatic  #53                 // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n-        44: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        47: ldc           #2                  // String foo\n-        49: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        41: invokestatic  #172                // Method dev/langchain4j/internal/Utils.firstChars:(Ljava/lang/String;I)Ljava/lang/String;\n+        44: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        47: ldc           #7                  // String foo\n+        49: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         52: pop\n         53: return\n       LineNumberTable:\n         line 154: 0\n         line 155: 11\n         line 156: 23\n         line 157: 38\n         line 158: 53\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      54     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   public void test_readBytes() throws java.io.IOException;\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: new           #57                 // class java/net/InetSocketAddress\n+         0: new           #183                // class java/net/InetSocketAddress\n          3: dup\n          4: iconst_0\n-         5: invokespecial #58                 // Method java/net/InetSocketAddress.\"<init>\":(I)V\n+         5: invokespecial #185                // Method java/net/InetSocketAddress.\"<init>\":(I)V\n          8: iconst_0\n-         9: invokestatic  #59                 // Method com/sun/net/httpserver/HttpServer.create:(Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n+         9: invokestatic  #188                // Method com/sun/net/httpserver/HttpServer.create:(Ljava/net/InetSocketAddress;I)Lcom/sun/net/httpserver/HttpServer;\n         12: astore_1\n         13: aload_1\n-        14: invokevirtual #60                 // Method com/sun/net/httpserver/HttpServer.getAddress:()Ljava/net/InetSocketAddress;\n-        17: invokevirtual #61                 // Method java/net/InetSocketAddress.getPort:()I\n+        14: invokevirtual #194                // Method com/sun/net/httpserver/HttpServer.getAddress:()Ljava/net/InetSocketAddress;\n+        17: invokevirtual #198                // Method java/net/InetSocketAddress.getPort:()I\n         20: istore_2\n         21: aload_1\n-        22: ldc           #62                 // String /ok_endpoint\n-        24: invokedynamic #63,  0             // InvokeDynamic #3:handle:()Lcom/sun/net/httpserver/HttpHandler;\n-        29: invokevirtual #64                 // Method com/sun/net/httpserver/HttpServer.createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n+        22: ldc           #202                // String /ok_endpoint\n+        24: invokedynamic #204,  0            // InvokeDynamic #3:handle:()Lcom/sun/net/httpserver/HttpHandler;\n+        29: invokevirtual #208                // Method com/sun/net/httpserver/HttpServer.createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n         32: pop\n         33: aload_1\n-        34: ldc           #65                 // String /error_endpoint\n-        36: invokedynamic #66,  0             // InvokeDynamic #4:handle:()Lcom/sun/net/httpserver/HttpHandler;\n-        41: invokevirtual #64                 // Method com/sun/net/httpserver/HttpServer.createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n+        34: ldc           #212                // String /error_endpoint\n+        36: invokedynamic #214,  0            // InvokeDynamic #4:handle:()Lcom/sun/net/httpserver/HttpHandler;\n+        41: invokevirtual #208                // Method com/sun/net/httpserver/HttpServer.createContext:(Ljava/lang/String;Lcom/sun/net/httpserver/HttpHandler;)Lcom/sun/net/httpserver/HttpContext;\n         44: pop\n         45: aload_1\n-        46: invokevirtual #67                 // Method com/sun/net/httpserver/HttpServer.start:()V\n-        49: new           #68                 // class java/lang/StringBuilder\n+        46: invokevirtual #215                // Method com/sun/net/httpserver/HttpServer.start:()V\n+        49: new           #218                // class java/lang/StringBuilder\n         52: dup\n-        53: invokespecial #69                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        56: ldc           #70                 // String http://localhost:\n-        58: invokevirtual #71                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        53: invokespecial #220                // Method java/lang/StringBuilder.\"<init>\":()V\n+        56: ldc           #221                // String http://localhost:\n+        58: invokevirtual #223                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         61: iload_2\n-        62: invokevirtual #72                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n-        65: ldc           #62                 // String /ok_endpoint\n-        67: invokevirtual #71                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        70: invokevirtual #73                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        73: invokestatic  #74                 // Method dev/langchain4j/internal/Utils.readBytes:(Ljava/lang/String;)[B\n-        76: invokestatic  #75                 // Method org/assertj/core/api/Assertions.assertThat:([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n-        79: ldc           #50                 // String hello\n-        81: invokevirtual #76                 // Method java/lang/String.getBytes:()[B\n-        84: invokevirtual #77                 // Method org/assertj/core/api/AbstractByteArrayAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        62: invokevirtual #227                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n+        65: ldc           #202                // String /ok_endpoint\n+        67: invokevirtual #223                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        70: invokevirtual #230                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        73: invokestatic  #233                // Method dev/langchain4j/internal/Utils.readBytes:(Ljava/lang/String;)[B\n+        76: invokestatic  #237                // Method org/assertj/core/api/Assertions.assertThat:([B)Lorg/assertj/core/api/AbstractByteArrayAssert;\n+        79: ldc           #163                // String hello\n+        81: invokevirtual #240                // Method java/lang/String.getBytes:()[B\n+        84: invokevirtual #244                // Method org/assertj/core/api/AbstractByteArrayAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         87: pop\n-        88: ldc           #78                 // class java/lang/RuntimeException\n-        90: invokestatic  #40                 // Method org/assertj/core/api/Assertions.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        88: ldc           #248                // class java/lang/RuntimeException\n+        90: invokestatic  #133                // Method org/assertj/core/api/Assertions.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         93: iload_2\n-        94: invokedynamic #79,  0             // InvokeDynamic #5:call:(I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        99: invokevirtual #42                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-       102: ldc           #80                 // String Error while reading: 500\n-       104: invokevirtual #81                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        94: invokedynamic #250,  0            // InvokeDynamic #5:call:(I)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        99: invokevirtual #141                // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+       102: ldc           #253                // String Error while reading: 500\n+       104: invokevirtual #255                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n        107: pop\n        108: aload_1\n        109: iconst_0\n-       110: invokevirtual #82                 // Method com/sun/net/httpserver/HttpServer.stop:(I)V\n+       110: invokevirtual #261                // Method com/sun/net/httpserver/HttpServer.stop:(I)V\n        113: goto          124\n        116: astore_3\n        117: aload_1\n        118: iconst_0\n-       119: invokevirtual #82                 // Method com/sun/net/httpserver/HttpServer.stop:(I)V\n+       119: invokevirtual #261                // Method com/sun/net/httpserver/HttpServer.stop:(I)V\n        122: aload_3\n        123: athrow\n        124: return\n       Exception table:\n          from    to  target type\n             13   108   116   any\n       LineNumberTable:\n@@ -1218,97 +1215,97 @@\n           offset_delta = 116\n           locals = [ class dev/langchain4j/internal/UtilsTest, class com/sun/net/httpserver/HttpServer ]\n           stack = [ class java/lang/Throwable ]\n         frame_type = 7 /* same */\n     Exceptions:\n       throws java.io.IOException\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   void test_copyIfNotNull();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=1, args_size=1\n          0: aconst_null\n-         1: invokestatic  #83                 // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n-         4: invokestatic  #84                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-         7: invokevirtual #85                 // Method org/assertj/core/api/ListAssert.isNull:()V\n-        10: invokestatic  #20                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n-        13: invokestatic  #83                 // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n-        16: invokestatic  #84                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        19: invokevirtual #86                 // Method org/assertj/core/api/ListAssert.isEmpty:()V\n-        22: ldc           #87                 // String one\n-        24: invokestatic  #22                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        27: invokestatic  #83                 // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n-        30: invokestatic  #84                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        33: iconst_1\n-        34: anewarray     #5                  // class java/lang/String\n-        37: dup\n-        38: iconst_0\n-        39: ldc           #87                 // String one\n-        41: aastore\n-        42: invokevirtual #88                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-        45: pop\n-        46: iconst_2\n-        47: anewarray     #5                  // class java/lang/String\n-        50: dup\n-        51: iconst_0\n-        52: ldc           #87                 // String one\n-        54: aastore\n-        55: dup\n-        56: iconst_1\n-        57: ldc           #89                 // String two\n-        59: aastore\n-        60: invokestatic  #90                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        63: invokestatic  #83                 // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n-        66: invokestatic  #84                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        69: iconst_2\n-        70: anewarray     #5                  // class java/lang/String\n-        73: dup\n-        74: iconst_0\n-        75: ldc           #87                 // String one\n-        77: aastore\n-        78: dup\n-        79: iconst_1\n-        80: ldc           #89                 // String two\n+         1: invokestatic  #264                // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n+         4: invokestatic  #268                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+         7: invokevirtual #271                // Method org/assertj/core/api/ListAssert.isNull:()V\n+        10: invokestatic  #69                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n+        13: invokestatic  #264                // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n+        16: invokestatic  #268                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        19: invokevirtual #274                // Method org/assertj/core/api/ListAssert.isEmpty:()V\n+        22: ldc_w         #275                // String one\n+        25: invokestatic  #77                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        28: invokestatic  #264                // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n+        31: invokestatic  #268                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        34: iconst_1\n+        35: anewarray     #17                 // class java/lang/String\n+        38: dup\n+        39: iconst_0\n+        40: ldc_w         #275                // String one\n+        43: aastore\n+        44: invokevirtual #277                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        47: pop\n+        48: iconst_2\n+        49: anewarray     #17                 // class java/lang/String\n+        52: dup\n+        53: iconst_0\n+        54: ldc_w         #275                // String one\n+        57: aastore\n+        58: dup\n+        59: iconst_1\n+        60: ldc_w         #281                // String two\n+        63: aastore\n+        64: invokestatic  #283                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        67: invokestatic  #264                // Method dev/langchain4j/internal/Utils.copyIfNotNull:(Ljava/util/List;)Ljava/util/List;\n+        70: invokestatic  #268                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        73: iconst_2\n+        74: anewarray     #17                 // class java/lang/String\n+        77: dup\n+        78: iconst_0\n+        79: ldc_w         #275                // String one\n         82: aastore\n-        83: invokevirtual #88                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-        86: pop\n-        87: return\n+        83: dup\n+        84: iconst_1\n+        85: ldc_w         #281                // String two\n+        88: aastore\n+        89: invokevirtual #277                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        92: pop\n+        93: return\n       LineNumberTable:\n         line 193: 0\n         line 194: 10\n         line 195: 22\n-        line 196: 46\n-        line 197: 87\n+        line 196: 48\n+        line 197: 93\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-            0      88     0  this   Ldev/langchain4j/internal/UtilsTest;\n+            0      94     0  this   Ldev/langchain4j/internal/UtilsTest;\n     RuntimeVisibleAnnotations:\n-      0: #107()\n+      0: #321()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_readBytes$5(int) throws java.lang.Throwable;\n     descriptor: (I)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: new           #68                 // class java/lang/StringBuilder\n+         0: new           #218                // class java/lang/StringBuilder\n          3: dup\n-         4: invokespecial #69                 // Method java/lang/StringBuilder.\"<init>\":()V\n-         7: ldc           #70                 // String http://localhost:\n-         9: invokevirtual #71                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         4: invokespecial #220                // Method java/lang/StringBuilder.\"<init>\":()V\n+         7: ldc           #221                // String http://localhost:\n+         9: invokevirtual #223                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         12: iload_0\n-        13: invokevirtual #72                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n-        16: ldc           #65                 // String /error_endpoint\n-        18: invokevirtual #71                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        21: invokevirtual #73                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        24: invokestatic  #74                 // Method dev/langchain4j/internal/Utils.readBytes:(Ljava/lang/String;)[B\n+        13: invokevirtual #227                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n+        16: ldc           #212                // String /error_endpoint\n+        18: invokevirtual #223                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        21: invokevirtual #230                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        24: invokestatic  #233                // Method dev/langchain4j/internal/Utils.readBytes:(Ljava/lang/String;)[B\n         27: pop\n         28: return\n       LineNumberTable:\n         line 183: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      29     0  port   I\n@@ -1316,63 +1313,63 @@\n       throws java.lang.Throwable\n \n   private static void lambda$test_readBytes$4(com.sun.net.httpserver.HttpExchange) throws java.io.IOException;\n     descriptor: (Lcom/sun/net/httpserver/HttpExchange;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: ldc           #91                 // String nope\n-         2: invokevirtual #76                 // Method java/lang/String.getBytes:()[B\n-         5: astore_1\n-         6: aload_0\n-         7: sipush        500\n-        10: aload_1\n-        11: arraylength\n-        12: i2l\n-        13: invokevirtual #93                 // Method com/sun/net/httpserver/HttpExchange.sendResponseHeaders:(IJ)V\n-        16: aload_0\n-        17: invokevirtual #94                 // Method com/sun/net/httpserver/HttpExchange.getResponseBody:()Ljava/io/OutputStream;\n-        20: aload_1\n-        21: invokevirtual #95                 // Method java/io/OutputStream.write:([B)V\n-        24: aload_0\n-        25: invokevirtual #96                 // Method com/sun/net/httpserver/HttpExchange.close:()V\n-        28: return\n+         0: ldc_w         #289                // String nope\n+         3: invokevirtual #240                // Method java/lang/String.getBytes:()[B\n+         6: astore_1\n+         7: aload_0\n+         8: sipush        500\n+        11: aload_1\n+        12: arraylength\n+        13: i2l\n+        14: invokevirtual #293                // Method com/sun/net/httpserver/HttpExchange.sendResponseHeaders:(IJ)V\n+        17: aload_0\n+        18: invokevirtual #299                // Method com/sun/net/httpserver/HttpExchange.getResponseBody:()Ljava/io/OutputStream;\n+        21: aload_1\n+        22: invokevirtual #303                // Method java/io/OutputStream.write:([B)V\n+        25: aload_0\n+        26: invokevirtual #309                // Method com/sun/net/httpserver/HttpExchange.close:()V\n+        29: return\n       LineNumberTable:\n         line 172: 0\n-        line 173: 6\n-        line 174: 16\n-        line 175: 24\n-        line 176: 28\n+        line 173: 7\n+        line 174: 17\n+        line 175: 25\n+        line 176: 29\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-            0      29     0 exchange   Lcom/sun/net/httpserver/HttpExchange;\n-            6      23     1 response   [B\n+            0      30     0 exchange   Lcom/sun/net/httpserver/HttpExchange;\n+            7      23     1 response   [B\n     Exceptions:\n       throws java.io.IOException\n \n   private static void lambda$test_readBytes$3(com.sun.net.httpserver.HttpExchange) throws java.io.IOException;\n     descriptor: (Lcom/sun/net/httpserver/HttpExchange;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: ldc           #50                 // String hello\n-         2: invokevirtual #76                 // Method java/lang/String.getBytes:()[B\n+         0: ldc           #163                // String hello\n+         2: invokevirtual #240                // Method java/lang/String.getBytes:()[B\n          5: astore_1\n          6: aload_0\n          7: sipush        200\n         10: aload_1\n         11: arraylength\n         12: i2l\n-        13: invokevirtual #93                 // Method com/sun/net/httpserver/HttpExchange.sendResponseHeaders:(IJ)V\n+        13: invokevirtual #293                // Method com/sun/net/httpserver/HttpExchange.sendResponseHeaders:(IJ)V\n         16: aload_0\n-        17: invokevirtual #94                 // Method com/sun/net/httpserver/HttpExchange.getResponseBody:()Ljava/io/OutputStream;\n+        17: invokevirtual #299                // Method com/sun/net/httpserver/HttpExchange.getResponseBody:()Ljava/io/OutputStream;\n         20: aload_1\n-        21: invokevirtual #95                 // Method java/io/OutputStream.write:([B)V\n+        21: invokevirtual #303                // Method java/io/OutputStream.write:([B)V\n         24: aload_0\n-        25: invokevirtual #96                 // Method com/sun/net/httpserver/HttpExchange.close:()V\n+        25: invokevirtual #309                // Method com/sun/net/httpserver/HttpExchange.close:()V\n         28: return\n       LineNumberTable:\n         line 166: 0\n         line 167: 6\n         line 168: 16\n         line 169: 24\n         line 170: 28\n@@ -1385,70 +1382,70 @@\n \n   private static void lambda$generateUUIDFromNullInputWorks$2() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n          0: aconst_null\n-         1: invokestatic  #38                 // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n+         1: invokestatic  #127                // Method dev/langchain4j/internal/Utils.generateUUIDFrom:(Ljava/lang/String;)Ljava/lang/String;\n          4: pop\n          5: return\n       LineNumberTable:\n         line 139: 0\n     Exceptions:\n       throws java.lang.Throwable\n \n   private static java.lang.String lambda$test_getOrDefault$1();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #3                  // String bar\n+         0: ldc           #9                  // String bar\n          2: areturn\n       LineNumberTable:\n         line 31: 0\n \n   private static java.lang.String lambda$test_getOrDefault$0();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #3                  // String bar\n+         0: ldc           #9                  // String bar\n          2: areturn\n       LineNumberTable:\n         line 30: 0\n }\n SourceFile: \"UtilsTest.java\"\n-InnerClasses:\n-  public static #338= #337 of #405;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #413= #412 of #416; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #173 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #375 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #174 ()Ljava/lang/Object;\n-      #175 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$0:()Ljava/lang/String;\n-      #176 ()Ljava/lang/String;\n-  1: #173 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #382 ()Ljava/lang/Object;\n+      #384 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$0:()Ljava/lang/String;\n+      #387 ()Ljava/lang/String;\n+  1: #375 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #174 ()Ljava/lang/Object;\n-      #179 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$1:()Ljava/lang/String;\n-      #176 ()Ljava/lang/String;\n-  2: #173 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #382 ()Ljava/lang/Object;\n+      #388 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_getOrDefault$1:()Ljava/lang/String;\n+      #387 ()Ljava/lang/String;\n+  2: #375 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #213 ()V\n-      #214 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$generateUUIDFromNullInputWorks$2:()V\n-      #213 ()V\n-  3: #173 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #391 ()V\n+      #392 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$generateUUIDFromNullInputWorks$2:()V\n+      #391 ()V\n+  3: #375 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #240 (Lcom/sun/net/httpserver/HttpExchange;)V\n-      #241 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n-      #240 (Lcom/sun/net/httpserver/HttpExchange;)V\n-  4: #173 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #395 (Lcom/sun/net/httpserver/HttpExchange;)V\n+      #396 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$3:(Lcom/sun/net/httpserver/HttpExchange;)V\n+      #395 (Lcom/sun/net/httpserver/HttpExchange;)V\n+  4: #375 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #240 (Lcom/sun/net/httpserver/HttpExchange;)V\n-      #245 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n-      #240 (Lcom/sun/net/httpserver/HttpExchange;)V\n-  5: #173 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #395 (Lcom/sun/net/httpserver/HttpExchange;)V\n+      #399 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$4:(Lcom/sun/net/httpserver/HttpExchange;)V\n+      #395 (Lcom/sun/net/httpserver/HttpExchange;)V\n+  5: #375 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #213 ()V\n-      #258 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$5:(I)V\n-      #213 ()V\n+      #391 ()V\n+      #402 REF_invokeStatic dev/langchain4j/internal/UtilsTest.lambda$test_readBytes$5:(I)V\n+      #391 ()V\n+InnerClasses:\n+  public static #410= #406 of #408;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #415= #411 of #413; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/internal/ValidationUtilsTest.class", "source2": "dev/langchain4j/internal/ValidationUtilsTest.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -35,17 +35,15 @@\n     \n     @Test\n     public void test_ensureNotEmpty_collection() {\n         List<Object> list = new ArrayList<Object>();\n         list.add(new Object());\n         this.assertThat((List)ValidationUtils.ensureNotEmpty((Collection)list, \"test\")).isSameAs((Object)list);\n         list = new ArrayList<Object>();\n-        this.assertThatExceptionOfType((Class)IllegalArgumentException.class).isThrownBy(() -> {\n-            final List list2 = (List)ValidationUtils.ensureNotEmpty((Collection)list, \"test\");\n-        }).withMessageContaining(\"test cannot be null or empty\");\n+        this.assertThatExceptionOfType((Class)IllegalArgumentException.class).isThrownBy(() -> ValidationUtils.ensureNotEmpty((Collection)list, \"test\")).withMessageContaining(\"test cannot be null or empty\");\n         this.assertThatExceptionOfType((Class)IllegalArgumentException.class).isThrownBy(() -> ValidationUtils.ensureNotEmpty((Collection)null, \"test\")).withMessageContaining(\"test cannot be null or empty\");\n     }\n     \n     @Test\n     public void test_ensureNotEmpty_map() {\n         Map<Object, Object> map = new HashMap<Object, Object>();\n         map.put(new Object(), new Object());\n"}]}, {"source1": "dev/langchain4j/model/ExampleTestTokenizer.class", "source2": "dev/langchain4j/model/ExampleTestTokenizer.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,109 +1,108 @@\n-  SHA-256 checksum 3b8b3aaf858cb4cdf201d22906d82f8fb181981439e539f699641b96c06cb933\n+  SHA-256 checksum 8fdfa8cb6c5520468fda18fa2191a7fa1b6f99351c4721f54b3c6017cc06db81\n   Compiled from \"ExampleTestTokenizer.java\"\n public class dev.langchain4j.model.ExampleTestTokenizer implements dev.langchain4j.model.Tokenizer\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #15                         // dev/langchain4j/model/ExampleTestTokenizer\n-  super_class: #16                        // java/lang/Object\n+  this_class: #22                         // dev/langchain4j/model/ExampleTestTokenizer\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 6, attributes: 1\n Constant pool:\n-   #1 = Methodref          #16.#59        // java/lang/Object.\"<init>\":()V\n-   #2 = String             #60            //\n-   #3 = Methodref          #61.#62        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n-   #4 = InterfaceMethodref #9.#63         // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-   #5 = Methodref          #15.#64        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n-   #6 = InterfaceMethodref #65.#66        // java/lang/Iterable.iterator:()Ljava/util/Iterator;\n-   #7 = InterfaceMethodref #67.#68        // java/util/Iterator.hasNext:()Z\n-   #8 = InterfaceMethodref #67.#69        // java/util/Iterator.next:()Ljava/lang/Object;\n-   #9 = Class              #70            // dev/langchain4j/data/message/ChatMessage\n-  #10 = Methodref          #15.#71        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n-  #11 = Class              #72            // dev/langchain4j/agent/tool/ToolSpecification\n-  #12 = Methodref          #11.#73        // dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-  #13 = Class              #74            // dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #14 = Methodref          #13.#75        // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-  #15 = Class              #76            // dev/langchain4j/model/ExampleTestTokenizer\n-  #16 = Class              #77            // java/lang/Object\n-  #17 = Class              #78            // dev/langchain4j/model/Tokenizer\n-  #18 = Utf8               <init>\n-  #19 = Utf8               ()V\n-  #20 = Utf8               Code\n-  #21 = Utf8               LineNumberTable\n-  #22 = Utf8               LocalVariableTable\n-  #23 = Utf8               this\n-  #24 = Utf8               Ldev/langchain4j/model/ExampleTestTokenizer;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             //\n+   #8 = Utf8\n+   #9 = Methodref          #10.#11        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #10 = Class              #12            // java/lang/String\n+  #11 = NameAndType        #13:#14        // split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #12 = Utf8               java/lang/String\n+  #13 = Utf8               split\n+  #14 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n+  #15 = InterfaceMethodref #16.#17        // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+  #16 = Class              #18            // dev/langchain4j/data/message/ChatMessage\n+  #17 = NameAndType        #19:#20        // text:()Ljava/lang/String;\n+  #18 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #19 = Utf8               text\n+  #20 = Utf8               ()Ljava/lang/String;\n+  #21 = Methodref          #22.#23        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n+  #22 = Class              #24            // dev/langchain4j/model/ExampleTestTokenizer\n+  #23 = NameAndType        #25:#26        // estimateTokenCountInText:(Ljava/lang/String;)I\n+  #24 = Utf8               dev/langchain4j/model/ExampleTestTokenizer\n   #25 = Utf8               estimateTokenCountInText\n   #26 = Utf8               (Ljava/lang/String;)I\n-  #27 = Utf8               text\n-  #28 = Utf8               Ljava/lang/String;\n-  #29 = Utf8               estimateTokenCountInMessage\n-  #30 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)I\n-  #31 = Utf8               message\n-  #32 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-  #33 = Utf8               estimateTokenCountInMessages\n-  #34 = Utf8               (Ljava/lang/Iterable;)I\n-  #35 = Utf8               messages\n-  #36 = Utf8               Ljava/lang/Iterable;\n-  #37 = Utf8               tokenCount\n-  #38 = Utf8               I\n-  #39 = Utf8               LocalVariableTypeTable\n-  #40 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #41 = Utf8               StackMapTable\n-  #42 = Class              #79            // java/util/Iterator\n-  #43 = Utf8               Signature\n-  #44 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;)I\n-  #45 = Utf8               estimateTokenCountInToolSpecifications\n-  #46 = Utf8               specification\n-  #47 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #48 = Utf8               toolSpecifications\n-  #49 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n-  #50 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;)I\n-  #51 = Utf8               estimateTokenCountInToolExecutionRequests\n-  #52 = Utf8               request\n-  #53 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #54 = Utf8               toolExecutionRequests\n-  #55 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;\n-  #56 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;)I\n-  #57 = Utf8               SourceFile\n-  #58 = Utf8               ExampleTestTokenizer.java\n-  #59 = NameAndType        #18:#19        // \"<init>\":()V\n-  #60 = Utf8\n-  #61 = Class              #80            // java/lang/String\n-  #62 = NameAndType        #81:#82        // split:(Ljava/lang/String;)[Ljava/lang/String;\n-  #63 = NameAndType        #27:#83        // text:()Ljava/lang/String;\n-  #64 = NameAndType        #25:#26        // estimateTokenCountInText:(Ljava/lang/String;)I\n-  #65 = Class              #84            // java/lang/Iterable\n-  #66 = NameAndType        #85:#86        // iterator:()Ljava/util/Iterator;\n-  #67 = Class              #79            // java/util/Iterator\n-  #68 = NameAndType        #87:#88        // hasNext:()Z\n-  #69 = NameAndType        #89:#90        // next:()Ljava/lang/Object;\n-  #70 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #71 = NameAndType        #29:#30        // estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n-  #72 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n-  #73 = NameAndType        #91:#83        // description:()Ljava/lang/String;\n-  #74 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #75 = NameAndType        #92:#83        // arguments:()Ljava/lang/String;\n-  #76 = Utf8               dev/langchain4j/model/ExampleTestTokenizer\n-  #77 = Utf8               java/lang/Object\n-  #78 = Utf8               dev/langchain4j/model/Tokenizer\n-  #79 = Utf8               java/util/Iterator\n-  #80 = Utf8               java/lang/String\n-  #81 = Utf8               split\n-  #82 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n-  #83 = Utf8               ()Ljava/lang/String;\n-  #84 = Utf8               java/lang/Iterable\n-  #85 = Utf8               iterator\n-  #86 = Utf8               ()Ljava/util/Iterator;\n-  #87 = Utf8               hasNext\n-  #88 = Utf8               ()Z\n-  #89 = Utf8               next\n-  #90 = Utf8               ()Ljava/lang/Object;\n-  #91 = Utf8               description\n-  #92 = Utf8               arguments\n+  #27 = InterfaceMethodref #28.#29        // java/lang/Iterable.iterator:()Ljava/util/Iterator;\n+  #28 = Class              #30            // java/lang/Iterable\n+  #29 = NameAndType        #31:#32        // iterator:()Ljava/util/Iterator;\n+  #30 = Utf8               java/lang/Iterable\n+  #31 = Utf8               iterator\n+  #32 = Utf8               ()Ljava/util/Iterator;\n+  #33 = InterfaceMethodref #34.#35        // java/util/Iterator.hasNext:()Z\n+  #34 = Class              #36            // java/util/Iterator\n+  #35 = NameAndType        #37:#38        // hasNext:()Z\n+  #36 = Utf8               java/util/Iterator\n+  #37 = Utf8               hasNext\n+  #38 = Utf8               ()Z\n+  #39 = InterfaceMethodref #34.#40        // java/util/Iterator.next:()Ljava/lang/Object;\n+  #40 = NameAndType        #41:#42        // next:()Ljava/lang/Object;\n+  #41 = Utf8               next\n+  #42 = Utf8               ()Ljava/lang/Object;\n+  #43 = Methodref          #22.#44        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n+  #44 = NameAndType        #45:#46        // estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n+  #45 = Utf8               estimateTokenCountInMessage\n+  #46 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)I\n+  #47 = Class              #48            // dev/langchain4j/agent/tool/ToolSpecification\n+  #48 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n+  #49 = Methodref          #47.#50        // dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+  #50 = NameAndType        #51:#20        // description:()Ljava/lang/String;\n+  #51 = Utf8               description\n+  #52 = Class              #53            // dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #53 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #54 = Methodref          #52.#55        // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+  #55 = NameAndType        #56:#20        // arguments:()Ljava/lang/String;\n+  #56 = Utf8               arguments\n+  #57 = Class              #58            // dev/langchain4j/model/Tokenizer\n+  #58 = Utf8               dev/langchain4j/model/Tokenizer\n+  #59 = Utf8               Code\n+  #60 = Utf8               LineNumberTable\n+  #61 = Utf8               LocalVariableTable\n+  #62 = Utf8               this\n+  #63 = Utf8               Ldev/langchain4j/model/ExampleTestTokenizer;\n+  #64 = Utf8               Ljava/lang/String;\n+  #65 = Utf8               message\n+  #66 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #67 = Utf8               estimateTokenCountInMessages\n+  #68 = Utf8               (Ljava/lang/Iterable;)I\n+  #69 = Utf8               messages\n+  #70 = Utf8               Ljava/lang/Iterable;\n+  #71 = Utf8               tokenCount\n+  #72 = Utf8               I\n+  #73 = Utf8               LocalVariableTypeTable\n+  #74 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #75 = Utf8               StackMapTable\n+  #76 = Utf8               Signature\n+  #77 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;)I\n+  #78 = Utf8               estimateTokenCountInToolSpecifications\n+  #79 = Utf8               specification\n+  #80 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #81 = Utf8               toolSpecifications\n+  #82 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n+  #83 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;)I\n+  #84 = Utf8               estimateTokenCountInToolExecutionRequests\n+  #85 = Utf8               request\n+  #86 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #87 = Utf8               toolExecutionRequests\n+  #88 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;\n+  #89 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;)I\n+  #90 = Utf8               SourceFile\n+  #91 = Utf8               ExampleTestTokenizer.java\n {\n   public dev.langchain4j.model.ExampleTestTokenizer();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -117,16 +116,16 @@\n \n   public int estimateTokenCountInText(java.lang.String);\n     descriptor: (Ljava/lang/String;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_1\n-         1: ldc           #2                  // String\n-         3: invokevirtual #3                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+         1: ldc           #7                  // String\n+         3: invokevirtual #9                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n          6: arraylength\n          7: ireturn\n       LineNumberTable:\n         line 11: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/model/ExampleTestTokenizer;\n@@ -135,16 +134,16 @@\n   public int estimateTokenCountInMessage(dev.langchain4j.data.message.ChatMessage);\n     descriptor: (Ldev/langchain4j/data/message/ChatMessage;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokeinterface #4,  1            // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-         7: invokevirtual #5                  // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+         2: invokeinterface #15,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+         7: invokevirtual #21                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         10: ireturn\n       LineNumberTable:\n         line 16: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0  this   Ldev/langchain4j/model/ExampleTestTokenizer;\n             0      11     1 message   Ldev/langchain4j/data/message/ChatMessage;\n@@ -153,27 +152,27 @@\n     descriptor: (Ljava/lang/Iterable;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=2\n          0: iconst_0\n          1: istore_2\n          2: aload_1\n-         3: invokeinterface #6,  1            // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n+         3: invokeinterface #27,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n          8: astore_3\n          9: aload_3\n-        10: invokeinterface #7,  1            // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        10: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n         15: ifeq          41\n         18: aload_3\n-        19: invokeinterface #8,  1            // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        24: checkcast     #9                  // class dev/langchain4j/data/message/ChatMessage\n+        19: invokeinterface #39,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        24: checkcast     #16                 // class dev/langchain4j/data/message/ChatMessage\n         27: astore        4\n         29: iload_2\n         30: aload_0\n         31: aload         4\n-        33: invokevirtual #10                 // Method estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n+        33: invokevirtual #43                 // Method estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n         36: iadd\n         37: istore_2\n         38: goto          9\n         41: iload_2\n         42: ireturn\n       LineNumberTable:\n         line 21: 0\n@@ -192,38 +191,38 @@\n             0      43     1 messages   Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;\n       StackMapTable: number_of_entries = 2\n         frame_type = 253 /* append */\n           offset_delta = 9\n           locals = [ int, class java/util/Iterator ]\n         frame_type = 250 /* chop */\n           offset_delta = 31\n-    Signature: #44                          // (Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;)I\n+    Signature: #77                          // (Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;)I\n \n   public int estimateTokenCountInToolSpecifications(java.lang.Iterable<dev.langchain4j.agent.tool.ToolSpecification>);\n     descriptor: (Ljava/lang/Iterable;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=2\n          0: iconst_0\n          1: istore_2\n          2: aload_1\n-         3: invokeinterface #6,  1            // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n+         3: invokeinterface #27,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n          8: astore_3\n          9: aload_3\n-        10: invokeinterface #7,  1            // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        10: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n         15: ifeq          44\n         18: aload_3\n-        19: invokeinterface #8,  1            // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        24: checkcast     #11                 // class dev/langchain4j/agent/tool/ToolSpecification\n+        19: invokeinterface #39,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        24: checkcast     #47                 // class dev/langchain4j/agent/tool/ToolSpecification\n         27: astore        4\n         29: iload_2\n         30: aload_0\n         31: aload         4\n-        33: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-        36: invokevirtual #5                  // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        33: invokevirtual #49                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+        36: invokevirtual #21                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         39: iadd\n         40: istore_2\n         41: goto          9\n         44: iload_2\n         45: ireturn\n       LineNumberTable:\n         line 30: 0\n@@ -242,38 +241,38 @@\n             0      46     1 toolSpecifications   Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n       StackMapTable: number_of_entries = 2\n         frame_type = 253 /* append */\n           offset_delta = 9\n           locals = [ int, class java/util/Iterator ]\n         frame_type = 250 /* chop */\n           offset_delta = 34\n-    Signature: #50                          // (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;)I\n+    Signature: #83                          // (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;)I\n \n   public int estimateTokenCountInToolExecutionRequests(java.lang.Iterable<dev.langchain4j.agent.tool.ToolExecutionRequest>);\n     descriptor: (Ljava/lang/Iterable;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=2\n          0: iconst_0\n          1: istore_2\n          2: aload_1\n-         3: invokeinterface #6,  1            // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n+         3: invokeinterface #27,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n          8: astore_3\n          9: aload_3\n-        10: invokeinterface #7,  1            // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        10: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n         15: ifeq          44\n         18: aload_3\n-        19: invokeinterface #8,  1            // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        24: checkcast     #13                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+        19: invokeinterface #39,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        24: checkcast     #52                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n         27: astore        4\n         29: iload_2\n         30: aload_0\n         31: aload         4\n-        33: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        36: invokevirtual #5                  // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        33: invokevirtual #54                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        36: invokevirtual #21                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         39: iadd\n         40: istore_2\n         41: goto          9\n         44: iload_2\n         45: ireturn\n       LineNumberTable:\n         line 39: 0\n@@ -292,10 +291,10 @@\n             0      46     1 toolExecutionRequests   Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;\n       StackMapTable: number_of_entries = 2\n         frame_type = 253 /* append */\n           offset_delta = 9\n           locals = [ int, class java/util/Iterator ]\n         frame_type = 250 /* chop */\n           offset_delta = 34\n-    Signature: #56                          // (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;)I\n+    Signature: #89                          // (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;)I\n }\n SourceFile: \"ExampleTestTokenizer.java\"\n"}]}, {"source1": "dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.class", "source2": "dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,50 +1,50 @@\n-  SHA-256 checksum 14f61689e0713f56a50367a1c85a70a4ee8f94c27f9c746729c5d29d254e9e43\n+  SHA-256 checksum f6e9a13194966fd02be8105b7cc23483f24b48cf97e3034dc3d502b3631b88cf\n   Compiled from \"StreamingResponseHandlerTest.java\"\n public class dev.langchain4j.model.StreamingResponseHandlerTest$MinimalStreamingResponseHandler<T extends java.lang.Object> extends java.lang.Object implements dev.langchain4j.model.StreamingResponseHandler<T>\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #2                          // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n-  super_class: #3                         // java/lang/Object\n+  this_class: #7                          // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 3\n Constant pool:\n-   #1 = Methodref          #3.#28         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #30            // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n-   #3 = Class              #31            // java/lang/Object\n-   #4 = Class              #32            // dev/langchain4j/model/StreamingResponseHandler\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n    #5 = Utf8               <init>\n    #6 = Utf8               ()V\n-   #7 = Utf8               Code\n-   #8 = Utf8               LineNumberTable\n-   #9 = Utf8               LocalVariableTable\n-  #10 = Utf8               this\n-  #11 = Utf8               MinimalStreamingResponseHandler\n-  #12 = Utf8               InnerClasses\n-  #13 = Utf8               Ldev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler;\n-  #14 = Utf8               LocalVariableTypeTable\n-  #15 = Utf8               Ldev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler<TT;>;\n-  #16 = Utf8               onNext\n-  #17 = Utf8               (Ljava/lang/String;)V\n-  #18 = Utf8               token\n-  #19 = Utf8               Ljava/lang/String;\n-  #20 = Utf8               onError\n-  #21 = Utf8               (Ljava/lang/Throwable;)V\n-  #22 = Utf8               error\n-  #23 = Utf8               Ljava/lang/Throwable;\n-  #24 = Utf8               Signature\n-  #25 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n-  #26 = Utf8               SourceFile\n-  #27 = Utf8               StreamingResponseHandlerTest.java\n-  #28 = NameAndType        #5:#6          // \"<init>\":()V\n-  #29 = Class              #33            // dev/langchain4j/model/StreamingResponseHandlerTest\n-  #30 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n-  #31 = Utf8               java/lang/Object\n-  #32 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-  #33 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest\n+   #7 = Class              #8             // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n+   #8 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n+   #9 = Class              #10            // dev/langchain4j/model/StreamingResponseHandler\n+  #10 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+  #11 = Utf8               Code\n+  #12 = Utf8               LineNumberTable\n+  #13 = Utf8               LocalVariableTable\n+  #14 = Utf8               this\n+  #15 = Utf8               Ldev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler;\n+  #16 = Utf8               LocalVariableTypeTable\n+  #17 = Utf8               Ldev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler<TT;>;\n+  #18 = Utf8               onNext\n+  #19 = Utf8               (Ljava/lang/String;)V\n+  #20 = Utf8               token\n+  #21 = Utf8               Ljava/lang/String;\n+  #22 = Utf8               onError\n+  #23 = Utf8               (Ljava/lang/Throwable;)V\n+  #24 = Utf8               error\n+  #25 = Utf8               Ljava/lang/Throwable;\n+  #26 = Utf8               Signature\n+  #27 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+  #28 = Utf8               SourceFile\n+  #29 = Utf8               StreamingResponseHandlerTest.java\n+  #30 = Utf8               InnerClasses\n+  #31 = Class              #32            // dev/langchain4j/model/StreamingResponseHandlerTest\n+  #32 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest\n+  #33 = Utf8               MinimalStreamingResponseHandler\n {\n   public dev.langchain4j.model.StreamingResponseHandlerTest$MinimalStreamingResponseHandler();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -87,11 +87,11 @@\n         Start  Length  Slot  Name   Signature\n             0       1     0  this   Ldev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler;\n             0       1     1 error   Ljava/lang/Throwable;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       1     0  this   Ldev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler<TT;>;\n }\n-Signature: #25                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+Signature: #27                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n SourceFile: \"StreamingResponseHandlerTest.java\"\n InnerClasses:\n-  public static #11= #2 of #29;           // MinimalStreamingResponseHandler=class dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler of class dev/langchain4j/model/StreamingResponseHandlerTest\n+  public static #33= #7 of #31;           // MinimalStreamingResponseHandler=class dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler of class dev/langchain4j/model/StreamingResponseHandlerTest\n"}]}, {"source1": "dev/langchain4j/model/StreamingResponseHandlerTest.class", "source2": "dev/langchain4j/model/StreamingResponseHandlerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,59 +1,59 @@\n-  SHA-256 checksum 0a79b06a851a81e9a809126f0e4f80ac96d0dcc53978242befafdbb8a96383b1\n+  SHA-256 checksum d67df72d26c557530847be0d0078e16c714bd8e4c362f51f9d1674371a217f7a\n   Compiled from \"StreamingResponseHandlerTest.java\"\n class dev.langchain4j.model.StreamingResponseHandlerTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #8                          // dev/langchain4j/model/StreamingResponseHandlerTest\n-  super_class: #9                         // java/lang/Object\n+  this_class: #23                         // dev/langchain4j/model/StreamingResponseHandlerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #9.#29         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #30            // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n-   #3 = Methodref          #2.#29         // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.\"<init>\":()V\n-   #4 = Class              #31            // dev/langchain4j/model/output/Response\n-   #5 = String             #32            // test\n-   #6 = Methodref          #4.#33         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-   #7 = InterfaceMethodref #34.#35        // dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n-   #8 = Class              #36            // dev/langchain4j/model/StreamingResponseHandlerTest\n-   #9 = Class              #37            // java/lang/Object\n-  #10 = Class              #38            // org/assertj/core/api/WithAssertions\n-  #11 = Utf8               MinimalStreamingResponseHandler\n-  #12 = Utf8               InnerClasses\n-  #13 = Utf8               <init>\n-  #14 = Utf8               ()V\n-  #15 = Utf8               Code\n-  #16 = Utf8               LineNumberTable\n-  #17 = Utf8               LocalVariableTable\n-  #18 = Utf8               this\n-  #19 = Utf8               Ldev/langchain4j/model/StreamingResponseHandlerTest;\n-  #20 = Utf8               testMinimalStreamingResponseHandler\n-  #21 = Utf8               handler\n-  #22 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler;\n-  #23 = Utf8               LocalVariableTypeTable\n-  #24 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;\n-  #25 = Utf8               RuntimeVisibleAnnotations\n-  #26 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #27 = Utf8               SourceFile\n-  #28 = Utf8               StreamingResponseHandlerTest.java\n-  #29 = NameAndType        #13:#14        // \"<init>\":()V\n-  #30 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n-  #31 = Utf8               dev/langchain4j/model/output/Response\n-  #32 = Utf8               test\n-  #33 = NameAndType        #13:#39        // \"<init>\":(Ljava/lang/Object;)V\n-  #34 = Class              #40            // dev/langchain4j/model/StreamingResponseHandler\n-  #35 = NameAndType        #41:#42        // onComplete:(Ldev/langchain4j/model/output/Response;)V\n-  #36 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest\n-  #37 = Utf8               java/lang/Object\n-  #38 = Utf8               org/assertj/core/api/WithAssertions\n-  #39 = Utf8               (Ljava/lang/Object;)V\n-  #40 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-  #41 = Utf8               onComplete\n-  #42 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n+   #8 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.\"<init>\":()V\n+  #10 = Class              #11            // dev/langchain4j/model/output/Response\n+  #11 = Utf8               dev/langchain4j/model/output/Response\n+  #12 = String             #13            // test\n+  #13 = Utf8               test\n+  #14 = Methodref          #10.#15        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #15 = NameAndType        #5:#16         // \"<init>\":(Ljava/lang/Object;)V\n+  #16 = Utf8               (Ljava/lang/Object;)V\n+  #17 = InterfaceMethodref #18.#19        // dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n+  #18 = Class              #20            // dev/langchain4j/model/StreamingResponseHandler\n+  #19 = NameAndType        #21:#22        // onComplete:(Ldev/langchain4j/model/output/Response;)V\n+  #20 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+  #21 = Utf8               onComplete\n+  #22 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+  #23 = Class              #24            // dev/langchain4j/model/StreamingResponseHandlerTest\n+  #24 = Utf8               dev/langchain4j/model/StreamingResponseHandlerTest\n+  #25 = Class              #26            // org/assertj/core/api/WithAssertions\n+  #26 = Utf8               org/assertj/core/api/WithAssertions\n+  #27 = Utf8               Code\n+  #28 = Utf8               LineNumberTable\n+  #29 = Utf8               LocalVariableTable\n+  #30 = Utf8               this\n+  #31 = Utf8               Ldev/langchain4j/model/StreamingResponseHandlerTest;\n+  #32 = Utf8               testMinimalStreamingResponseHandler\n+  #33 = Utf8               handler\n+  #34 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler;\n+  #35 = Utf8               LocalVariableTypeTable\n+  #36 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;\n+  #37 = Utf8               RuntimeVisibleAnnotations\n+  #38 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #39 = Utf8               SourceFile\n+  #40 = Utf8               StreamingResponseHandlerTest.java\n+  #41 = Utf8               InnerClasses\n+  #42 = Utf8               MinimalStreamingResponseHandler\n {\n   dev.langchain4j.model.StreamingResponseHandlerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -66,36 +66,36 @@\n             0       5     0  this   Ldev/langchain4j/model/StreamingResponseHandlerTest;\n \n   public void testMinimalStreamingResponseHandler();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n+         0: new           #7                  // class dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: new           #4                  // class dev/langchain4j/model/output/Response\n+         9: new           #10                 // class dev/langchain4j/model/output/Response\n         12: dup\n-        13: ldc           #5                  // String test\n-        15: invokespecial #6                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-        18: invokeinterface #7,  2            // InterfaceMethod dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n+        13: ldc           #12                 // String test\n+        15: invokespecial #14                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+        18: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n         23: return\n       LineNumberTable:\n         line 21: 0\n         line 24: 8\n         line 25: 23\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      24     0  this   Ldev/langchain4j/model/StreamingResponseHandlerTest;\n             8      16     1 handler   Ldev/langchain4j/model/StreamingResponseHandler;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      16     1 handler   Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #26()\n+      0: #38()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"StreamingResponseHandlerTest.java\"\n InnerClasses:\n-  public static #11= #2 of #8;            // MinimalStreamingResponseHandler=class dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler of class dev/langchain4j/model/StreamingResponseHandlerTest\n+  public static #42= #7 of #23;           // MinimalStreamingResponseHandler=class dev/langchain4j/model/StreamingResponseHandlerTest$MinimalStreamingResponseHandler of class dev/langchain4j/model/StreamingResponseHandlerTest\n"}]}, {"source1": "dev/langchain4j/model/TokenizerTest$ExampleTools.class", "source2": "dev/langchain4j/model/TokenizerTest$ExampleTools.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,46 +1,46 @@\n-  SHA-256 checksum f93d15b7e6fe1e8a35f0d1a3a3ebe97895735268d543109146193e591a483e9a\n+  SHA-256 checksum ddaf5a78e1c9fcf131668048b9838a2d47e38f7490905bd111fedc60ecd2b654\n   Compiled from \"TokenizerTest.java\"\n public class dev.langchain4j.model.TokenizerTest$ExampleTools\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #2                          // dev/langchain4j/model/TokenizerTest$ExampleTools\n-  super_class: #3                         // java/lang/Object\n+  this_class: #7                          // dev/langchain4j/model/TokenizerTest$ExampleTools\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 3, attributes: 2\n Constant pool:\n-   #1 = Methodref          #3.#25         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #27            // dev/langchain4j/model/TokenizerTest$ExampleTools\n-   #3 = Class              #28            // java/lang/Object\n-   #4 = Utf8               <init>\n-   #5 = Utf8               ()V\n-   #6 = Utf8               Code\n-   #7 = Utf8               LineNumberTable\n-   #8 = Utf8               LocalVariableTable\n-   #9 = Utf8               this\n-  #10 = Utf8               ExampleTools\n-  #11 = Utf8               InnerClasses\n-  #12 = Utf8               Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n-  #13 = Utf8               launchRockets\n-  #14 = Utf8               RuntimeVisibleAnnotations\n-  #15 = Utf8               Ldev/langchain4j/agent/tool/Tool;\n-  #16 = Utf8               name\n-  #17 = Utf8               launch\n-  #18 = Utf8               value\n-  #19 = Utf8               Launch the rockets\n-  #20 = Utf8               abortRockets\n-  #21 = Utf8               abort\n-  #22 = Utf8               Abort the rockets\n-  #23 = Utf8               SourceFile\n-  #24 = Utf8               TokenizerTest.java\n-  #25 = NameAndType        #4:#5          // \"<init>\":()V\n-  #26 = Class              #29            // dev/langchain4j/model/TokenizerTest\n-  #27 = Utf8               dev/langchain4j/model/TokenizerTest$ExampleTools\n-  #28 = Utf8               java/lang/Object\n-  #29 = Utf8               dev/langchain4j/model/TokenizerTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/TokenizerTest$ExampleTools\n+   #8 = Utf8               dev/langchain4j/model/TokenizerTest$ExampleTools\n+   #9 = Utf8               Code\n+  #10 = Utf8               LineNumberTable\n+  #11 = Utf8               LocalVariableTable\n+  #12 = Utf8               this\n+  #13 = Utf8               Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n+  #14 = Utf8               launchRockets\n+  #15 = Utf8               RuntimeVisibleAnnotations\n+  #16 = Utf8               Ldev/langchain4j/agent/tool/Tool;\n+  #17 = Utf8               name\n+  #18 = Utf8               launch\n+  #19 = Utf8               value\n+  #20 = Utf8               Launch the rockets\n+  #21 = Utf8               abortRockets\n+  #22 = Utf8               abort\n+  #23 = Utf8               Abort the rockets\n+  #24 = Utf8               SourceFile\n+  #25 = Utf8               TokenizerTest.java\n+  #26 = Utf8               InnerClasses\n+  #27 = Class              #28            // dev/langchain4j/model/TokenizerTest\n+  #28 = Utf8               dev/langchain4j/model/TokenizerTest\n+  #29 = Utf8               ExampleTools\n {\n   public dev.langchain4j.model.TokenizerTest$ExampleTools();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -60,15 +60,15 @@\n          0: return\n       LineNumberTable:\n         line 16: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       1     0  this   Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n     RuntimeVisibleAnnotations:\n-      0: #15(#16=s#17,#18=[s#19])\n+      0: #16(#17=s#18,#19=[s#20])\n         dev.langchain4j.agent.tool.Tool(\n           name=\"launch\"\n           value=[\"Launch the rockets\"]\n         )\n \n   public void abortRockets();\n     descriptor: ()V\n@@ -78,16 +78,16 @@\n          0: return\n       LineNumberTable:\n         line 19: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       1     0  this   Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n     RuntimeVisibleAnnotations:\n-      0: #15(#16=s#21,#18=[s#22])\n+      0: #16(#17=s#22,#19=[s#23])\n         dev.langchain4j.agent.tool.Tool(\n           name=\"abort\"\n           value=[\"Abort the rockets\"]\n         )\n }\n SourceFile: \"TokenizerTest.java\"\n InnerClasses:\n-  public static #10= #2 of #26;           // ExampleTools=class dev/langchain4j/model/TokenizerTest$ExampleTools of class dev/langchain4j/model/TokenizerTest\n+  public static #29= #7 of #27;           // ExampleTools=class dev/langchain4j/model/TokenizerTest$ExampleTools of class dev/langchain4j/model/TokenizerTest\n"}]}, {"source1": "dev/langchain4j/model/TokenizerTest.class", "source2": "dev/langchain4j/model/TokenizerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,123 +1,123 @@\n-  SHA-256 checksum 84a2898b733bae1dbca05d58a4f9b3d74bf1014862471cd3a62160a6a185f159\n+  SHA-256 checksum f0f37d4495205947ea4d37908db233155c674bc237326c08f6fd345905022321\n   Compiled from \"TokenizerTest.java\"\n class dev.langchain4j.model.TokenizerTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #26                         // dev/langchain4j/model/TokenizerTest\n-  super_class: #9                         // java/lang/Object\n+  this_class: #18                         // dev/langchain4j/model/TokenizerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-    #1 = Methodref          #9.#48        // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #49           // dev/langchain4j/model/ExampleTestTokenizer\n-    #3 = Methodref          #2.#48        // dev/langchain4j/model/ExampleTestTokenizer.\"<init>\":()V\n-    #4 = Class              #50           // dev/langchain4j/model/TokenizerTest$ExampleTools\n-    #5 = Methodref          #4.#48        // dev/langchain4j/model/TokenizerTest$ExampleTools.\"<init>\":()V\n-    #6 = Methodref          #2.#51        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Object;)I\n-    #7 = Methodref          #26.#52       // dev/langchain4j/model/TokenizerTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-    #8 = Methodref          #53.#54       // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-    #9 = Class              #55           // java/lang/Object\n-   #10 = Methodref          #56.#57       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #11 = Methodref          #2.#58        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Iterable;)I\n-   #12 = Methodref          #59.#60       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #13 = String             #61           // id\n-   #14 = Methodref          #62.#63       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #15 = String             #64           // name\n-   #16 = Methodref          #62.#65       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #17 = String             #66           // foo bar baz\n-   #18 = Methodref          #62.#67       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #19 = Methodref          #62.#68       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #20 = Methodref          #2.#69        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n-   #21 = String             #70           // launchRockets\n-   #22 = Class              #71           // java/lang/Class\n-   #23 = Methodref          #22.#72       // java/lang/Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n-   #24 = Methodref          #73.#74       // dev/langchain4j/agent/tool/ToolSpecifications.toolSpecificationFrom:(Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n-   #25 = Methodref          #2.#75        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolSpecification:(Ldev/langchain4j/agent/tool/ToolSpecification;)I\n-   #26 = Class              #76           // dev/langchain4j/model/TokenizerTest\n-   #27 = Class              #77           // org/assertj/core/api/WithAssertions\n-   #28 = Utf8               ExampleTools\n-   #29 = Utf8               InnerClasses\n-   #30 = Utf8               <init>\n-   #31 = Utf8               ()V\n-   #32 = Utf8               Code\n-   #33 = Utf8               LineNumberTable\n-   #34 = Utf8               LocalVariableTable\n-   #35 = Utf8               this\n-   #36 = Utf8               Ldev/langchain4j/model/TokenizerTest;\n-   #37 = Utf8               test_estimateTokenCountInTools\n-   #38 = Utf8               tokenizer\n-   #39 = Utf8               Ldev/langchain4j/model/ExampleTestTokenizer;\n-   #40 = Utf8               exampleTools\n-   #41 = Utf8               Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n-   #42 = Utf8               Exceptions\n-   #43 = Class              #78           // java/lang/Exception\n-   #44 = Utf8               RuntimeVisibleAnnotations\n-   #45 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #46 = Utf8               SourceFile\n-   #47 = Utf8               TokenizerTest.java\n-   #48 = NameAndType        #30:#31       // \"<init>\":()V\n-   #49 = Utf8               dev/langchain4j/model/ExampleTestTokenizer\n-   #50 = Utf8               dev/langchain4j/model/TokenizerTest$ExampleTools\n-   #51 = NameAndType        #79:#80       // estimateTokenCountInTools:(Ljava/lang/Object;)I\n-   #52 = NameAndType        #81:#82       // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #53 = Class              #83           // org/assertj/core/api/AbstractIntegerAssert\n-   #54 = NameAndType        #84:#82       // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #55 = Utf8               java/lang/Object\n-   #56 = Class              #85           // java/util/Arrays\n-   #57 = NameAndType        #86:#87       // asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #58 = NameAndType        #79:#88       // estimateTokenCountInTools:(Ljava/lang/Iterable;)I\n-   #59 = Class              #89           // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #60 = NameAndType        #90:#92       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #61 = Utf8               id\n-   #62 = Class              #93           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-   #63 = NameAndType        #61:#94       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #64 = Utf8               name\n-   #65 = NameAndType        #64:#94       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #66 = Utf8               foo bar baz\n-   #67 = NameAndType        #95:#94       // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #68 = NameAndType        #96:#97       // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #69 = NameAndType        #98:#99       // estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n-   #70 = Utf8               launchRockets\n-   #71 = Utf8               java/lang/Class\n-   #72 = NameAndType        #100:#101     // getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n-   #73 = Class              #102          // dev/langchain4j/agent/tool/ToolSpecifications\n-   #74 = NameAndType        #103:#104     // toolSpecificationFrom:(Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n-   #75 = NameAndType        #105:#106     // estimateTokenCountInForcefulToolSpecification:(Ldev/langchain4j/agent/tool/ToolSpecification;)I\n-   #76 = Utf8               dev/langchain4j/model/TokenizerTest\n-   #77 = Utf8               org/assertj/core/api/WithAssertions\n-   #78 = Utf8               java/lang/Exception\n-   #79 = Utf8               estimateTokenCountInTools\n-   #80 = Utf8               (Ljava/lang/Object;)I\n-   #81 = Utf8               assertThat\n-   #82 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #83 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n-   #84 = Utf8               isEqualTo\n-   #85 = Utf8               java/util/Arrays\n-   #86 = Utf8               asList\n-   #87 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-   #88 = Utf8               (Ljava/lang/Iterable;)I\n-   #89 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #90 = Utf8               builder\n-   #91 = Utf8               Builder\n-   #92 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #93 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-   #94 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #95 = Utf8               arguments\n-   #96 = Utf8               build\n-   #97 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #98 = Utf8               estimateTokenCountInForcefulToolExecutionRequest\n-   #99 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n-  #100 = Utf8               getMethod\n-  #101 = Utf8               (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n-  #102 = Utf8               dev/langchain4j/agent/tool/ToolSpecifications\n-  #103 = Utf8               toolSpecificationFrom\n-  #104 = Utf8               (Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #105 = Utf8               estimateTokenCountInForcefulToolSpecification\n-  #106 = Utf8               (Ldev/langchain4j/agent/tool/ToolSpecification;)I\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/ExampleTestTokenizer\n+    #8 = Utf8               dev/langchain4j/model/ExampleTestTokenizer\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/ExampleTestTokenizer.\"<init>\":()V\n+   #10 = Class              #11           // dev/langchain4j/model/TokenizerTest$ExampleTools\n+   #11 = Utf8               dev/langchain4j/model/TokenizerTest$ExampleTools\n+   #12 = Methodref          #10.#3        // dev/langchain4j/model/TokenizerTest$ExampleTools.\"<init>\":()V\n+   #13 = Methodref          #7.#14        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Object;)I\n+   #14 = NameAndType        #15:#16       // estimateTokenCountInTools:(Ljava/lang/Object;)I\n+   #15 = Utf8               estimateTokenCountInTools\n+   #16 = Utf8               (Ljava/lang/Object;)I\n+   #17 = Methodref          #18.#19       // dev/langchain4j/model/TokenizerTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #18 = Class              #20           // dev/langchain4j/model/TokenizerTest\n+   #19 = NameAndType        #21:#22       // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #20 = Utf8               dev/langchain4j/model/TokenizerTest\n+   #21 = Utf8               assertThat\n+   #22 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #23 = Methodref          #24.#25       // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #24 = Class              #26           // org/assertj/core/api/AbstractIntegerAssert\n+   #25 = NameAndType        #27:#22       // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+   #26 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n+   #27 = Utf8               isEqualTo\n+   #28 = Methodref          #29.#30       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #29 = Class              #31           // java/util/Arrays\n+   #30 = NameAndType        #32:#33       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #31 = Utf8               java/util/Arrays\n+   #32 = Utf8               asList\n+   #33 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #34 = Methodref          #7.#35        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Iterable;)I\n+   #35 = NameAndType        #15:#36       // estimateTokenCountInTools:(Ljava/lang/Iterable;)I\n+   #36 = Utf8               (Ljava/lang/Iterable;)I\n+   #37 = Methodref          #38.#39       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #38 = Class              #40           // dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #39 = NameAndType        #41:#42       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #40 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #41 = Utf8               builder\n+   #42 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #43 = String             #44           // id\n+   #44 = Utf8               id\n+   #45 = Methodref          #46.#47       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #46 = Class              #48           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #47 = NameAndType        #44:#49       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #48 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #49 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #50 = String             #51           // name\n+   #51 = Utf8               name\n+   #52 = Methodref          #46.#53       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #53 = NameAndType        #51:#49       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #54 = String             #55           // foo bar baz\n+   #55 = Utf8               foo bar baz\n+   #56 = Methodref          #46.#57       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #57 = NameAndType        #58:#49       // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #58 = Utf8               arguments\n+   #59 = Methodref          #46.#60       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #60 = NameAndType        #61:#62       // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #61 = Utf8               build\n+   #62 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #63 = Methodref          #7.#64        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+   #64 = NameAndType        #65:#66       // estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+   #65 = Utf8               estimateTokenCountInForcefulToolExecutionRequest\n+   #66 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+   #67 = String             #68           // launchRockets\n+   #68 = Utf8               launchRockets\n+   #69 = Class              #70           // java/lang/Class\n+   #70 = Utf8               java/lang/Class\n+   #71 = Methodref          #69.#72       // java/lang/Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n+   #72 = NameAndType        #73:#74       // getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n+   #73 = Utf8               getMethod\n+   #74 = Utf8               (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n+   #75 = Methodref          #76.#77       // dev/langchain4j/agent/tool/ToolSpecifications.toolSpecificationFrom:(Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n+   #76 = Class              #78           // dev/langchain4j/agent/tool/ToolSpecifications\n+   #77 = NameAndType        #79:#80       // toolSpecificationFrom:(Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n+   #78 = Utf8               dev/langchain4j/agent/tool/ToolSpecifications\n+   #79 = Utf8               toolSpecificationFrom\n+   #80 = Utf8               (Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n+   #81 = Methodref          #7.#82        // dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolSpecification:(Ldev/langchain4j/agent/tool/ToolSpecification;)I\n+   #82 = NameAndType        #83:#84       // estimateTokenCountInForcefulToolSpecification:(Ldev/langchain4j/agent/tool/ToolSpecification;)I\n+   #83 = Utf8               estimateTokenCountInForcefulToolSpecification\n+   #84 = Utf8               (Ldev/langchain4j/agent/tool/ToolSpecification;)I\n+   #85 = Class              #86           // org/assertj/core/api/WithAssertions\n+   #86 = Utf8               org/assertj/core/api/WithAssertions\n+   #87 = Utf8               Code\n+   #88 = Utf8               LineNumberTable\n+   #89 = Utf8               LocalVariableTable\n+   #90 = Utf8               this\n+   #91 = Utf8               Ldev/langchain4j/model/TokenizerTest;\n+   #92 = Utf8               test_estimateTokenCountInTools\n+   #93 = Utf8               tokenizer\n+   #94 = Utf8               Ldev/langchain4j/model/ExampleTestTokenizer;\n+   #95 = Utf8               exampleTools\n+   #96 = Utf8               Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n+   #97 = Utf8               Exceptions\n+   #98 = Class              #99           // java/lang/Exception\n+   #99 = Utf8               java/lang/Exception\n+  #100 = Utf8               RuntimeVisibleAnnotations\n+  #101 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #102 = Utf8               SourceFile\n+  #103 = Utf8               TokenizerTest.java\n+  #104 = Utf8               InnerClasses\n+  #105 = Utf8               ExampleTools\n+  #106 = Utf8               Builder\n {\n   dev.langchain4j.model.TokenizerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -130,75 +130,75 @@\n             0       5     0  this   Ldev/langchain4j/model/TokenizerTest;\n \n   public void test_estimateTokenCountInTools() throws java.lang.Exception;\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/ExampleTestTokenizer\n+         0: new           #7                  // class dev/langchain4j/model/ExampleTestTokenizer\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/ExampleTestTokenizer.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/ExampleTestTokenizer.\"<init>\":()V\n          7: astore_1\n-         8: new           #4                  // class dev/langchain4j/model/TokenizerTest$ExampleTools\n+         8: new           #10                 // class dev/langchain4j/model/TokenizerTest$ExampleTools\n         11: dup\n-        12: invokespecial #5                  // Method dev/langchain4j/model/TokenizerTest$ExampleTools.\"<init>\":()V\n+        12: invokespecial #12                 // Method dev/langchain4j/model/TokenizerTest$ExampleTools.\"<init>\":()V\n         15: astore_2\n         16: aload_0\n         17: aload_1\n         18: aload_2\n-        19: invokevirtual #6                  // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Object;)I\n-        22: invokevirtual #7                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        19: invokevirtual #13                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Object;)I\n+        22: invokevirtual #17                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         25: bipush        6\n-        27: invokevirtual #8                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        27: invokevirtual #23                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         30: pop\n         31: aload_0\n         32: aload_1\n         33: iconst_2\n-        34: anewarray     #9                  // class java/lang/Object\n+        34: anewarray     #2                  // class java/lang/Object\n         37: dup\n         38: iconst_0\n         39: aload_2\n         40: aastore\n         41: dup\n         42: iconst_1\n         43: aload_2\n         44: aastore\n-        45: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        48: invokevirtual #11                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Iterable;)I\n-        51: invokevirtual #7                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        45: invokestatic  #28                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        48: invokevirtual #34                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInTools:(Ljava/lang/Iterable;)I\n+        51: invokevirtual #17                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         54: bipush        12\n-        56: invokevirtual #8                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        56: invokevirtual #23                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         59: pop\n         60: aload_0\n         61: aload_1\n-        62: invokestatic  #12                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        65: ldc           #13                 // String id\n-        67: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        70: ldc           #15                 // String name\n-        72: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        75: ldc           #17                 // String foo bar baz\n-        77: invokevirtual #18                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        80: invokevirtual #19                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-        83: invokevirtual #20                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n-        86: invokevirtual #7                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        62: invokestatic  #37                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        65: ldc           #43                 // String id\n+        67: invokevirtual #45                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        70: ldc           #50                 // String name\n+        72: invokevirtual #52                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        75: ldc           #54                 // String foo bar baz\n+        77: invokevirtual #56                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        80: invokevirtual #59                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        83: invokevirtual #63                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+        86: invokevirtual #17                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         89: iconst_3\n-        90: invokevirtual #8                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        90: invokevirtual #23                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         93: pop\n         94: aload_0\n         95: aload_1\n-        96: ldc           #4                  // class dev/langchain4j/model/TokenizerTest$ExampleTools\n-        98: ldc           #21                 // String launchRockets\n+        96: ldc           #10                 // class dev/langchain4j/model/TokenizerTest$ExampleTools\n+        98: ldc           #67                 // String launchRockets\n        100: iconst_0\n-       101: anewarray     #22                 // class java/lang/Class\n-       104: invokevirtual #23                 // Method java/lang/Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n-       107: invokestatic  #24                 // Method dev/langchain4j/agent/tool/ToolSpecifications.toolSpecificationFrom:(Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n-       110: invokevirtual #25                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolSpecification:(Ldev/langchain4j/agent/tool/ToolSpecification;)I\n-       113: invokevirtual #7                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+       101: anewarray     #69                 // class java/lang/Class\n+       104: invokevirtual #71                 // Method java/lang/Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;\n+       107: invokestatic  #75                 // Method dev/langchain4j/agent/tool/ToolSpecifications.toolSpecificationFrom:(Ljava/lang/reflect/Method;)Ldev/langchain4j/agent/tool/ToolSpecification;\n+       110: invokevirtual #81                 // Method dev/langchain4j/model/ExampleTestTokenizer.estimateTokenCountInForcefulToolSpecification:(Ldev/langchain4j/agent/tool/ToolSpecification;)I\n+       113: invokevirtual #17                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n        116: iconst_3\n-       117: invokevirtual #8                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+       117: invokevirtual #23                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n        120: pop\n        121: return\n       LineNumberTable:\n         line 24: 0\n         line 26: 8\n         line 29: 16\n         line 30: 27\n@@ -221,14 +221,14 @@\n         Start  Length  Slot  Name   Signature\n             0     122     0  this   Ldev/langchain4j/model/TokenizerTest;\n             8     114     1 tokenizer   Ldev/langchain4j/model/ExampleTestTokenizer;\n            16     106     2 exampleTools   Ldev/langchain4j/model/TokenizerTest$ExampleTools;\n     Exceptions:\n       throws java.lang.Exception\n     RuntimeVisibleAnnotations:\n-      0: #45()\n+      0: #101()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TokenizerTest.java\"\n InnerClasses:\n-  public static #28= #4 of #26;           // ExampleTools=class dev/langchain4j/model/TokenizerTest$ExampleTools of class dev/langchain4j/model/TokenizerTest\n-  public static final #91= #62 of #59;    // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static #105= #10 of #18;         // ExampleTools=class dev/langchain4j/model/TokenizerTest$ExampleTools of class dev/langchain4j/model/TokenizerTest\n+  public static final #106= #46 of #38;   // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n"}]}, {"source1": "dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.class", "source2": "dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,86 +1,86 @@\n-  SHA-256 checksum 82f8dcc3ea3ab4230e6f818ccb1edae3358e52cbe141116041227177ce30c425\n+  SHA-256 checksum edd21f87ed4713e2906a1b158fc36d6813ae826acc2eade2b26a0f8cc8f67d32\n   Compiled from \"ChatLanguageModelTest.java\"\n public class dev.langchain4j.model.chat.ChatLanguageModelTest$UpperCaseEchoModel implements dev.langchain4j.model.chat.ChatLanguageModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #12                         // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n-  super_class: #13                        // java/lang/Object\n+  this_class: #45                         // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #13.#36        // java/lang/Object.\"<init>\":()V\n-   #2 = InterfaceMethodref #37.#38        // java/util/List.size:()I\n-   #3 = InterfaceMethodref #37.#39        // java/util/List.get:(I)Ljava/lang/Object;\n-   #4 = Class              #40            // dev/langchain4j/data/message/ChatMessage\n-   #5 = Class              #41            // dev/langchain4j/model/output/Response\n-   #6 = Class              #42            // dev/langchain4j/data/message/AiMessage\n-   #7 = InterfaceMethodref #4.#43         // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-   #8 = Fieldref           #44.#45        // java/util/Locale.ROOT:Ljava/util/Locale;\n-   #9 = Methodref          #46.#47        // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-  #10 = Methodref          #6.#48         // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-  #11 = Methodref          #5.#49         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-  #12 = Class              #51            // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n-  #13 = Class              #52            // java/lang/Object\n-  #14 = Class              #53            // dev/langchain4j/model/chat/ChatLanguageModel\n-  #15 = Utf8               <init>\n-  #16 = Utf8               ()V\n-  #17 = Utf8               Code\n-  #18 = Utf8               LineNumberTable\n-  #19 = Utf8               LocalVariableTable\n-  #20 = Utf8               this\n-  #21 = Utf8               UpperCaseEchoModel\n-  #22 = Utf8               InnerClasses\n-  #23 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel;\n-  #24 = Utf8               generate\n-  #25 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #26 = Utf8               messages\n-  #27 = Utf8               Ljava/util/List;\n-  #28 = Utf8               lastMessage\n-  #29 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-  #30 = Utf8               LocalVariableTypeTable\n-  #31 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #32 = Utf8               Signature\n-  #33 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-  #34 = Utf8               SourceFile\n-  #35 = Utf8               ChatLanguageModelTest.java\n-  #36 = NameAndType        #15:#16        // \"<init>\":()V\n-  #37 = Class              #54            // java/util/List\n-  #38 = NameAndType        #55:#56        // size:()I\n-  #39 = NameAndType        #57:#58        // get:(I)Ljava/lang/Object;\n-  #40 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #41 = Utf8               dev/langchain4j/model/output/Response\n-  #42 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #43 = NameAndType        #59:#60        // text:()Ljava/lang/String;\n-  #44 = Class              #61            // java/util/Locale\n-  #45 = NameAndType        #62:#63        // ROOT:Ljava/util/Locale;\n-  #46 = Class              #64            // java/lang/String\n-  #47 = NameAndType        #65:#66        // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-  #48 = NameAndType        #15:#67        // \"<init>\":(Ljava/lang/String;)V\n-  #49 = NameAndType        #15:#68        // \"<init>\":(Ljava/lang/Object;)V\n-  #50 = Class              #69            // dev/langchain4j/model/chat/ChatLanguageModelTest\n-  #51 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n-  #52 = Utf8               java/lang/Object\n-  #53 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n-  #54 = Utf8               java/util/List\n-  #55 = Utf8               size\n-  #56 = Utf8               ()I\n-  #57 = Utf8               get\n-  #58 = Utf8               (I)Ljava/lang/Object;\n-  #59 = Utf8               text\n-  #60 = Utf8               ()Ljava/lang/String;\n-  #61 = Utf8               java/util/Locale\n-  #62 = Utf8               ROOT\n-  #63 = Utf8               Ljava/util/Locale;\n-  #64 = Utf8               java/lang/String\n-  #65 = Utf8               toUpperCase\n-  #66 = Utf8               (Ljava/util/Locale;)Ljava/lang/String;\n-  #67 = Utf8               (Ljava/lang/String;)V\n-  #68 = Utf8               (Ljava/lang/Object;)V\n-  #69 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = InterfaceMethodref #8.#9          // java/util/List.size:()I\n+   #8 = Class              #10            // java/util/List\n+   #9 = NameAndType        #11:#12        // size:()I\n+  #10 = Utf8               java/util/List\n+  #11 = Utf8               size\n+  #12 = Utf8               ()I\n+  #13 = InterfaceMethodref #8.#14         // java/util/List.get:(I)Ljava/lang/Object;\n+  #14 = NameAndType        #15:#16        // get:(I)Ljava/lang/Object;\n+  #15 = Utf8               get\n+  #16 = Utf8               (I)Ljava/lang/Object;\n+  #17 = Class              #18            // dev/langchain4j/data/message/ChatMessage\n+  #18 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #19 = Class              #20            // dev/langchain4j/model/output/Response\n+  #20 = Utf8               dev/langchain4j/model/output/Response\n+  #21 = Class              #22            // dev/langchain4j/data/message/AiMessage\n+  #22 = Utf8               dev/langchain4j/data/message/AiMessage\n+  #23 = InterfaceMethodref #17.#24        // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+  #24 = NameAndType        #25:#26        // text:()Ljava/lang/String;\n+  #25 = Utf8               text\n+  #26 = Utf8               ()Ljava/lang/String;\n+  #27 = Fieldref           #28.#29        // java/util/Locale.ROOT:Ljava/util/Locale;\n+  #28 = Class              #30            // java/util/Locale\n+  #29 = NameAndType        #31:#32        // ROOT:Ljava/util/Locale;\n+  #30 = Utf8               java/util/Locale\n+  #31 = Utf8               ROOT\n+  #32 = Utf8               Ljava/util/Locale;\n+  #33 = Methodref          #34.#35        // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+  #34 = Class              #36            // java/lang/String\n+  #35 = NameAndType        #37:#38        // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+  #36 = Utf8               java/lang/String\n+  #37 = Utf8               toUpperCase\n+  #38 = Utf8               (Ljava/util/Locale;)Ljava/lang/String;\n+  #39 = Methodref          #21.#40        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+  #40 = NameAndType        #5:#41         // \"<init>\":(Ljava/lang/String;)V\n+  #41 = Utf8               (Ljava/lang/String;)V\n+  #42 = Methodref          #19.#43        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #43 = NameAndType        #5:#44         // \"<init>\":(Ljava/lang/Object;)V\n+  #44 = Utf8               (Ljava/lang/Object;)V\n+  #45 = Class              #46            // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+  #46 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+  #47 = Class              #48            // dev/langchain4j/model/chat/ChatLanguageModel\n+  #48 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n+  #49 = Utf8               Code\n+  #50 = Utf8               LineNumberTable\n+  #51 = Utf8               LocalVariableTable\n+  #52 = Utf8               this\n+  #53 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel;\n+  #54 = Utf8               generate\n+  #55 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #56 = Utf8               messages\n+  #57 = Utf8               Ljava/util/List;\n+  #58 = Utf8               lastMessage\n+  #59 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #60 = Utf8               LocalVariableTypeTable\n+  #61 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #62 = Utf8               Signature\n+  #63 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #64 = Utf8               SourceFile\n+  #65 = Utf8               ChatLanguageModelTest.java\n+  #66 = Utf8               InnerClasses\n+  #67 = Class              #68            // dev/langchain4j/model/chat/ChatLanguageModelTest\n+  #68 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest\n+  #69 = Utf8               UpperCaseEchoModel\n {\n   public dev.langchain4j.model.chat.ChatLanguageModelTest$UpperCaseEchoModel();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -95,40 +95,40 @@\n   public dev.langchain4j.model.output.Response<dev.langchain4j.data.message.AiMessage> generate(java.util.List<dev.langchain4j.data.message.ChatMessage>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=3, args_size=2\n          0: aload_1\n          1: aload_1\n-         2: invokeinterface #2,  1            // InterfaceMethod java/util/List.size:()I\n+         2: invokeinterface #7,  1            // InterfaceMethod java/util/List.size:()I\n          7: iconst_1\n          8: isub\n-         9: invokeinterface #3,  2            // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        14: checkcast     #4                  // class dev/langchain4j/data/message/ChatMessage\n+         9: invokeinterface #13,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        14: checkcast     #17                 // class dev/langchain4j/data/message/ChatMessage\n         17: astore_2\n-        18: new           #5                  // class dev/langchain4j/model/output/Response\n+        18: new           #19                 // class dev/langchain4j/model/output/Response\n         21: dup\n-        22: new           #6                  // class dev/langchain4j/data/message/AiMessage\n+        22: new           #21                 // class dev/langchain4j/data/message/AiMessage\n         25: dup\n         26: aload_2\n-        27: invokeinterface #7,  1            // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-        32: getstatic     #8                  // Field java/util/Locale.ROOT:Ljava/util/Locale;\n-        35: invokevirtual #9                  // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-        38: invokespecial #10                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-        41: invokespecial #11                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+        27: invokeinterface #23,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+        32: getstatic     #27                 // Field java/util/Locale.ROOT:Ljava/util/Locale;\n+        35: invokevirtual #33                 // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+        38: invokespecial #39                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        41: invokespecial #42                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n         44: areturn\n       LineNumberTable:\n         line 19: 0\n         line 20: 18\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      45     0  this   Ldev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel;\n             0      45     1 messages   Ljava/util/List;\n            18      27     2 lastMessage   Ldev/langchain4j/data/message/ChatMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      45     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-    Signature: #33                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+    Signature: #63                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n }\n SourceFile: \"ChatLanguageModelTest.java\"\n InnerClasses:\n-  public static #21= #12 of #50;          // UpperCaseEchoModel=class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel of class dev/langchain4j/model/chat/ChatLanguageModelTest\n+  public static #69= #45 of #67;          // UpperCaseEchoModel=class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel of class dev/langchain4j/model/chat/ChatLanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/chat/ChatLanguageModelTest.class", "source2": "dev/langchain4j/model/chat/ChatLanguageModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,215 +1,215 @@\n-  SHA-256 checksum 6d6b481b6f73789f41f278da7e27afb15a09e1bdaafff68ec84eff417c8d68e8\n+  SHA-256 checksum bbc8d46b454a5d77d4beffabcfd6d721829a242c6217ed18ea95c5da698087ea\n   Compiled from \"ChatLanguageModelTest.java\"\n class dev.langchain4j.model.chat.ChatLanguageModelTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #43                         // dev/langchain4j/model/chat/ChatLanguageModelTest\n-  super_class: #44                        // java/lang/Object\n+  this_class: #16                         // dev/langchain4j/model/chat/ChatLanguageModelTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 5, attributes: 3\n Constant pool:\n-    #1 = Methodref          #44.#75       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #76           // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n-    #3 = Methodref          #2.#75        // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.\"<init>\":()V\n-    #4 = Class              #77           // java/util/ArrayList\n-    #5 = Methodref          #4.#75        // java/util/ArrayList.\"<init>\":()V\n-    #6 = Class              #78           // java/lang/IllegalArgumentException\n-    #7 = Methodref          #43.#79       // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-    #8 = InvokeDynamic      #0:#84        // #0:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-    #9 = Methodref          #85.#86       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #10 = String             #87           // Tools are currently not supported by this model\n-   #11 = Methodref          #88.#89       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #12 = InvokeDynamic      #1:#84        // #1:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #13 = String             #91           // how are you?\n-   #14 = InterfaceMethodref #92.#93       // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/lang/String;)Ljava/lang/String;\n-   #15 = Methodref          #43.#94       // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #16 = String             #95           // HOW ARE YOU?\n-   #17 = Methodref          #96.#97       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #18 = Class              #98           // dev/langchain4j/data/message/UserMessage\n-   #19 = String             #99           // Hello\n-   #20 = Methodref          #18.#100      // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-   #21 = InterfaceMethodref #101.#102     // java/util/List.add:(Ljava/lang/Object;)Z\n-   #22 = Class              #103          // dev/langchain4j/data/message/AiMessage\n-   #23 = String             #104          // Hi\n-   #24 = Methodref          #22.#100      // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-   #25 = String             #105          // How are you?\n-   #26 = InterfaceMethodref #92.#106      // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #27 = Methodref          #107.#108     // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-   #28 = Methodref          #22.#109      // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-   #29 = Methodref          #107.#110     // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-   #30 = Methodref          #43.#111      // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #31 = Methodref          #112.#113     // org/assertj/core/api/ObjectAssert.isNull:()V\n-   #32 = Methodref          #107.#114     // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-   #33 = Methodref          #43.#115      // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #34 = Methodref          #116.#113     // org/assertj/core/api/AbstractComparableAssert.isNull:()V\n-   #35 = Class              #117          // dev/langchain4j/data/message/ChatMessage\n-   #36 = InterfaceMethodref #92.#118      // dev/langchain4j/model/chat/ChatLanguageModel.generate:([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n-   #37 = Methodref          #119.#120     // dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #38 = String             #121          // foo\n-   #39 = Methodref          #122.#123     // dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #40 = Methodref          #122.#124     // dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-   #41 = InterfaceMethodref #92.#125      // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n-   #42 = InterfaceMethodref #92.#126      // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #43 = Class              #127          // dev/langchain4j/model/chat/ChatLanguageModelTest\n-   #44 = Class              #128          // java/lang/Object\n-   #45 = Class              #129          // org/assertj/core/api/WithAssertions\n-   #46 = Utf8               UpperCaseEchoModel\n-   #47 = Utf8               InnerClasses\n-   #48 = Utf8               <init>\n-   #49 = Utf8               ()V\n-   #50 = Utf8               Code\n-   #51 = Utf8               LineNumberTable\n-   #52 = Utf8               LocalVariableTable\n-   #53 = Utf8               this\n-   #54 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModelTest;\n-   #55 = Utf8               test_not_supported\n-   #56 = Utf8               model\n-   #57 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModel;\n-   #58 = Utf8               messages\n-   #59 = Utf8               Ljava/util/List;\n-   #60 = Utf8               LocalVariableTypeTable\n-   #61 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-   #62 = Utf8               RuntimeVisibleAnnotations\n-   #63 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #64 = Utf8               test_generate\n-   #65 = Utf8               response\n-   #66 = Utf8               Ldev/langchain4j/model/output/Response;\n-   #67 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-   #68 = Utf8               lambda$test_not_supported$1\n-   #69 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-   #70 = Utf8               Exceptions\n-   #71 = Class              #130          // java/lang/Throwable\n-   #72 = Utf8               lambda$test_not_supported$0\n-   #73 = Utf8               SourceFile\n-   #74 = Utf8               ChatLanguageModelTest.java\n-   #75 = NameAndType        #48:#49       // \"<init>\":()V\n-   #76 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n-   #77 = Utf8               java/util/ArrayList\n-   #78 = Utf8               java/lang/IllegalArgumentException\n-   #79 = NameAndType        #131:#132     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #80 = Utf8               BootstrapMethods\n-   #81 = MethodHandle       6:#133        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #82 = MethodType         #49           //  ()V\n-   #83 = MethodHandle       6:#134        // REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-   #84 = NameAndType        #135:#138     // call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #85 = Class              #139          // org/assertj/core/api/ThrowableTypeAssert\n-   #86 = NameAndType        #140:#141     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #87 = Utf8               Tools are currently not supported by this model\n-   #88 = Class              #142          // org/assertj/core/api/ThrowableAssertAlternative\n-   #89 = NameAndType        #143:#144     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #90 = MethodHandle       6:#145        // REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-   #91 = Utf8               how are you?\n-   #92 = Class              #146          // dev/langchain4j/model/chat/ChatLanguageModel\n-   #93 = NameAndType        #147:#148     // generate:(Ljava/lang/String;)Ljava/lang/String;\n-   #94 = NameAndType        #149:#150     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #95 = Utf8               HOW ARE YOU?\n-   #96 = Class              #151          // org/assertj/core/api/AbstractStringAssert\n-   #97 = NameAndType        #152:#150     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #98 = Utf8               dev/langchain4j/data/message/UserMessage\n-   #99 = Utf8               Hello\n-  #100 = NameAndType        #48:#153      // \"<init>\":(Ljava/lang/String;)V\n-  #101 = Class              #154          // java/util/List\n-  #102 = NameAndType        #155:#156     // add:(Ljava/lang/Object;)Z\n-  #103 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #104 = Utf8               Hi\n-  #105 = Utf8               How are you?\n-  #106 = NameAndType        #147:#157     // generate:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #107 = Class              #158          // dev/langchain4j/model/output/Response\n-  #108 = NameAndType        #159:#160     // content:()Ljava/lang/Object;\n-  #109 = NameAndType        #161:#162     // text:()Ljava/lang/String;\n-  #110 = NameAndType        #163:#164     // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-  #111 = NameAndType        #149:#165     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #112 = Class              #166          // org/assertj/core/api/ObjectAssert\n-  #113 = NameAndType        #167:#49      // isNull:()V\n-  #114 = NameAndType        #168:#169     // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-  #115 = NameAndType        #149:#170     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #116 = Class              #171          // org/assertj/core/api/AbstractComparableAssert\n-  #117 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #118 = NameAndType        #147:#172     // generate:([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n-  #119 = Class              #173          // dev/langchain4j/agent/tool/ToolSpecification\n-  #120 = NameAndType        #174:#176     // builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #121 = Utf8               foo\n-  #122 = Class              #177          // dev/langchain4j/agent/tool/ToolSpecification$Builder\n-  #123 = NameAndType        #178:#179     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #124 = NameAndType        #180:#181     // build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #125 = NameAndType        #147:#182     // generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n-  #126 = NameAndType        #147:#183     // generate:(Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #127 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest\n-  #128 = Utf8               java/lang/Object\n-  #129 = Utf8               org/assertj/core/api/WithAssertions\n-  #130 = Utf8               java/lang/Throwable\n-  #131 = Utf8               assertThatExceptionOfType\n-  #132 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #133 = Methodref          #184.#185     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #134 = Methodref          #43.#186      // dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-  #135 = Utf8               call\n-  #136 = Class              #188          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #137 = Utf8               ThrowingCallable\n-  #138 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #139 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #140 = Utf8               isThrownBy\n-  #141 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #142 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #143 = Utf8               withMessageContaining\n-  #144 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #145 = Methodref          #43.#189      // dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-  #146 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n-  #147 = Utf8               generate\n-  #148 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n-  #149 = Utf8               assertThat\n-  #150 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #151 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #152 = Utf8               isEqualTo\n-  #153 = Utf8               (Ljava/lang/String;)V\n-  #154 = Utf8               java/util/List\n-  #155 = Utf8               add\n-  #156 = Utf8               (Ljava/lang/Object;)Z\n-  #157 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #158 = Utf8               dev/langchain4j/model/output/Response\n-  #159 = Utf8               content\n-  #160 = Utf8               ()Ljava/lang/Object;\n-  #161 = Utf8               text\n-  #162 = Utf8               ()Ljava/lang/String;\n-  #163 = Utf8               tokenUsage\n-  #164 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n-  #165 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #166 = Utf8               org/assertj/core/api/ObjectAssert\n-  #167 = Utf8               isNull\n-  #168 = Utf8               finishReason\n-  #169 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n-  #170 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #171 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #172 = Utf8               ([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n-  #173 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n-  #174 = Utf8               builder\n-  #175 = Utf8               Builder\n-  #176 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #177 = Utf8               dev/langchain4j/agent/tool/ToolSpecification$Builder\n-  #178 = Utf8               name\n-  #179 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #180 = Utf8               build\n-  #181 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #182 = Utf8               (Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n-  #183 = Utf8               (Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #184 = Class              #190          // java/lang/invoke/LambdaMetafactory\n-  #185 = NameAndType        #191:#194     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #186 = NameAndType        #72:#69       // lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-  #187 = Class              #195          // org/assertj/core/api/ThrowableAssert\n-  #188 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #189 = NameAndType        #68:#69       // lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-  #190 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #191 = Utf8               metafactory\n-  #192 = Class              #197          // java/lang/invoke/MethodHandles$Lookup\n-  #193 = Utf8               Lookup\n-  #194 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #195 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #196 = Class              #198          // java/lang/invoke/MethodHandles\n-  #197 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #198 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+    #8 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.\"<init>\":()V\n+   #10 = Class              #11           // java/util/ArrayList\n+   #11 = Utf8               java/util/ArrayList\n+   #12 = Methodref          #10.#3        // java/util/ArrayList.\"<init>\":()V\n+   #13 = Class              #14           // java/lang/IllegalArgumentException\n+   #14 = Utf8               java/lang/IllegalArgumentException\n+   #15 = Methodref          #16.#17       // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #16 = Class              #18           // dev/langchain4j/model/chat/ChatLanguageModelTest\n+   #17 = NameAndType        #19:#20       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #18 = Utf8               dev/langchain4j/model/chat/ChatLanguageModelTest\n+   #19 = Utf8               assertThatExceptionOfType\n+   #20 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #21 = InvokeDynamic      #0:#22        // #0:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #22 = NameAndType        #23:#24       // call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #23 = Utf8               call\n+   #24 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #25 = Methodref          #26.#27       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #26 = Class              #28           // org/assertj/core/api/ThrowableTypeAssert\n+   #27 = NameAndType        #29:#30       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #28 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #29 = Utf8               isThrownBy\n+   #30 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #31 = String             #32           // Tools are currently not supported by this model\n+   #32 = Utf8               Tools are currently not supported by this model\n+   #33 = Methodref          #34.#35       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #34 = Class              #36           // org/assertj/core/api/ThrowableAssertAlternative\n+   #35 = NameAndType        #37:#38       // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #36 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #37 = Utf8               withMessageContaining\n+   #38 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #39 = InvokeDynamic      #1:#22        // #1:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #40 = String             #41           // how are you?\n+   #41 = Utf8               how are you?\n+   #42 = InterfaceMethodref #43.#44       // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/lang/String;)Ljava/lang/String;\n+   #43 = Class              #45           // dev/langchain4j/model/chat/ChatLanguageModel\n+   #44 = NameAndType        #46:#47       // generate:(Ljava/lang/String;)Ljava/lang/String;\n+   #45 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n+   #46 = Utf8               generate\n+   #47 = Utf8               (Ljava/lang/String;)Ljava/lang/String;\n+   #48 = Methodref          #16.#49       // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #49 = NameAndType        #50:#51       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #50 = Utf8               assertThat\n+   #51 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #52 = String             #53           // HOW ARE YOU?\n+   #53 = Utf8               HOW ARE YOU?\n+   #54 = Methodref          #55.#56       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #55 = Class              #57           // org/assertj/core/api/AbstractStringAssert\n+   #56 = NameAndType        #58:#51       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #57 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #58 = Utf8               isEqualTo\n+   #59 = Class              #60           // dev/langchain4j/data/message/UserMessage\n+   #60 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #61 = String             #62           // Hello\n+   #62 = Utf8               Hello\n+   #63 = Methodref          #59.#64       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+   #64 = NameAndType        #5:#65        // \"<init>\":(Ljava/lang/String;)V\n+   #65 = Utf8               (Ljava/lang/String;)V\n+   #66 = InterfaceMethodref #67.#68       // java/util/List.add:(Ljava/lang/Object;)Z\n+   #67 = Class              #69           // java/util/List\n+   #68 = NameAndType        #70:#71       // add:(Ljava/lang/Object;)Z\n+   #69 = Utf8               java/util/List\n+   #70 = Utf8               add\n+   #71 = Utf8               (Ljava/lang/Object;)Z\n+   #72 = Class              #73           // dev/langchain4j/data/message/AiMessage\n+   #73 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #74 = String             #75           // Hi\n+   #75 = Utf8               Hi\n+   #76 = Methodref          #72.#64       // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+   #77 = String             #78           // How are you?\n+   #78 = Utf8               How are you?\n+   #79 = InterfaceMethodref #43.#80       // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+   #80 = NameAndType        #46:#81       // generate:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+   #81 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+   #82 = Methodref          #83.#84       // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+   #83 = Class              #85           // dev/langchain4j/model/output/Response\n+   #84 = NameAndType        #86:#87       // content:()Ljava/lang/Object;\n+   #85 = Utf8               dev/langchain4j/model/output/Response\n+   #86 = Utf8               content\n+   #87 = Utf8               ()Ljava/lang/Object;\n+   #88 = Methodref          #72.#89       // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+   #89 = NameAndType        #90:#91       // text:()Ljava/lang/String;\n+   #90 = Utf8               text\n+   #91 = Utf8               ()Ljava/lang/String;\n+   #92 = Methodref          #83.#93       // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #93 = NameAndType        #94:#95       // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #94 = Utf8               tokenUsage\n+   #95 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n+   #96 = Methodref          #16.#97       // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #97 = NameAndType        #50:#98       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #98 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #99 = Methodref          #100.#101     // org/assertj/core/api/ObjectAssert.isNull:()V\n+  #100 = Class              #102          // org/assertj/core/api/ObjectAssert\n+  #101 = NameAndType        #103:#6       // isNull:()V\n+  #102 = Utf8               org/assertj/core/api/ObjectAssert\n+  #103 = Utf8               isNull\n+  #104 = Methodref          #83.#105      // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+  #105 = NameAndType        #106:#107     // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+  #106 = Utf8               finishReason\n+  #107 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n+  #108 = Methodref          #16.#109      // dev/langchain4j/model/chat/ChatLanguageModelTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #109 = NameAndType        #50:#110      // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #110 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #111 = Methodref          #112.#101     // org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+  #112 = Class              #113          // org/assertj/core/api/AbstractComparableAssert\n+  #113 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+  #114 = Class              #115          // dev/langchain4j/data/message/ChatMessage\n+  #115 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #116 = InterfaceMethodref #43.#117      // dev/langchain4j/model/chat/ChatLanguageModel.generate:([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+  #117 = NameAndType        #46:#118      // generate:([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+  #118 = Utf8               ([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+  #119 = Methodref          #120.#121     // dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #120 = Class              #122          // dev/langchain4j/agent/tool/ToolSpecification\n+  #121 = NameAndType        #123:#124     // builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #122 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n+  #123 = Utf8               builder\n+  #124 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #125 = String             #126          // foo\n+  #126 = Utf8               foo\n+  #127 = Methodref          #128.#129     // dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #128 = Class              #130          // dev/langchain4j/agent/tool/ToolSpecification$Builder\n+  #129 = NameAndType        #131:#132     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #130 = Utf8               dev/langchain4j/agent/tool/ToolSpecification$Builder\n+  #131 = Utf8               name\n+  #132 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #133 = Methodref          #128.#134     // dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #134 = NameAndType        #135:#136     // build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #135 = Utf8               build\n+  #136 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #137 = InterfaceMethodref #43.#138      // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+  #138 = NameAndType        #46:#139      // generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+  #139 = Utf8               (Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+  #140 = InterfaceMethodref #43.#141      // dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #141 = NameAndType        #46:#142      // generate:(Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #142 = Utf8               (Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #143 = Class              #144          // org/assertj/core/api/WithAssertions\n+  #144 = Utf8               org/assertj/core/api/WithAssertions\n+  #145 = Utf8               Code\n+  #146 = Utf8               LineNumberTable\n+  #147 = Utf8               LocalVariableTable\n+  #148 = Utf8               this\n+  #149 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModelTest;\n+  #150 = Utf8               test_not_supported\n+  #151 = Utf8               model\n+  #152 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModel;\n+  #153 = Utf8               messages\n+  #154 = Utf8               Ljava/util/List;\n+  #155 = Utf8               LocalVariableTypeTable\n+  #156 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #157 = Utf8               RuntimeVisibleAnnotations\n+  #158 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #159 = Utf8               test_generate\n+  #160 = Utf8               response\n+  #161 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #162 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #163 = Utf8               lambda$test_not_supported$1\n+  #164 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #165 = Utf8               Exceptions\n+  #166 = Class              #167          // java/lang/Throwable\n+  #167 = Utf8               java/lang/Throwable\n+  #168 = Utf8               lambda$test_not_supported$0\n+  #169 = Utf8               SourceFile\n+  #170 = Utf8               ChatLanguageModelTest.java\n+  #171 = Utf8               BootstrapMethods\n+  #172 = MethodHandle       6:#173        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #173 = Methodref          #174.#175     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #174 = Class              #176          // java/lang/invoke/LambdaMetafactory\n+  #175 = NameAndType        #177:#178     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #176 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #177 = Utf8               metafactory\n+  #178 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #179 = MethodType         #6            //  ()V\n+  #180 = MethodHandle       6:#181        // REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #181 = Methodref          #16.#182      // dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #182 = NameAndType        #168:#164     // lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #183 = MethodHandle       6:#184        // REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #184 = Methodref          #16.#185      // dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #185 = NameAndType        #163:#164     // lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+  #186 = Utf8               InnerClasses\n+  #187 = Utf8               UpperCaseEchoModel\n+  #188 = Class              #189          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #189 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #190 = Class              #191          // org/assertj/core/api/ThrowableAssert\n+  #191 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #192 = Utf8               ThrowingCallable\n+  #193 = Utf8               Builder\n+  #194 = Class              #195          // java/lang/invoke/MethodHandles$Lookup\n+  #195 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #196 = Class              #197          // java/lang/invoke/MethodHandles\n+  #197 = Utf8               java/lang/invoke/MethodHandles\n+  #198 = Utf8               Lookup\n {\n   dev.langchain4j.model.chat.ChatLanguageModelTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -222,41 +222,41 @@\n             0       5     0  this   Ldev/langchain4j/model/chat/ChatLanguageModelTest;\n \n   public void test_not_supported();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+         0: new           #7                  // class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.\"<init>\":()V\n          7: astore_1\n-         8: new           #4                  // class java/util/ArrayList\n+         8: new           #10                 // class java/util/ArrayList\n         11: dup\n-        12: invokespecial #5                  // Method java/util/ArrayList.\"<init>\":()V\n+        12: invokespecial #12                 // Method java/util/ArrayList.\"<init>\":()V\n         15: astore_2\n         16: aload_0\n-        17: ldc           #6                  // class java/lang/IllegalArgumentException\n-        19: invokevirtual #7                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        17: ldc           #13                 // class java/lang/IllegalArgumentException\n+        19: invokevirtual #15                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         22: aload_1\n         23: aload_2\n-        24: invokedynamic #8,  0              // InvokeDynamic #0:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        29: invokevirtual #9                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        32: ldc           #10                 // String Tools are currently not supported by this model\n-        34: invokevirtual #11                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        24: invokedynamic #21,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        29: invokevirtual #25                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        32: ldc           #31                 // String Tools are currently not supported by this model\n+        34: invokevirtual #33                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         37: pop\n         38: aload_0\n-        39: ldc           #6                  // class java/lang/IllegalArgumentException\n-        41: invokevirtual #7                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        39: ldc           #13                 // class java/lang/IllegalArgumentException\n+        41: invokevirtual #15                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         44: aload_1\n         45: aload_2\n-        46: invokedynamic #12,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        51: invokevirtual #9                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        54: ldc           #10                 // String Tools are currently not supported by this model\n-        56: invokevirtual #11                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        46: invokedynamic #39,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        51: invokevirtual #25                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        54: ldc           #31                 // String Tools are currently not supported by this model\n+        56: invokevirtual #33                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         59: pop\n         60: return\n       LineNumberTable:\n         line 26: 0\n         line 28: 8\n         line 30: 16\n         line 31: 29\n@@ -270,127 +270,127 @@\n             0      61     0  this   Ldev/langchain4j/model/chat/ChatLanguageModelTest;\n             8      53     1 model   Ldev/langchain4j/model/chat/ChatLanguageModel;\n            16      45     2 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            16      45     2 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #63()\n+      0: #158()\n         org.junit.jupiter.api.Test\n \n   public void test_generate();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=4, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n+         0: new           #7                  // class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #13                 // String how are you?\n-        12: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/lang/String;)Ljava/lang/String;\n-        17: invokevirtual #15                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        20: ldc           #16                 // String HOW ARE YOU?\n-        22: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        10: ldc           #40                 // String how are you?\n+        12: invokeinterface #42,  2           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/lang/String;)Ljava/lang/String;\n+        17: invokevirtual #48                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        20: ldc           #52                 // String HOW ARE YOU?\n+        22: invokevirtual #54                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         25: pop\n-        26: new           #4                  // class java/util/ArrayList\n+        26: new           #10                 // class java/util/ArrayList\n         29: dup\n-        30: invokespecial #5                  // Method java/util/ArrayList.\"<init>\":()V\n+        30: invokespecial #12                 // Method java/util/ArrayList.\"<init>\":()V\n         33: astore_2\n         34: aload_2\n-        35: new           #18                 // class dev/langchain4j/data/message/UserMessage\n+        35: new           #59                 // class dev/langchain4j/data/message/UserMessage\n         38: dup\n-        39: ldc           #19                 // String Hello\n-        41: invokespecial #20                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        44: invokeinterface #21,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        39: ldc           #61                 // String Hello\n+        41: invokespecial #63                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        44: invokeinterface #66,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         49: pop\n         50: aload_2\n-        51: new           #22                 // class dev/langchain4j/data/message/AiMessage\n+        51: new           #72                 // class dev/langchain4j/data/message/AiMessage\n         54: dup\n-        55: ldc           #23                 // String Hi\n-        57: invokespecial #24                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-        60: invokeinterface #21,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        55: ldc           #74                 // String Hi\n+        57: invokespecial #76                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        60: invokeinterface #66,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         65: pop\n         66: aload_2\n-        67: new           #18                 // class dev/langchain4j/data/message/UserMessage\n+        67: new           #59                 // class dev/langchain4j/data/message/UserMessage\n         70: dup\n-        71: ldc           #25                 // String How are you?\n-        73: invokespecial #20                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        76: invokeinterface #21,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        71: ldc           #77                 // String How are you?\n+        73: invokespecial #63                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        76: invokeinterface #66,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         81: pop\n         82: aload_1\n         83: aload_2\n-        84: invokeinterface #26,  2           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+        84: invokeinterface #79,  2           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n         89: astore_3\n         90: aload_0\n         91: aload_3\n-        92: invokevirtual #27                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-        95: checkcast     #22                 // class dev/langchain4j/data/message/AiMessage\n-        98: invokevirtual #28                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       101: invokevirtual #15                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       104: ldc           #16                 // String HOW ARE YOU?\n-       106: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        92: invokevirtual #82                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+        95: checkcast     #72                 // class dev/langchain4j/data/message/AiMessage\n+        98: invokevirtual #88                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       101: invokevirtual #48                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       104: ldc           #52                 // String HOW ARE YOU?\n+       106: invokevirtual #54                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        109: pop\n        110: aload_0\n        111: aload_3\n-       112: invokevirtual #29                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-       115: invokevirtual #30                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       118: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n+       112: invokevirtual #92                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+       115: invokevirtual #96                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       118: invokevirtual #99                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n        121: aload_0\n        122: aload_3\n-       123: invokevirtual #32                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-       126: invokevirtual #33                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       129: invokevirtual #34                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+       123: invokevirtual #104                // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+       126: invokevirtual #108                // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       129: invokevirtual #111                // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n        132: aload_1\n        133: iconst_3\n-       134: anewarray     #35                 // class dev/langchain4j/data/message/ChatMessage\n+       134: anewarray     #114                // class dev/langchain4j/data/message/ChatMessage\n        137: dup\n        138: iconst_0\n-       139: new           #18                 // class dev/langchain4j/data/message/UserMessage\n+       139: new           #59                 // class dev/langchain4j/data/message/UserMessage\n        142: dup\n-       143: ldc           #19                 // String Hello\n-       145: invokespecial #20                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+       143: ldc           #61                 // String Hello\n+       145: invokespecial #63                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n        148: aastore\n        149: dup\n        150: iconst_1\n-       151: new           #22                 // class dev/langchain4j/data/message/AiMessage\n+       151: new           #72                 // class dev/langchain4j/data/message/AiMessage\n        154: dup\n-       155: ldc           #23                 // String Hi\n-       157: invokespecial #24                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+       155: ldc           #74                 // String Hi\n+       157: invokespecial #76                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n        160: aastore\n        161: dup\n        162: iconst_2\n-       163: new           #18                 // class dev/langchain4j/data/message/UserMessage\n+       163: new           #59                 // class dev/langchain4j/data/message/UserMessage\n        166: dup\n-       167: ldc           #25                 // String How are you?\n-       169: invokespecial #20                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+       167: ldc           #77                 // String How are you?\n+       169: invokespecial #63                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n        172: aastore\n-       173: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+       173: invokeinterface #116,  2          // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:([Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n        178: astore_2\n        179: aload_0\n        180: aload_2\n-       181: invokevirtual #27                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-       184: checkcast     #22                 // class dev/langchain4j/data/message/AiMessage\n-       187: invokevirtual #28                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       190: invokevirtual #15                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       193: ldc           #16                 // String HOW ARE YOU?\n-       195: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       181: invokevirtual #82                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+       184: checkcast     #72                 // class dev/langchain4j/data/message/AiMessage\n+       187: invokevirtual #88                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       190: invokevirtual #48                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       193: ldc           #52                 // String HOW ARE YOU?\n+       195: invokevirtual #54                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        198: pop\n        199: aload_0\n        200: aload_2\n-       201: invokevirtual #29                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-       204: invokevirtual #30                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       207: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n+       201: invokevirtual #92                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+       204: invokevirtual #96                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       207: invokevirtual #99                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n        210: aload_0\n        211: aload_2\n-       212: invokevirtual #32                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-       215: invokevirtual #33                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       218: invokevirtual #34                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+       212: invokevirtual #104                // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+       215: invokevirtual #108                // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       218: invokevirtual #111                // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n        221: return\n       LineNumberTable:\n         line 41: 0\n         line 43: 8\n         line 44: 22\n         line 47: 26\n         line 48: 34\n@@ -414,29 +414,29 @@\n             8     214     1 model   Ldev/langchain4j/model/chat/ChatLanguageModel;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            34      98     2 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            90      42     3 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n           179      42     2 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #63()\n+      0: #158()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_not_supported$1(dev.langchain4j.model.chat.ChatLanguageModel, java.util.List) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokestatic  #37                 // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         5: ldc           #38                 // String foo\n-         7: invokevirtual #39                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        10: invokevirtual #40                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-        13: invokeinterface #41,  3           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+         2: invokestatic  #119                // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         5: ldc           #125                // String foo\n+         7: invokevirtual #127                // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        10: invokevirtual #133                // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+        13: invokeinterface #137,  3          // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n         18: pop\n         19: return\n       LineNumberTable:\n         line 35: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      20     0 model   Ldev/langchain4j/model/chat/ChatLanguageModel;\n@@ -447,39 +447,39 @@\n   private static void lambda$test_not_supported$0(dev.langchain4j.model.chat.ChatLanguageModel, java.util.List) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: new           #4                  // class java/util/ArrayList\n+         2: new           #10                 // class java/util/ArrayList\n          5: dup\n-         6: invokespecial #5                  // Method java/util/ArrayList.\"<init>\":()V\n-         9: invokeinterface #42,  3           // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+         6: invokespecial #12                 // Method java/util/ArrayList.\"<init>\":()V\n+         9: invokeinterface #140,  3          // InterfaceMethod dev/langchain4j/model/chat/ChatLanguageModel.generate:(Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n         14: pop\n         15: return\n       LineNumberTable:\n         line 31: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      16     0 model   Ldev/langchain4j/model/chat/ChatLanguageModel;\n             0      16     1 messages   Ljava/util/List;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"ChatLanguageModelTest.java\"\n-InnerClasses:\n-  public static #46= #2 of #43;           // UpperCaseEchoModel=class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel of class dev/langchain4j/model/chat/ChatLanguageModelTest\n-  public static #137= #136 of #187;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #175= #122 of #119; // Builder=class dev/langchain4j/agent/tool/ToolSpecification$Builder of class dev/langchain4j/agent/tool/ToolSpecification\n-  public static final #193= #192 of #196; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #81 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #172 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #82 ()V\n-      #83 REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-      #82 ()V\n-  1: #81 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #179 ()V\n+      #180 REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+      #179 ()V\n+  1: #172 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #82 ()V\n-      #90 REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n-      #82 ()V\n+      #179 ()V\n+      #183 REF_invokeStatic dev/langchain4j/model/chat/ChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/List;)V\n+      #179 ()V\n+InnerClasses:\n+  public static #187= #7 of #16;          // UpperCaseEchoModel=class dev/langchain4j/model/chat/ChatLanguageModelTest$UpperCaseEchoModel of class dev/langchain4j/model/chat/ChatLanguageModelTest\n+  public static #192= #188 of #190;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #193= #128 of #120; // Builder=class dev/langchain4j/agent/tool/ToolSpecification$Builder of class dev/langchain4j/agent/tool/ToolSpecification\n+  public static final #198= #194 of #196; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.class", "source2": "dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,90 +1,90 @@\n-  SHA-256 checksum b3a0490e1ce637fa6c65047f1df2805d5ded1307c135270996db324fd3ed1a5a\n+  SHA-256 checksum b542f463b9526866cdc1487f52be8f3a777a36cb305d8c870fd8886b3f03391a\n   Compiled from \"StreamingChatLanguageModelTest.java\"\n public final class dev.langchain4j.model.chat.StreamingChatLanguageModelTest$CollectorResponseHandler<T extends java.lang.Object> extends java.lang.Object implements dev.langchain4j.model.StreamingResponseHandler<T>\n   minor version: 0\n   major version: 52\n   flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER\n-  this_class: #6                          // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n-  super_class: #7                         // java/lang/Object\n+  this_class: #11                         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 5, attributes: 3\n Constant pool:\n-   #1 = Methodref          #7.#43         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #44            // java/util/ArrayList\n-   #3 = Methodref          #2.#43         // java/util/ArrayList.\"<init>\":()V\n-   #4 = Fieldref           #6.#45         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:Ljava/util/List;\n-   #5 = InterfaceMethodref #46.#47        // java/util/List.add:(Ljava/lang/Object;)Z\n-   #6 = Class              #49            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n-   #7 = Class              #50            // java/lang/Object\n-   #8 = Class              #51            // dev/langchain4j/model/StreamingResponseHandler\n-   #9 = Utf8               responses\n-  #10 = Utf8               Ljava/util/List;\n-  #11 = Utf8               Signature\n-  #12 = Utf8               Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n-  #13 = Utf8               <init>\n-  #14 = Utf8               ()V\n-  #15 = Utf8               Code\n-  #16 = Utf8               LineNumberTable\n-  #17 = Utf8               LocalVariableTable\n-  #18 = Utf8               this\n-  #19 = Utf8               CollectorResponseHandler\n-  #20 = Utf8               InnerClasses\n-  #21 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n-  #22 = Utf8               LocalVariableTypeTable\n-  #23 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<TT;>;\n-  #24 = Utf8               ()Ljava/util/List;\n-  #25 = Utf8               ()Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n-  #26 = Utf8               onNext\n-  #27 = Utf8               (Ljava/lang/String;)V\n-  #28 = Utf8               token\n-  #29 = Utf8               Ljava/lang/String;\n-  #30 = Utf8               onError\n-  #31 = Utf8               (Ljava/lang/Throwable;)V\n-  #32 = Utf8               error\n-  #33 = Utf8               Ljava/lang/Throwable;\n-  #34 = Utf8               onComplete\n-  #35 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n-  #36 = Utf8               response\n-  #37 = Utf8               Ldev/langchain4j/model/output/Response;\n-  #38 = Utf8               Ldev/langchain4j/model/output/Response<TT;>;\n-  #39 = Utf8               (Ldev/langchain4j/model/output/Response<TT;>;)V\n-  #40 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n-  #41 = Utf8               SourceFile\n-  #42 = Utf8               StreamingChatLanguageModelTest.java\n-  #43 = NameAndType        #13:#14        // \"<init>\":()V\n-  #44 = Utf8               java/util/ArrayList\n-  #45 = NameAndType        #9:#10         // responses:Ljava/util/List;\n-  #46 = Class              #52            // java/util/List\n-  #47 = NameAndType        #53:#54        // add:(Ljava/lang/Object;)Z\n-  #48 = Class              #55            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-  #49 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n-  #50 = Utf8               java/lang/Object\n-  #51 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-  #52 = Utf8               java/util/List\n-  #53 = Utf8               add\n-  #54 = Utf8               (Ljava/lang/Object;)Z\n-  #55 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // java/util/ArrayList\n+   #8 = Utf8               java/util/ArrayList\n+   #9 = Methodref          #7.#3          // java/util/ArrayList.\"<init>\":()V\n+  #10 = Fieldref           #11.#12        // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:Ljava/util/List;\n+  #11 = Class              #13            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+  #12 = NameAndType        #14:#15        // responses:Ljava/util/List;\n+  #13 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+  #14 = Utf8               responses\n+  #15 = Utf8               Ljava/util/List;\n+  #16 = InterfaceMethodref #17.#18        // java/util/List.add:(Ljava/lang/Object;)Z\n+  #17 = Class              #19            // java/util/List\n+  #18 = NameAndType        #20:#21        // add:(Ljava/lang/Object;)Z\n+  #19 = Utf8               java/util/List\n+  #20 = Utf8               add\n+  #21 = Utf8               (Ljava/lang/Object;)Z\n+  #22 = Class              #23            // dev/langchain4j/model/StreamingResponseHandler\n+  #23 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+  #24 = Utf8               Signature\n+  #25 = Utf8               Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n+  #26 = Utf8               Code\n+  #27 = Utf8               LineNumberTable\n+  #28 = Utf8               LocalVariableTable\n+  #29 = Utf8               this\n+  #30 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n+  #31 = Utf8               LocalVariableTypeTable\n+  #32 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<TT;>;\n+  #33 = Utf8               ()Ljava/util/List;\n+  #34 = Utf8               ()Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n+  #35 = Utf8               onNext\n+  #36 = Utf8               (Ljava/lang/String;)V\n+  #37 = Utf8               token\n+  #38 = Utf8               Ljava/lang/String;\n+  #39 = Utf8               onError\n+  #40 = Utf8               (Ljava/lang/Throwable;)V\n+  #41 = Utf8               error\n+  #42 = Utf8               Ljava/lang/Throwable;\n+  #43 = Utf8               onComplete\n+  #44 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+  #45 = Utf8               response\n+  #46 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #47 = Utf8               Ldev/langchain4j/model/output/Response<TT;>;\n+  #48 = Utf8               (Ldev/langchain4j/model/output/Response<TT;>;)V\n+  #49 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+  #50 = Utf8               SourceFile\n+  #51 = Utf8               StreamingChatLanguageModelTest.java\n+  #52 = Utf8               InnerClasses\n+  #53 = Class              #54            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  #54 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  #55 = Utf8               CollectorResponseHandler\n {\n   private final java.util.List<dev.langchain4j.model.output.Response<T>> responses;\n     descriptor: Ljava/util/List;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #12                          // Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n+    Signature: #25                          // Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n \n   public dev.langchain4j.model.chat.StreamingChatLanguageModelTest$CollectorResponseHandler();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n-         5: new           #2                  // class java/util/ArrayList\n+         5: new           #7                  // class java/util/ArrayList\n          8: dup\n-         9: invokespecial #3                  // Method java/util/ArrayList.\"<init>\":()V\n-        12: putfield      #4                  // Field responses:Ljava/util/List;\n+         9: invokespecial #9                  // Method java/util/ArrayList.\"<init>\":()V\n+        12: putfield      #10                 // Field responses:Ljava/util/List;\n         15: return\n       LineNumberTable:\n         line 26: 0\n         line 27: 4\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      16     0  this   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n@@ -94,25 +94,25 @@\n \n   public java.util.List<dev.langchain4j.model.output.Response<T>> responses();\n     descriptor: ()Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #4                  // Field responses:Ljava/util/List;\n+         1: getfield      #10                 // Field responses:Ljava/util/List;\n          4: areturn\n       LineNumberTable:\n         line 30: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<TT;>;\n-    Signature: #25                          // ()Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n+    Signature: #34                          // ()Ljava/util/List<Ldev/langchain4j/model/output/Response<TT;>;>;\n \n   public void onNext(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=0, locals=2, args_size=2\n          0: return\n@@ -144,29 +144,29 @@\n \n   public void onComplete(dev.langchain4j.model.output.Response<T>);\n     descriptor: (Ldev/langchain4j/model/output/Response;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #4                  // Field responses:Ljava/util/List;\n+         1: getfield      #10                 // Field responses:Ljava/util/List;\n          4: aload_1\n-         5: invokeinterface #5,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+         5: invokeinterface #16,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         10: pop\n         11: return\n       LineNumberTable:\n         line 41: 0\n         line 42: 11\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0  this   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n             0      12     1 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0  this   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<TT;>;\n             0      12     1 response   Ldev/langchain4j/model/output/Response<TT;>;\n-    Signature: #39                          // (Ldev/langchain4j/model/output/Response<TT;>;)V\n+    Signature: #48                          // (Ldev/langchain4j/model/output/Response<TT;>;)V\n }\n-Signature: #40                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+Signature: #49                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n SourceFile: \"StreamingChatLanguageModelTest.java\"\n InnerClasses:\n-  public static final #19= #6 of #48;     // CollectorResponseHandler=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  public static final #55= #11 of #53;    // CollectorResponseHandler=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.class", "source2": "dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,98 +1,98 @@\n-  SHA-256 checksum 1d534426f60fa2eaeed1bf64863373aec7aadce3b3e448d5038ba0a45e79e05f\n+  SHA-256 checksum dcc4956fb51a13cdb1f39664127ac357f9b31bff6797fdf231b66f5cf2b7f5b6\n   Compiled from \"StreamingChatLanguageModelTest.java\"\n public class dev.langchain4j.model.chat.StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel implements dev.langchain4j.model.chat.StreamingChatLanguageModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #13                         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n-  super_class: #14                        // java/lang/Object\n+  this_class: #51                         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #14.#43        // java/lang/Object.\"<init>\":()V\n-   #2 = InterfaceMethodref #44.#45        // java/util/List.size:()I\n-   #3 = InterfaceMethodref #44.#46        // java/util/List.get:(I)Ljava/lang/Object;\n-   #4 = Class              #47            // dev/langchain4j/data/message/ChatMessage\n-   #5 = Class              #48            // dev/langchain4j/model/output/Response\n-   #6 = Class              #49            // dev/langchain4j/data/message/AiMessage\n-   #7 = InterfaceMethodref #4.#50         // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-   #8 = Fieldref           #51.#52        // java/util/Locale.ROOT:Ljava/util/Locale;\n-   #9 = Methodref          #53.#54        // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-  #10 = Methodref          #6.#55         // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-  #11 = Methodref          #5.#56         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-  #12 = InterfaceMethodref #57.#58        // dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n-  #13 = Class              #60            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n-  #14 = Class              #61            // java/lang/Object\n-  #15 = Class              #62            // dev/langchain4j/model/chat/StreamingChatLanguageModel\n-  #16 = Utf8               <init>\n-  #17 = Utf8               ()V\n-  #18 = Utf8               Code\n-  #19 = Utf8               LineNumberTable\n-  #20 = Utf8               LocalVariableTable\n-  #21 = Utf8               this\n-  #22 = Utf8               StreamingUpperCaseEchoModel\n-  #23 = Utf8               InnerClasses\n-  #24 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;\n-  #25 = Utf8               generate\n-  #26 = Utf8               (Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #27 = Utf8               messages\n-  #28 = Utf8               Ljava/util/List;\n-  #29 = Utf8               handler\n-  #30 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler;\n-  #31 = Utf8               lastMessage\n-  #32 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-  #33 = Utf8               response\n-  #34 = Utf8               Ldev/langchain4j/model/output/Response;\n-  #35 = Utf8               LocalVariableTypeTable\n-  #36 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #37 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n-  #38 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-  #39 = Utf8               Signature\n-  #40 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;)V\n-  #41 = Utf8               SourceFile\n-  #42 = Utf8               StreamingChatLanguageModelTest.java\n-  #43 = NameAndType        #16:#17        // \"<init>\":()V\n-  #44 = Class              #63            // java/util/List\n-  #45 = NameAndType        #64:#65        // size:()I\n-  #46 = NameAndType        #66:#67        // get:(I)Ljava/lang/Object;\n-  #47 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #48 = Utf8               dev/langchain4j/model/output/Response\n-  #49 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #50 = NameAndType        #68:#69        // text:()Ljava/lang/String;\n-  #51 = Class              #70            // java/util/Locale\n-  #52 = NameAndType        #71:#72        // ROOT:Ljava/util/Locale;\n-  #53 = Class              #73            // java/lang/String\n-  #54 = NameAndType        #74:#75        // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-  #55 = NameAndType        #16:#76        // \"<init>\":(Ljava/lang/String;)V\n-  #56 = NameAndType        #16:#77        // \"<init>\":(Ljava/lang/Object;)V\n-  #57 = Class              #78            // dev/langchain4j/model/StreamingResponseHandler\n-  #58 = NameAndType        #79:#80        // onComplete:(Ldev/langchain4j/model/output/Response;)V\n-  #59 = Class              #81            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-  #60 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n-  #61 = Utf8               java/lang/Object\n-  #62 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModel\n-  #63 = Utf8               java/util/List\n-  #64 = Utf8               size\n-  #65 = Utf8               ()I\n-  #66 = Utf8               get\n-  #67 = Utf8               (I)Ljava/lang/Object;\n-  #68 = Utf8               text\n-  #69 = Utf8               ()Ljava/lang/String;\n-  #70 = Utf8               java/util/Locale\n-  #71 = Utf8               ROOT\n-  #72 = Utf8               Ljava/util/Locale;\n-  #73 = Utf8               java/lang/String\n-  #74 = Utf8               toUpperCase\n-  #75 = Utf8               (Ljava/util/Locale;)Ljava/lang/String;\n-  #76 = Utf8               (Ljava/lang/String;)V\n-  #77 = Utf8               (Ljava/lang/Object;)V\n-  #78 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-  #79 = Utf8               onComplete\n-  #80 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n-  #81 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = InterfaceMethodref #8.#9          // java/util/List.size:()I\n+   #8 = Class              #10            // java/util/List\n+   #9 = NameAndType        #11:#12        // size:()I\n+  #10 = Utf8               java/util/List\n+  #11 = Utf8               size\n+  #12 = Utf8               ()I\n+  #13 = InterfaceMethodref #8.#14         // java/util/List.get:(I)Ljava/lang/Object;\n+  #14 = NameAndType        #15:#16        // get:(I)Ljava/lang/Object;\n+  #15 = Utf8               get\n+  #16 = Utf8               (I)Ljava/lang/Object;\n+  #17 = Class              #18            // dev/langchain4j/data/message/ChatMessage\n+  #18 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #19 = Class              #20            // dev/langchain4j/model/output/Response\n+  #20 = Utf8               dev/langchain4j/model/output/Response\n+  #21 = Class              #22            // dev/langchain4j/data/message/AiMessage\n+  #22 = Utf8               dev/langchain4j/data/message/AiMessage\n+  #23 = InterfaceMethodref #17.#24        // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+  #24 = NameAndType        #25:#26        // text:()Ljava/lang/String;\n+  #25 = Utf8               text\n+  #26 = Utf8               ()Ljava/lang/String;\n+  #27 = Fieldref           #28.#29        // java/util/Locale.ROOT:Ljava/util/Locale;\n+  #28 = Class              #30            // java/util/Locale\n+  #29 = NameAndType        #31:#32        // ROOT:Ljava/util/Locale;\n+  #30 = Utf8               java/util/Locale\n+  #31 = Utf8               ROOT\n+  #32 = Utf8               Ljava/util/Locale;\n+  #33 = Methodref          #34.#35        // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+  #34 = Class              #36            // java/lang/String\n+  #35 = NameAndType        #37:#38        // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+  #36 = Utf8               java/lang/String\n+  #37 = Utf8               toUpperCase\n+  #38 = Utf8               (Ljava/util/Locale;)Ljava/lang/String;\n+  #39 = Methodref          #21.#40        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+  #40 = NameAndType        #5:#41         // \"<init>\":(Ljava/lang/String;)V\n+  #41 = Utf8               (Ljava/lang/String;)V\n+  #42 = Methodref          #19.#43        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #43 = NameAndType        #5:#44         // \"<init>\":(Ljava/lang/Object;)V\n+  #44 = Utf8               (Ljava/lang/Object;)V\n+  #45 = InterfaceMethodref #46.#47        // dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n+  #46 = Class              #48            // dev/langchain4j/model/StreamingResponseHandler\n+  #47 = NameAndType        #49:#50        // onComplete:(Ldev/langchain4j/model/output/Response;)V\n+  #48 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+  #49 = Utf8               onComplete\n+  #50 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+  #51 = Class              #52            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+  #52 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+  #53 = Class              #54            // dev/langchain4j/model/chat/StreamingChatLanguageModel\n+  #54 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModel\n+  #55 = Utf8               Code\n+  #56 = Utf8               LineNumberTable\n+  #57 = Utf8               LocalVariableTable\n+  #58 = Utf8               this\n+  #59 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;\n+  #60 = Utf8               generate\n+  #61 = Utf8               (Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #62 = Utf8               messages\n+  #63 = Utf8               Ljava/util/List;\n+  #64 = Utf8               handler\n+  #65 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler;\n+  #66 = Utf8               lastMessage\n+  #67 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #68 = Utf8               response\n+  #69 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #70 = Utf8               LocalVariableTypeTable\n+  #71 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #72 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n+  #73 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #74 = Utf8               Signature\n+  #75 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;)V\n+  #76 = Utf8               SourceFile\n+  #77 = Utf8               StreamingChatLanguageModelTest.java\n+  #78 = Utf8               InnerClasses\n+  #79 = Class              #80            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  #80 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  #81 = Utf8               StreamingUpperCaseEchoModel\n {\n   public dev.langchain4j.model.chat.StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -107,34 +107,34 @@\n   public void generate(java.util.List<dev.langchain4j.data.message.ChatMessage>, dev.langchain4j.model.StreamingResponseHandler<dev.langchain4j.data.message.AiMessage>);\n     descriptor: (Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=5, args_size=3\n          0: aload_1\n          1: aload_1\n-         2: invokeinterface #2,  1            // InterfaceMethod java/util/List.size:()I\n+         2: invokeinterface #7,  1            // InterfaceMethod java/util/List.size:()I\n          7: iconst_1\n          8: isub\n-         9: invokeinterface #3,  2            // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        14: checkcast     #4                  // class dev/langchain4j/data/message/ChatMessage\n+         9: invokeinterface #13,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        14: checkcast     #17                 // class dev/langchain4j/data/message/ChatMessage\n         17: astore_3\n-        18: new           #5                  // class dev/langchain4j/model/output/Response\n+        18: new           #19                 // class dev/langchain4j/model/output/Response\n         21: dup\n-        22: new           #6                  // class dev/langchain4j/data/message/AiMessage\n+        22: new           #21                 // class dev/langchain4j/data/message/AiMessage\n         25: dup\n         26: aload_3\n-        27: invokeinterface #7,  1            // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-        32: getstatic     #8                  // Field java/util/Locale.ROOT:Ljava/util/Locale;\n-        35: invokevirtual #9                  // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n-        38: invokespecial #10                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-        41: invokespecial #11                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+        27: invokeinterface #23,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+        32: getstatic     #27                 // Field java/util/Locale.ROOT:Ljava/util/Locale;\n+        35: invokevirtual #33                 // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;\n+        38: invokespecial #39                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        41: invokespecial #42                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n         44: astore        4\n         46: aload_2\n         47: aload         4\n-        49: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n+        49: invokeinterface #45,  2           // InterfaceMethod dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n         54: return\n       LineNumberTable:\n         line 20: 0\n         line 21: 18\n         line 22: 46\n         line 23: 54\n       LocalVariableTable:\n@@ -145,12 +145,12 @@\n            18      37     3 lastMessage   Ldev/langchain4j/data/message/ChatMessage;\n            46       9     4 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      55     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n             0      55     2 handler   Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n            46       9     4 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-    Signature: #40                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;)V\n+    Signature: #75                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ldev/langchain4j/model/StreamingResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;)V\n }\n SourceFile: \"StreamingChatLanguageModelTest.java\"\n InnerClasses:\n-  public static #22= #13 of #59;          // StreamingUpperCaseEchoModel=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  public static #81= #51 of #79;          // StreamingUpperCaseEchoModel=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/chat/StreamingChatLanguageModelTest.class", "source2": "dev/langchain4j/model/chat/StreamingChatLanguageModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,224 +1,224 @@\n-  SHA-256 checksum e4909abb1e6638f4664c3de3e3b6e2b882622ee929fa0a6c683894bc6770a52e\n+  SHA-256 checksum b0e0f1a48746ad52461d81d51395f71b5ddbbecdb8d4c1864e01229ed5d4579e\n   Compiled from \"StreamingChatLanguageModelTest.java\"\n class dev.langchain4j.model.chat.StreamingChatLanguageModelTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #45                         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-  super_class: #46                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 5, attributes: 3\n Constant pool:\n-    #1 = Methodref          #46.#82       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #83           // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n-    #3 = Methodref          #2.#82        // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.\"<init>\":()V\n-    #4 = Class              #84           // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n-    #5 = Methodref          #4.#82        // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n-    #6 = Class              #85           // java/util/ArrayList\n-    #7 = Methodref          #6.#82        // java/util/ArrayList.\"<init>\":()V\n-    #8 = Class              #86           // java/lang/IllegalArgumentException\n-    #9 = Methodref          #45.#87       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #10 = InvokeDynamic      #0:#92        // #0:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #11 = Methodref          #93.#94       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #12 = String             #95           // Tools are currently not supported by this model\n-   #13 = Methodref          #96.#97       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #14 = InvokeDynamic      #1:#92        // #1:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #15 = Class              #99           // dev/langchain4j/data/message/UserMessage\n-   #16 = String             #100          // Hello\n-   #17 = Methodref          #15.#101      // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-   #18 = InterfaceMethodref #102.#103     // java/util/List.add:(Ljava/lang/Object;)Z\n-   #19 = Class              #104          // dev/langchain4j/data/message/AiMessage\n-   #20 = String             #105          // Hi\n-   #21 = Methodref          #19.#101      // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-   #22 = String             #106          // How are you?\n-   #23 = InterfaceMethodref #107.#108     // dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-   #24 = Methodref          #4.#109       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:()Ljava/util/List;\n-   #25 = InterfaceMethodref #102.#110     // java/util/List.get:(I)Ljava/lang/Object;\n-   #26 = Class              #111          // dev/langchain4j/model/output/Response\n-   #27 = Methodref          #26.#112      // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-   #28 = Methodref          #19.#113      // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-   #29 = Methodref          #45.#114      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #30 = String             #115          // HOW ARE YOU?\n-   #31 = Methodref          #116.#117     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #32 = Methodref          #26.#118      // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-   #33 = Methodref          #45.#119      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #34 = Methodref          #120.#121     // org/assertj/core/api/ObjectAssert.isNull:()V\n-   #35 = Methodref          #26.#122      // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-   #36 = Methodref          #45.#123      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #37 = Methodref          #124.#121     // org/assertj/core/api/AbstractComparableAssert.isNull:()V\n-   #38 = InterfaceMethodref #107.#125     // dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-   #39 = Methodref          #126.#127     // dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #40 = String             #128          // foo\n-   #41 = Methodref          #129.#130     // dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-   #42 = Methodref          #129.#131     // dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-   #43 = Methodref          #2.#132       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-   #44 = Methodref          #2.#133       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-   #45 = Class              #134          // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-   #46 = Class              #135          // java/lang/Object\n-   #47 = Class              #136          // org/assertj/core/api/WithAssertions\n-   #48 = Utf8               CollectorResponseHandler\n-   #49 = Utf8               InnerClasses\n-   #50 = Utf8               StreamingUpperCaseEchoModel\n-   #51 = Utf8               <init>\n-   #52 = Utf8               ()V\n-   #53 = Utf8               Code\n-   #54 = Utf8               LineNumberTable\n-   #55 = Utf8               LocalVariableTable\n-   #56 = Utf8               this\n-   #57 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest;\n-   #58 = Utf8               test_not_supported\n-   #59 = Utf8               model\n-   #60 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;\n-   #61 = Utf8               handler\n-   #62 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n-   #63 = Utf8               messages\n-   #64 = Utf8               Ljava/util/List;\n-   #65 = Utf8               LocalVariableTypeTable\n-   #66 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n-   #67 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-   #68 = Utf8               RuntimeVisibleAnnotations\n-   #69 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #70 = Utf8               test_generate\n-   #71 = Utf8               response\n-   #72 = Utf8               Ldev/langchain4j/model/output/Response;\n-   #73 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModel;\n-   #74 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-   #75 = Utf8               lambda$test_not_supported$1\n-   #76 = Utf8               (Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-   #77 = Utf8               Exceptions\n-   #78 = Class              #137          // java/lang/Throwable\n-   #79 = Utf8               lambda$test_not_supported$0\n-   #80 = Utf8               SourceFile\n-   #81 = Utf8               StreamingChatLanguageModelTest.java\n-   #82 = NameAndType        #51:#52       // \"<init>\":()V\n-   #83 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n-   #84 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n-   #85 = Utf8               java/util/ArrayList\n-   #86 = Utf8               java/lang/IllegalArgumentException\n-   #87 = NameAndType        #138:#139     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #88 = Utf8               BootstrapMethods\n-   #89 = MethodHandle       6:#140        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #90 = MethodType         #52           //  ()V\n-   #91 = MethodHandle       6:#141        // REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-   #92 = NameAndType        #142:#145     // call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #93 = Class              #146          // org/assertj/core/api/ThrowableTypeAssert\n-   #94 = NameAndType        #147:#148     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #95 = Utf8               Tools are currently not supported by this model\n-   #96 = Class              #149          // org/assertj/core/api/ThrowableAssertAlternative\n-   #97 = NameAndType        #150:#151     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #98 = MethodHandle       6:#152        // REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-   #99 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #100 = Utf8               Hello\n-  #101 = NameAndType        #51:#153      // \"<init>\":(Ljava/lang/String;)V\n-  #102 = Class              #154          // java/util/List\n-  #103 = NameAndType        #155:#156     // add:(Ljava/lang/Object;)Z\n-  #104 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #105 = Utf8               Hi\n-  #106 = Utf8               How are you?\n-  #107 = Class              #157          // dev/langchain4j/model/chat/StreamingChatLanguageModel\n-  #108 = NameAndType        #158:#159     // generate:(Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #109 = NameAndType        #160:#161     // responses:()Ljava/util/List;\n-  #110 = NameAndType        #162:#163     // get:(I)Ljava/lang/Object;\n-  #111 = Utf8               dev/langchain4j/model/output/Response\n-  #112 = NameAndType        #164:#165     // content:()Ljava/lang/Object;\n-  #113 = NameAndType        #166:#167     // text:()Ljava/lang/String;\n-  #114 = NameAndType        #168:#169     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #115 = Utf8               HOW ARE YOU?\n-  #116 = Class              #170          // org/assertj/core/api/AbstractStringAssert\n-  #117 = NameAndType        #171:#169     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #118 = NameAndType        #172:#173     // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-  #119 = NameAndType        #168:#174     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #120 = Class              #175          // org/assertj/core/api/ObjectAssert\n-  #121 = NameAndType        #176:#52      // isNull:()V\n-  #122 = NameAndType        #177:#178     // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-  #123 = NameAndType        #168:#179     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #124 = Class              #180          // org/assertj/core/api/AbstractComparableAssert\n-  #125 = NameAndType        #158:#181     // generate:(Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #126 = Class              #182          // dev/langchain4j/agent/tool/ToolSpecification\n-  #127 = NameAndType        #183:#185     // builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #128 = Utf8               foo\n-  #129 = Class              #186          // dev/langchain4j/agent/tool/ToolSpecification$Builder\n-  #130 = NameAndType        #187:#188     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #131 = NameAndType        #189:#190     // build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #132 = NameAndType        #158:#191     // generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #133 = NameAndType        #158:#192     // generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #134 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-  #135 = Utf8               java/lang/Object\n-  #136 = Utf8               org/assertj/core/api/WithAssertions\n-  #137 = Utf8               java/lang/Throwable\n-  #138 = Utf8               assertThatExceptionOfType\n-  #139 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #140 = Methodref          #193.#194     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #141 = Methodref          #45.#195      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-  #142 = Utf8               call\n-  #143 = Class              #197          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #144 = Utf8               ThrowingCallable\n-  #145 = Utf8               (Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #146 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #147 = Utf8               isThrownBy\n-  #148 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #149 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #150 = Utf8               withMessageContaining\n-  #151 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #152 = Methodref          #45.#198      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-  #153 = Utf8               (Ljava/lang/String;)V\n-  #154 = Utf8               java/util/List\n-  #155 = Utf8               add\n-  #156 = Utf8               (Ljava/lang/Object;)Z\n-  #157 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModel\n-  #158 = Utf8               generate\n-  #159 = Utf8               (Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #160 = Utf8               responses\n-  #161 = Utf8               ()Ljava/util/List;\n-  #162 = Utf8               get\n-  #163 = Utf8               (I)Ljava/lang/Object;\n-  #164 = Utf8               content\n-  #165 = Utf8               ()Ljava/lang/Object;\n-  #166 = Utf8               text\n-  #167 = Utf8               ()Ljava/lang/String;\n-  #168 = Utf8               assertThat\n-  #169 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #170 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #171 = Utf8               isEqualTo\n-  #172 = Utf8               tokenUsage\n-  #173 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n-  #174 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #175 = Utf8               org/assertj/core/api/ObjectAssert\n-  #176 = Utf8               isNull\n-  #177 = Utf8               finishReason\n-  #178 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n-  #179 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #180 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #181 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #182 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n-  #183 = Utf8               builder\n-  #184 = Utf8               Builder\n-  #185 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #186 = Utf8               dev/langchain4j/agent/tool/ToolSpecification$Builder\n-  #187 = Utf8               name\n-  #188 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-  #189 = Utf8               build\n-  #190 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #191 = Utf8               (Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #192 = Utf8               (Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #193 = Class              #199          // java/lang/invoke/LambdaMetafactory\n-  #194 = NameAndType        #200:#203     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #195 = NameAndType        #79:#76       // lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-  #196 = Class              #204          // org/assertj/core/api/ThrowableAssert\n-  #197 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #198 = NameAndType        #75:#76       // lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-  #199 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #200 = Utf8               metafactory\n-  #201 = Class              #206          // java/lang/invoke/MethodHandles$Lookup\n-  #202 = Utf8               Lookup\n-  #203 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #204 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #205 = Class              #207          // java/lang/invoke/MethodHandles\n-  #206 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #207 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+    #8 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.\"<init>\":()V\n+   #10 = Class              #11           // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+   #11 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+   #12 = Methodref          #10.#3        // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n+   #13 = Class              #14           // java/util/ArrayList\n+   #14 = Utf8               java/util/ArrayList\n+   #15 = Methodref          #13.#3        // java/util/ArrayList.\"<init>\":()V\n+   #16 = Class              #17           // java/lang/IllegalArgumentException\n+   #17 = Utf8               java/lang/IllegalArgumentException\n+   #18 = Methodref          #19.#20       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #19 = Class              #21           // dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+   #20 = NameAndType        #22:#23       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #21 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+   #22 = Utf8               assertThatExceptionOfType\n+   #23 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #24 = InvokeDynamic      #0:#25        // #0:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #25 = NameAndType        #26:#27       // call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #26 = Utf8               call\n+   #27 = Utf8               (Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #28 = Methodref          #29.#30       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #29 = Class              #31           // org/assertj/core/api/ThrowableTypeAssert\n+   #30 = NameAndType        #32:#33       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #31 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #32 = Utf8               isThrownBy\n+   #33 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #34 = String             #35           // Tools are currently not supported by this model\n+   #35 = Utf8               Tools are currently not supported by this model\n+   #36 = Methodref          #37.#38       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #37 = Class              #39           // org/assertj/core/api/ThrowableAssertAlternative\n+   #38 = NameAndType        #40:#41       // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #39 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #40 = Utf8               withMessageContaining\n+   #41 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #42 = InvokeDynamic      #1:#25        // #1:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #43 = Class              #44           // dev/langchain4j/data/message/UserMessage\n+   #44 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #45 = String             #46           // Hello\n+   #46 = Utf8               Hello\n+   #47 = Methodref          #43.#48       // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+   #48 = NameAndType        #5:#49        // \"<init>\":(Ljava/lang/String;)V\n+   #49 = Utf8               (Ljava/lang/String;)V\n+   #50 = InterfaceMethodref #51.#52       // java/util/List.add:(Ljava/lang/Object;)Z\n+   #51 = Class              #53           // java/util/List\n+   #52 = NameAndType        #54:#55       // add:(Ljava/lang/Object;)Z\n+   #53 = Utf8               java/util/List\n+   #54 = Utf8               add\n+   #55 = Utf8               (Ljava/lang/Object;)Z\n+   #56 = Class              #57           // dev/langchain4j/data/message/AiMessage\n+   #57 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #58 = String             #59           // Hi\n+   #59 = Utf8               Hi\n+   #60 = Methodref          #56.#48       // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+   #61 = String             #62           // How are you?\n+   #62 = Utf8               How are you?\n+   #63 = InterfaceMethodref #64.#65       // dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+   #64 = Class              #66           // dev/langchain4j/model/chat/StreamingChatLanguageModel\n+   #65 = NameAndType        #67:#68       // generate:(Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+   #66 = Utf8               dev/langchain4j/model/chat/StreamingChatLanguageModel\n+   #67 = Utf8               generate\n+   #68 = Utf8               (Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+   #69 = Methodref          #10.#70       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:()Ljava/util/List;\n+   #70 = NameAndType        #71:#72       // responses:()Ljava/util/List;\n+   #71 = Utf8               responses\n+   #72 = Utf8               ()Ljava/util/List;\n+   #73 = InterfaceMethodref #51.#74       // java/util/List.get:(I)Ljava/lang/Object;\n+   #74 = NameAndType        #75:#76       // get:(I)Ljava/lang/Object;\n+   #75 = Utf8               get\n+   #76 = Utf8               (I)Ljava/lang/Object;\n+   #77 = Class              #78           // dev/langchain4j/model/output/Response\n+   #78 = Utf8               dev/langchain4j/model/output/Response\n+   #79 = Methodref          #77.#80       // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+   #80 = NameAndType        #81:#82       // content:()Ljava/lang/Object;\n+   #81 = Utf8               content\n+   #82 = Utf8               ()Ljava/lang/Object;\n+   #83 = Methodref          #56.#84       // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+   #84 = NameAndType        #85:#86       // text:()Ljava/lang/String;\n+   #85 = Utf8               text\n+   #86 = Utf8               ()Ljava/lang/String;\n+   #87 = Methodref          #19.#88       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #88 = NameAndType        #89:#90       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #89 = Utf8               assertThat\n+   #90 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #91 = String             #92           // HOW ARE YOU?\n+   #92 = Utf8               HOW ARE YOU?\n+   #93 = Methodref          #94.#95       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #94 = Class              #96           // org/assertj/core/api/AbstractStringAssert\n+   #95 = NameAndType        #97:#90       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #96 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #97 = Utf8               isEqualTo\n+   #98 = Methodref          #77.#99       // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #99 = NameAndType        #100:#101     // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+  #100 = Utf8               tokenUsage\n+  #101 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n+  #102 = Methodref          #19.#103      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #103 = NameAndType        #89:#104      // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #104 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #105 = Methodref          #106.#107     // org/assertj/core/api/ObjectAssert.isNull:()V\n+  #106 = Class              #108          // org/assertj/core/api/ObjectAssert\n+  #107 = NameAndType        #109:#6       // isNull:()V\n+  #108 = Utf8               org/assertj/core/api/ObjectAssert\n+  #109 = Utf8               isNull\n+  #110 = Methodref          #77.#111      // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+  #111 = NameAndType        #112:#113     // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+  #112 = Utf8               finishReason\n+  #113 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n+  #114 = Methodref          #19.#115      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #115 = NameAndType        #89:#116      // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #116 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+  #117 = Methodref          #118.#107     // org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+  #118 = Class              #119          // org/assertj/core/api/AbstractComparableAssert\n+  #119 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+  #120 = InterfaceMethodref #64.#121      // dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #121 = NameAndType        #67:#122      // generate:(Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #122 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #123 = Methodref          #124.#125     // dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #124 = Class              #126          // dev/langchain4j/agent/tool/ToolSpecification\n+  #125 = NameAndType        #127:#128     // builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #126 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n+  #127 = Utf8               builder\n+  #128 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #129 = String             #130          // foo\n+  #130 = Utf8               foo\n+  #131 = Methodref          #132.#133     // dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #132 = Class              #134          // dev/langchain4j/agent/tool/ToolSpecification$Builder\n+  #133 = NameAndType        #135:#136     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #134 = Utf8               dev/langchain4j/agent/tool/ToolSpecification$Builder\n+  #135 = Utf8               name\n+  #136 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+  #137 = Methodref          #132.#138     // dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #138 = NameAndType        #139:#140     // build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #139 = Utf8               build\n+  #140 = Utf8               ()Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #141 = Methodref          #7.#142       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #142 = NameAndType        #67:#143      // generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #143 = Utf8               (Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #144 = Methodref          #7.#145       // dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #145 = NameAndType        #67:#146      // generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #146 = Utf8               (Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #147 = Class              #148          // org/assertj/core/api/WithAssertions\n+  #148 = Utf8               org/assertj/core/api/WithAssertions\n+  #149 = Utf8               Code\n+  #150 = Utf8               LineNumberTable\n+  #151 = Utf8               LocalVariableTable\n+  #152 = Utf8               this\n+  #153 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest;\n+  #154 = Utf8               test_not_supported\n+  #155 = Utf8               model\n+  #156 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;\n+  #157 = Utf8               handler\n+  #158 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n+  #159 = Utf8               messages\n+  #160 = Utf8               Ljava/util/List;\n+  #161 = Utf8               LocalVariableTypeTable\n+  #162 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n+  #163 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #164 = Utf8               RuntimeVisibleAnnotations\n+  #165 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #166 = Utf8               test_generate\n+  #167 = Utf8               response\n+  #168 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #169 = Utf8               Ldev/langchain4j/model/chat/StreamingChatLanguageModel;\n+  #170 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #171 = Utf8               lambda$test_not_supported$1\n+  #172 = Utf8               (Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #173 = Utf8               Exceptions\n+  #174 = Class              #175          // java/lang/Throwable\n+  #175 = Utf8               java/lang/Throwable\n+  #176 = Utf8               lambda$test_not_supported$0\n+  #177 = Utf8               SourceFile\n+  #178 = Utf8               StreamingChatLanguageModelTest.java\n+  #179 = Utf8               BootstrapMethods\n+  #180 = MethodHandle       6:#181        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #181 = Methodref          #182.#183     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #182 = Class              #184          // java/lang/invoke/LambdaMetafactory\n+  #183 = NameAndType        #185:#186     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #184 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #185 = Utf8               metafactory\n+  #186 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #187 = MethodType         #6            //  ()V\n+  #188 = MethodHandle       6:#189        // REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #189 = Methodref          #19.#190      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #190 = NameAndType        #176:#172     // lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #191 = MethodHandle       6:#192        // REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #192 = Methodref          #19.#193      // dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #193 = NameAndType        #171:#172     // lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+  #194 = Utf8               InnerClasses\n+  #195 = Utf8               StreamingUpperCaseEchoModel\n+  #196 = Utf8               CollectorResponseHandler\n+  #197 = Class              #198          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #198 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #199 = Class              #200          // org/assertj/core/api/ThrowableAssert\n+  #200 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #201 = Utf8               ThrowingCallable\n+  #202 = Utf8               Builder\n+  #203 = Class              #204          // java/lang/invoke/MethodHandles$Lookup\n+  #204 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #205 = Class              #206          // java/lang/invoke/MethodHandles\n+  #206 = Utf8               java/lang/invoke/MethodHandles\n+  #207 = Utf8               Lookup\n {\n   dev.langchain4j.model.chat.StreamingChatLanguageModelTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -231,47 +231,47 @@\n             0       5     0  this   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest;\n \n   public void test_not_supported();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=4, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+         0: new           #7                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.\"<init>\":()V\n          7: astore_1\n-         8: new           #4                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+         8: new           #10                 // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n         11: dup\n-        12: invokespecial #5                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n+        12: invokespecial #12                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n         15: astore_2\n-        16: new           #6                  // class java/util/ArrayList\n+        16: new           #13                 // class java/util/ArrayList\n         19: dup\n-        20: invokespecial #7                  // Method java/util/ArrayList.\"<init>\":()V\n+        20: invokespecial #15                 // Method java/util/ArrayList.\"<init>\":()V\n         23: astore_3\n         24: aload_0\n-        25: ldc           #8                  // class java/lang/IllegalArgumentException\n-        27: invokevirtual #9                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        25: ldc           #16                 // class java/lang/IllegalArgumentException\n+        27: invokevirtual #18                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         30: aload_1\n         31: aload_3\n         32: aload_2\n-        33: invokedynamic #10,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        38: invokevirtual #11                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        41: ldc           #12                 // String Tools are currently not supported by this model\n-        43: invokevirtual #13                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        33: invokedynamic #24,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        38: invokevirtual #28                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        41: ldc           #34                 // String Tools are currently not supported by this model\n+        43: invokevirtual #36                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         46: pop\n         47: aload_0\n-        48: ldc           #8                  // class java/lang/IllegalArgumentException\n-        50: invokevirtual #9                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        48: ldc           #16                 // class java/lang/IllegalArgumentException\n+        50: invokevirtual #18                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         53: aload_1\n         54: aload_3\n         55: aload_2\n-        56: invokedynamic #14,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        61: invokevirtual #11                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        64: ldc           #12                 // String Tools are currently not supported by this model\n-        66: invokevirtual #13                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        56: invokedynamic #42,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        61: invokevirtual #28                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        64: ldc           #34                 // String Tools are currently not supported by this model\n+        66: invokevirtual #36                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         69: pop\n         70: return\n       LineNumberTable:\n         line 47: 0\n         line 48: 8\n         line 49: 16\n         line 51: 24\n@@ -288,117 +288,117 @@\n            16      55     2 handler   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n            24      47     3 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            16      55     2 handler   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n            24      47     3 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #69()\n+      0: #165()\n         org.junit.jupiter.api.Test\n \n   public void test_generate();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=5, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n+         0: new           #7                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.\"<init>\":()V\n          7: astore_1\n-         8: new           #6                  // class java/util/ArrayList\n+         8: new           #13                 // class java/util/ArrayList\n         11: dup\n-        12: invokespecial #7                  // Method java/util/ArrayList.\"<init>\":()V\n+        12: invokespecial #15                 // Method java/util/ArrayList.\"<init>\":()V\n         15: astore_2\n         16: aload_2\n-        17: new           #15                 // class dev/langchain4j/data/message/UserMessage\n+        17: new           #43                 // class dev/langchain4j/data/message/UserMessage\n         20: dup\n-        21: ldc           #16                 // String Hello\n-        23: invokespecial #17                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        26: invokeinterface #18,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        21: ldc           #45                 // String Hello\n+        23: invokespecial #47                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        26: invokeinterface #50,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         31: pop\n         32: aload_2\n-        33: new           #19                 // class dev/langchain4j/data/message/AiMessage\n+        33: new           #56                 // class dev/langchain4j/data/message/AiMessage\n         36: dup\n-        37: ldc           #20                 // String Hi\n-        39: invokespecial #21                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-        42: invokeinterface #18,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        37: ldc           #58                 // String Hi\n+        39: invokespecial #60                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        42: invokeinterface #50,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         47: pop\n         48: aload_2\n-        49: new           #15                 // class dev/langchain4j/data/message/UserMessage\n+        49: new           #43                 // class dev/langchain4j/data/message/UserMessage\n         52: dup\n-        53: ldc           #22                 // String How are you?\n-        55: invokespecial #17                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        58: invokeinterface #18,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        53: ldc           #61                 // String How are you?\n+        55: invokespecial #47                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        58: invokeinterface #50,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         63: pop\n-        64: new           #4                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+        64: new           #10                 // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n         67: dup\n-        68: invokespecial #5                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n+        68: invokespecial #12                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n         71: astore_3\n         72: aload_1\n         73: aload_2\n         74: aload_3\n-        75: invokeinterface #23,  3           // InterfaceMethod dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+        75: invokeinterface #63,  3           // InterfaceMethod dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n         80: aload_3\n-        81: invokevirtual #24                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:()Ljava/util/List;\n+        81: invokevirtual #69                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:()Ljava/util/List;\n         84: iconst_0\n-        85: invokeinterface #25,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        90: checkcast     #26                 // class dev/langchain4j/model/output/Response\n+        85: invokeinterface #73,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        90: checkcast     #77                 // class dev/langchain4j/model/output/Response\n         93: astore        4\n         95: aload_0\n         96: aload         4\n-        98: invokevirtual #27                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-       101: checkcast     #19                 // class dev/langchain4j/data/message/AiMessage\n-       104: invokevirtual #28                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       107: invokevirtual #29                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       110: ldc           #30                 // String HOW ARE YOU?\n-       112: invokevirtual #31                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        98: invokevirtual #79                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+       101: checkcast     #56                 // class dev/langchain4j/data/message/AiMessage\n+       104: invokevirtual #83                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       107: invokevirtual #87                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       110: ldc           #91                 // String HOW ARE YOU?\n+       112: invokevirtual #93                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        115: pop\n        116: aload_0\n        117: aload         4\n-       119: invokevirtual #32                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-       122: invokevirtual #33                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       125: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n+       119: invokevirtual #98                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+       122: invokevirtual #102                // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       125: invokevirtual #105                // Method org/assertj/core/api/ObjectAssert.isNull:()V\n        128: aload_0\n        129: aload         4\n-       131: invokevirtual #35                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-       134: invokevirtual #36                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       137: invokevirtual #37                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n-       140: new           #4                  // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n+       131: invokevirtual #110                // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+       134: invokevirtual #114                // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       137: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+       140: new           #10                 // class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler\n        143: dup\n-       144: invokespecial #5                  // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n+       144: invokespecial #12                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.\"<init>\":()V\n        147: astore_2\n        148: aload_1\n-       149: ldc           #22                 // String How are you?\n+       149: ldc           #61                 // String How are you?\n        151: aload_2\n-       152: invokeinterface #38,  3           // InterfaceMethod dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+       152: invokeinterface #120,  3          // InterfaceMethod dev/langchain4j/model/chat/StreamingChatLanguageModel.generate:(Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n        157: aload_2\n-       158: invokevirtual #24                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:()Ljava/util/List;\n+       158: invokevirtual #69                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler.responses:()Ljava/util/List;\n        161: iconst_0\n-       162: invokeinterface #25,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-       167: checkcast     #26                 // class dev/langchain4j/model/output/Response\n+       162: invokeinterface #73,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+       167: checkcast     #77                 // class dev/langchain4j/model/output/Response\n        170: astore_3\n        171: aload_0\n        172: aload_3\n-       173: invokevirtual #27                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-       176: checkcast     #19                 // class dev/langchain4j/data/message/AiMessage\n-       179: invokevirtual #28                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       182: invokevirtual #29                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       185: ldc           #30                 // String HOW ARE YOU?\n-       187: invokevirtual #31                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       173: invokevirtual #79                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+       176: checkcast     #56                 // class dev/langchain4j/data/message/AiMessage\n+       179: invokevirtual #83                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       182: invokevirtual #87                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       185: ldc           #91                 // String HOW ARE YOU?\n+       187: invokevirtual #93                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        190: pop\n        191: aload_0\n        192: aload_3\n-       193: invokevirtual #32                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-       196: invokevirtual #33                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       199: invokevirtual #34                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n+       193: invokevirtual #98                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+       196: invokevirtual #102                // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       199: invokevirtual #105                // Method org/assertj/core/api/ObjectAssert.isNull:()V\n        202: aload_0\n        203: aload_3\n-       204: invokevirtual #35                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-       207: invokevirtual #36                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       210: invokevirtual #37                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+       204: invokevirtual #110                // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+       207: invokevirtual #114                // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       210: invokevirtual #117                // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n        213: return\n       LineNumberTable:\n         line 62: 0\n         line 65: 8\n         line 66: 16\n         line 67: 32\n         line 68: 48\n@@ -428,30 +428,30 @@\n         Start  Length  Slot  Name   Signature\n            16     124     2 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            72      68     3 handler   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n            95      45     4 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n           148      65     2 handler   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler<Ldev/langchain4j/data/message/AiMessage;>;\n           171      42     3 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #69()\n+      0: #165()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_not_supported$1(dev.langchain4j.model.chat.StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel, java.util.List, dev.langchain4j.model.chat.StreamingChatLanguageModelTest$CollectorResponseHandler) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=3, args_size=3\n          0: aload_0\n          1: aload_1\n-         2: invokestatic  #39                 // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-         5: ldc           #40                 // String foo\n-         7: invokevirtual #41                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n-        10: invokevirtual #42                 // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n+         2: invokestatic  #123                // Method dev/langchain4j/agent/tool/ToolSpecification.builder:()Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+         5: ldc           #129                // String foo\n+         7: invokevirtual #131                // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolSpecification$Builder;\n+        10: invokevirtual #137                // Method dev/langchain4j/agent/tool/ToolSpecification$Builder.build:()Ldev/langchain4j/agent/tool/ToolSpecification;\n         13: aload_2\n-        14: invokevirtual #43                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+        14: invokevirtual #141                // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;Ldev/langchain4j/model/StreamingResponseHandler;)V\n         17: return\n       LineNumberTable:\n         line 56: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      18     0 model   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;\n             0      18     1 messages   Ljava/util/List;\n@@ -462,41 +462,41 @@\n   private static void lambda$test_not_supported$0(dev.langchain4j.model.chat.StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel, java.util.List, dev.langchain4j.model.chat.StreamingChatLanguageModelTest$CollectorResponseHandler) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=3, args_size=3\n          0: aload_0\n          1: aload_1\n-         2: new           #6                  // class java/util/ArrayList\n+         2: new           #13                 // class java/util/ArrayList\n          5: dup\n-         6: invokespecial #7                  // Method java/util/ArrayList.\"<init>\":()V\n+         6: invokespecial #15                 // Method java/util/ArrayList.\"<init>\":()V\n          9: aload_2\n-        10: invokevirtual #44                 // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+        10: invokevirtual #144                // Method dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel.generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/model/StreamingResponseHandler;)V\n         13: return\n       LineNumberTable:\n         line 52: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      14     0 model   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;\n             0      14     1 messages   Ljava/util/List;\n             0      14     2 handler   Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"StreamingChatLanguageModelTest.java\"\n-InnerClasses:\n-  public static final #48= #4 of #45;     // CollectorResponseHandler=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-  public static #50= #2 of #45;           // StreamingUpperCaseEchoModel=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n-  public static #144= #143 of #196;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #184= #129 of #126; // Builder=class dev/langchain4j/agent/tool/ToolSpecification$Builder of class dev/langchain4j/agent/tool/ToolSpecification\n-  public static final #202= #201 of #205; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #89 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #180 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #90 ()V\n-      #91 REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-      #90 ()V\n-  1: #89 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #187 ()V\n+      #188 REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$0:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+      #187 ()V\n+  1: #180 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #90 ()V\n-      #98 REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n-      #90 ()V\n+      #187 ()V\n+      #191 REF_invokeStatic dev/langchain4j/model/chat/StreamingChatLanguageModelTest.lambda$test_not_supported$1:(Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel;Ljava/util/List;Ldev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler;)V\n+      #187 ()V\n+InnerClasses:\n+  public static #195= #7 of #19;          // StreamingUpperCaseEchoModel=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$StreamingUpperCaseEchoModel of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  public static final #196= #10 of #19;   // CollectorResponseHandler=class dev/langchain4j/model/chat/StreamingChatLanguageModelTest$CollectorResponseHandler of class dev/langchain4j/model/chat/StreamingChatLanguageModelTest\n+  public static #201= #197 of #199;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #202= #132 of #124; // Builder=class dev/langchain4j/agent/tool/ToolSpecification$Builder of class dev/langchain4j/agent/tool/ToolSpecification\n+  public static final #207= #203 of #205; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/chat/TestStreamingResponseHandler.class", "source2": "dev/langchain4j/model/chat/TestStreamingResponseHandler.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,142 +1,141 @@\n-  SHA-256 checksum 4660ad0f3fa8e886332fbdbdf6a76a49bd3a2ea535d30abdd4e4ae6999bd64db\n+  SHA-256 checksum 5e5867d3df7728145839a3e35b2706753ddb5fc033d2d8b9a13039951b5f7fee\n   Compiled from \"TestStreamingResponseHandler.java\"\n public class dev.langchain4j.model.chat.TestStreamingResponseHandler<T extends java.lang.Object> extends java.lang.Object implements dev.langchain4j.model.StreamingResponseHandler<T>\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #25                         // dev/langchain4j/model/chat/TestStreamingResponseHandler\n-  super_class: #26                        // java/lang/Object\n+  this_class: #11                         // dev/langchain4j/model/chat/TestStreamingResponseHandler\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 5, attributes: 2\n Constant pool:\n-    #1 = Methodref          #26.#65       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #66           // java/util/concurrent/CompletableFuture\n-    #3 = Methodref          #2.#65        // java/util/concurrent/CompletableFuture.\"<init>\":()V\n-    #4 = Fieldref           #25.#67       // dev/langchain4j/model/chat/TestStreamingResponseHandler.futureResponse:Ljava/util/concurrent/CompletableFuture;\n-    #5 = Fieldref           #68.#69       // java/lang/System.out:Ljava/io/PrintStream;\n-    #6 = Class              #70           // java/lang/StringBuilder\n-    #7 = Methodref          #6.#65        // java/lang/StringBuilder.\"<init>\":()V\n-    #8 = String             #71           // onNext: \\'\n-    #9 = Methodref          #6.#72        // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #10 = String             #73           // \\'\n-   #11 = Methodref          #6.#74        // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #12 = Methodref          #75.#76       // java/io/PrintStream.println:(Ljava/lang/String;)V\n-   #13 = String             #77           // onComplete: \\'\n-   #14 = Methodref          #6.#78        // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #15 = Methodref          #2.#79        // java/util/concurrent/CompletableFuture.complete:(Ljava/lang/Object;)Z\n-   #16 = Methodref          #2.#80        // java/util/concurrent/CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z\n-   #17 = Long               30l\n-   #19 = Fieldref           #81.#82       // java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;\n-   #20 = Methodref          #2.#83        // java/util/concurrent/CompletableFuture.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n-   #21 = Class              #84           // dev/langchain4j/model/output/Response\n-   #22 = Class              #85           // java/lang/Exception\n-   #23 = Class              #86           // java/lang/RuntimeException\n-   #24 = Methodref          #23.#87       // java/lang/RuntimeException.\"<init>\":(Ljava/lang/Throwable;)V\n-   #25 = Class              #88           // dev/langchain4j/model/chat/TestStreamingResponseHandler\n-   #26 = Class              #89           // java/lang/Object\n-   #27 = Class              #90           // dev/langchain4j/model/StreamingResponseHandler\n-   #28 = Utf8               futureResponse\n-   #29 = Utf8               Ljava/util/concurrent/CompletableFuture;\n-   #30 = Utf8               Signature\n-   #31 = Utf8               Ljava/util/concurrent/CompletableFuture<Ldev/langchain4j/model/output/Response<TT;>;>;\n-   #32 = Utf8               <init>\n-   #33 = Utf8               ()V\n-   #34 = Utf8               Code\n-   #35 = Utf8               LineNumberTable\n-   #36 = Utf8               LocalVariableTable\n-   #37 = Utf8               this\n-   #38 = Utf8               Ldev/langchain4j/model/chat/TestStreamingResponseHandler;\n-   #39 = Utf8               LocalVariableTypeTable\n-   #40 = Utf8               Ldev/langchain4j/model/chat/TestStreamingResponseHandler<TT;>;\n-   #41 = Utf8               onNext\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/util/concurrent/CompletableFuture\n+    #8 = Utf8               java/util/concurrent/CompletableFuture\n+    #9 = Methodref          #7.#3         // java/util/concurrent/CompletableFuture.\"<init>\":()V\n+   #10 = Fieldref           #11.#12       // dev/langchain4j/model/chat/TestStreamingResponseHandler.futureResponse:Ljava/util/concurrent/CompletableFuture;\n+   #11 = Class              #13           // dev/langchain4j/model/chat/TestStreamingResponseHandler\n+   #12 = NameAndType        #14:#15       // futureResponse:Ljava/util/concurrent/CompletableFuture;\n+   #13 = Utf8               dev/langchain4j/model/chat/TestStreamingResponseHandler\n+   #14 = Utf8               futureResponse\n+   #15 = Utf8               Ljava/util/concurrent/CompletableFuture;\n+   #16 = Fieldref           #17.#18       // java/lang/System.out:Ljava/io/PrintStream;\n+   #17 = Class              #19           // java/lang/System\n+   #18 = NameAndType        #20:#21       // out:Ljava/io/PrintStream;\n+   #19 = Utf8               java/lang/System\n+   #20 = Utf8               out\n+   #21 = Utf8               Ljava/io/PrintStream;\n+   #22 = Class              #23           // java/lang/StringBuilder\n+   #23 = Utf8               java/lang/StringBuilder\n+   #24 = Methodref          #22.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #25 = String             #26           // onNext: \\'\n+   #26 = Utf8               onNext: \\'\n+   #27 = Methodref          #22.#28       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #28 = NameAndType        #29:#30       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #29 = Utf8               append\n+   #30 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #31 = String             #32           // \\'\n+   #32 = Utf8               \\'\n+   #33 = Methodref          #22.#34       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+   #34 = NameAndType        #35:#36       // toString:()Ljava/lang/String;\n+   #35 = Utf8               toString\n+   #36 = Utf8               ()Ljava/lang/String;\n+   #37 = Methodref          #38.#39       // java/io/PrintStream.println:(Ljava/lang/String;)V\n+   #38 = Class              #40           // java/io/PrintStream\n+   #39 = NameAndType        #41:#42       // println:(Ljava/lang/String;)V\n+   #40 = Utf8               java/io/PrintStream\n+   #41 = Utf8               println\n    #42 = Utf8               (Ljava/lang/String;)V\n-   #43 = Utf8               token\n-   #44 = Utf8               Ljava/lang/String;\n-   #45 = Utf8               onComplete\n-   #46 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n-   #47 = Utf8               response\n-   #48 = Utf8               Ldev/langchain4j/model/output/Response;\n-   #49 = Utf8               Ldev/langchain4j/model/output/Response<TT;>;\n-   #50 = Utf8               (Ldev/langchain4j/model/output/Response<TT;>;)V\n-   #51 = Utf8               onError\n-   #52 = Utf8               (Ljava/lang/Throwable;)V\n-   #53 = Utf8               error\n-   #54 = Utf8               Ljava/lang/Throwable;\n-   #55 = Utf8               get\n-   #56 = Utf8               ()Ldev/langchain4j/model/output/Response;\n-   #57 = Utf8               e\n-   #58 = Utf8               Ljava/lang/Exception;\n-   #59 = Utf8               StackMapTable\n-   #60 = Class              #85           // java/lang/Exception\n-   #61 = Utf8               ()Ldev/langchain4j/model/output/Response<TT;>;\n-   #62 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n-   #63 = Utf8               SourceFile\n-   #64 = Utf8               TestStreamingResponseHandler.java\n-   #65 = NameAndType        #32:#33       // \"<init>\":()V\n-   #66 = Utf8               java/util/concurrent/CompletableFuture\n-   #67 = NameAndType        #28:#29       // futureResponse:Ljava/util/concurrent/CompletableFuture;\n-   #68 = Class              #91           // java/lang/System\n-   #69 = NameAndType        #92:#93       // out:Ljava/io/PrintStream;\n-   #70 = Utf8               java/lang/StringBuilder\n-   #71 = Utf8               onNext: \\'\n-   #72 = NameAndType        #94:#95       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #73 = Utf8               \\'\n-   #74 = NameAndType        #96:#97       // toString:()Ljava/lang/String;\n-   #75 = Class              #98           // java/io/PrintStream\n-   #76 = NameAndType        #99:#42       // println:(Ljava/lang/String;)V\n-   #77 = Utf8               onComplete: \\'\n-   #78 = NameAndType        #94:#100      // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #79 = NameAndType        #101:#102     // complete:(Ljava/lang/Object;)Z\n-   #80 = NameAndType        #103:#104     // completeExceptionally:(Ljava/lang/Throwable;)Z\n-   #81 = Class              #105          // java/util/concurrent/TimeUnit\n-   #82 = NameAndType        #106:#107     // SECONDS:Ljava/util/concurrent/TimeUnit;\n-   #83 = NameAndType        #55:#108      // get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n-   #84 = Utf8               dev/langchain4j/model/output/Response\n-   #85 = Utf8               java/lang/Exception\n-   #86 = Utf8               java/lang/RuntimeException\n-   #87 = NameAndType        #32:#52       // \"<init>\":(Ljava/lang/Throwable;)V\n-   #88 = Utf8               dev/langchain4j/model/chat/TestStreamingResponseHandler\n-   #89 = Utf8               java/lang/Object\n-   #90 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-   #91 = Utf8               java/lang/System\n-   #92 = Utf8               out\n-   #93 = Utf8               Ljava/io/PrintStream;\n-   #94 = Utf8               append\n-   #95 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #96 = Utf8               toString\n-   #97 = Utf8               ()Ljava/lang/String;\n-   #98 = Utf8               java/io/PrintStream\n-   #99 = Utf8               println\n-  #100 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #101 = Utf8               complete\n-  #102 = Utf8               (Ljava/lang/Object;)Z\n-  #103 = Utf8               completeExceptionally\n-  #104 = Utf8               (Ljava/lang/Throwable;)Z\n-  #105 = Utf8               java/util/concurrent/TimeUnit\n-  #106 = Utf8               SECONDS\n-  #107 = Utf8               Ljava/util/concurrent/TimeUnit;\n-  #108 = Utf8               (JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n+   #43 = String             #44           // onComplete: \\'\n+   #44 = Utf8               onComplete: \\'\n+   #45 = Methodref          #22.#46       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #46 = NameAndType        #29:#47       // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #47 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #48 = Methodref          #7.#49        // java/util/concurrent/CompletableFuture.complete:(Ljava/lang/Object;)Z\n+   #49 = NameAndType        #50:#51       // complete:(Ljava/lang/Object;)Z\n+   #50 = Utf8               complete\n+   #51 = Utf8               (Ljava/lang/Object;)Z\n+   #52 = Methodref          #7.#53        // java/util/concurrent/CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z\n+   #53 = NameAndType        #54:#55       // completeExceptionally:(Ljava/lang/Throwable;)Z\n+   #54 = Utf8               completeExceptionally\n+   #55 = Utf8               (Ljava/lang/Throwable;)Z\n+   #56 = Long               30l\n+   #58 = Fieldref           #59.#60       // java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;\n+   #59 = Class              #61           // java/util/concurrent/TimeUnit\n+   #60 = NameAndType        #62:#63       // SECONDS:Ljava/util/concurrent/TimeUnit;\n+   #61 = Utf8               java/util/concurrent/TimeUnit\n+   #62 = Utf8               SECONDS\n+   #63 = Utf8               Ljava/util/concurrent/TimeUnit;\n+   #64 = Methodref          #7.#65        // java/util/concurrent/CompletableFuture.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n+   #65 = NameAndType        #66:#67       // get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n+   #66 = Utf8               get\n+   #67 = Utf8               (JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n+   #68 = Class              #69           // dev/langchain4j/model/output/Response\n+   #69 = Utf8               dev/langchain4j/model/output/Response\n+   #70 = Class              #71           // java/lang/Exception\n+   #71 = Utf8               java/lang/Exception\n+   #72 = Class              #73           // java/lang/RuntimeException\n+   #73 = Utf8               java/lang/RuntimeException\n+   #74 = Methodref          #72.#75       // java/lang/RuntimeException.\"<init>\":(Ljava/lang/Throwable;)V\n+   #75 = NameAndType        #5:#76        // \"<init>\":(Ljava/lang/Throwable;)V\n+   #76 = Utf8               (Ljava/lang/Throwable;)V\n+   #77 = Class              #78           // dev/langchain4j/model/StreamingResponseHandler\n+   #78 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+   #79 = Utf8               Signature\n+   #80 = Utf8               Ljava/util/concurrent/CompletableFuture<Ldev/langchain4j/model/output/Response<TT;>;>;\n+   #81 = Utf8               Code\n+   #82 = Utf8               LineNumberTable\n+   #83 = Utf8               LocalVariableTable\n+   #84 = Utf8               this\n+   #85 = Utf8               Ldev/langchain4j/model/chat/TestStreamingResponseHandler;\n+   #86 = Utf8               LocalVariableTypeTable\n+   #87 = Utf8               Ldev/langchain4j/model/chat/TestStreamingResponseHandler<TT;>;\n+   #88 = Utf8               onNext\n+   #89 = Utf8               token\n+   #90 = Utf8               Ljava/lang/String;\n+   #91 = Utf8               onComplete\n+   #92 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+   #93 = Utf8               response\n+   #94 = Utf8               Ldev/langchain4j/model/output/Response;\n+   #95 = Utf8               Ldev/langchain4j/model/output/Response<TT;>;\n+   #96 = Utf8               (Ldev/langchain4j/model/output/Response<TT;>;)V\n+   #97 = Utf8               onError\n+   #98 = Utf8               error\n+   #99 = Utf8               Ljava/lang/Throwable;\n+  #100 = Utf8               ()Ldev/langchain4j/model/output/Response;\n+  #101 = Utf8               e\n+  #102 = Utf8               Ljava/lang/Exception;\n+  #103 = Utf8               StackMapTable\n+  #104 = Utf8               ()Ldev/langchain4j/model/output/Response<TT;>;\n+  #105 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+  #106 = Utf8               SourceFile\n+  #107 = Utf8               TestStreamingResponseHandler.java\n {\n   private final java.util.concurrent.CompletableFuture<dev.langchain4j.model.output.Response<T>> futureResponse;\n     descriptor: Ljava/util/concurrent/CompletableFuture;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #31                          // Ljava/util/concurrent/CompletableFuture<Ldev/langchain4j/model/output/Response<TT;>;>;\n+    Signature: #80                          // Ljava/util/concurrent/CompletableFuture<Ldev/langchain4j/model/output/Response<TT;>;>;\n \n   public dev.langchain4j.model.chat.TestStreamingResponseHandler();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n-         5: new           #2                  // class java/util/concurrent/CompletableFuture\n+         5: new           #7                  // class java/util/concurrent/CompletableFuture\n          8: dup\n-         9: invokespecial #3                  // Method java/util/concurrent/CompletableFuture.\"<init>\":()V\n-        12: putfield      #4                  // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n+         9: invokespecial #9                  // Method java/util/concurrent/CompletableFuture.\"<init>\":()V\n+        12: putfield      #10                 // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n         15: return\n       LineNumberTable:\n         line 10: 0\n         line 12: 4\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      16     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler;\n@@ -145,26 +144,26 @@\n             0      16     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler<TT;>;\n \n   public void onNext(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n-         0: getstatic     #5                  // Field java/lang/System.out:Ljava/io/PrintStream;\n-         3: new           #6                  // class java/lang/StringBuilder\n+         0: getstatic     #16                 // Field java/lang/System.out:Ljava/io/PrintStream;\n+         3: new           #22                 // class java/lang/StringBuilder\n          6: dup\n-         7: invokespecial #7                  // Method java/lang/StringBuilder.\"<init>\":()V\n-        10: ldc           #8                  // String onNext: \\'\n-        12: invokevirtual #9                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         7: invokespecial #24                 // Method java/lang/StringBuilder.\"<init>\":()V\n+        10: ldc           #25                 // String onNext: \\'\n+        12: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         15: aload_1\n-        16: invokevirtual #9                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        19: ldc           #10                 // String \\'\n-        21: invokevirtual #9                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        24: invokevirtual #11                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        27: invokevirtual #12                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V\n+        16: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        19: ldc           #31                 // String \\'\n+        21: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        24: invokevirtual #33                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        27: invokevirtual #37                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V\n         30: return\n       LineNumberTable:\n         line 16: 0\n         line 17: 30\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      31     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler;\n@@ -174,55 +173,55 @@\n             0      31     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler<TT;>;\n \n   public void onComplete(dev.langchain4j.model.output.Response<T>);\n     descriptor: (Ldev/langchain4j/model/output/Response;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n-         0: getstatic     #5                  // Field java/lang/System.out:Ljava/io/PrintStream;\n-         3: new           #6                  // class java/lang/StringBuilder\n+         0: getstatic     #16                 // Field java/lang/System.out:Ljava/io/PrintStream;\n+         3: new           #22                 // class java/lang/StringBuilder\n          6: dup\n-         7: invokespecial #7                  // Method java/lang/StringBuilder.\"<init>\":()V\n-        10: ldc           #13                 // String onComplete: \\'\n-        12: invokevirtual #9                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         7: invokespecial #24                 // Method java/lang/StringBuilder.\"<init>\":()V\n+        10: ldc           #43                 // String onComplete: \\'\n+        12: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         15: aload_1\n-        16: invokevirtual #14                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        19: ldc           #10                 // String \\'\n-        21: invokevirtual #9                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        24: invokevirtual #11                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        27: invokevirtual #12                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V\n+        16: invokevirtual #45                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        19: ldc           #31                 // String \\'\n+        21: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        24: invokevirtual #33                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        27: invokevirtual #37                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V\n         30: aload_0\n-        31: getfield      #4                  // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n+        31: getfield      #10                 // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n         34: aload_1\n-        35: invokevirtual #15                 // Method java/util/concurrent/CompletableFuture.complete:(Ljava/lang/Object;)Z\n+        35: invokevirtual #48                 // Method java/util/concurrent/CompletableFuture.complete:(Ljava/lang/Object;)Z\n         38: pop\n         39: return\n       LineNumberTable:\n         line 21: 0\n         line 22: 30\n         line 23: 39\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      40     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler;\n             0      40     1 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      40     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler<TT;>;\n             0      40     1 response   Ldev/langchain4j/model/output/Response<TT;>;\n-    Signature: #50                          // (Ldev/langchain4j/model/output/Response<TT;>;)V\n+    Signature: #96                          // (Ldev/langchain4j/model/output/Response<TT;>;)V\n \n   public void onError(java.lang.Throwable);\n     descriptor: (Ljava/lang/Throwable;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #4                  // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n+         1: getfield      #10                 // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n          4: aload_1\n-         5: invokevirtual #16                 // Method java/util/concurrent/CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z\n+         5: invokevirtual #52                 // Method java/util/concurrent/CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z\n          8: pop\n          9: return\n       LineNumberTable:\n         line 27: 0\n         line 28: 9\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -234,25 +233,25 @@\n \n   public dev.langchain4j.model.output.Response<T> get();\n     descriptor: ()Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n          0: aload_0\n-         1: getfield      #4                  // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n-         4: ldc2_w        #17                 // long 30l\n-         7: getstatic     #19                 // Field java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;\n-        10: invokevirtual #20                 // Method java/util/concurrent/CompletableFuture.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n-        13: checkcast     #21                 // class dev/langchain4j/model/output/Response\n+         1: getfield      #10                 // Field futureResponse:Ljava/util/concurrent/CompletableFuture;\n+         4: ldc2_w        #56                 // long 30l\n+         7: getstatic     #58                 // Field java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;\n+        10: invokevirtual #64                 // Method java/util/concurrent/CompletableFuture.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;\n+        13: checkcast     #68                 // class dev/langchain4j/model/output/Response\n         16: areturn\n         17: astore_1\n-        18: new           #23                 // class java/lang/RuntimeException\n+        18: new           #72                 // class java/lang/RuntimeException\n         21: dup\n         22: aload_1\n-        23: invokespecial #24                 // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/Throwable;)V\n+        23: invokespecial #74                 // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/Throwable;)V\n         26: athrow\n       Exception table:\n          from    to  target type\n              0    16    17   Class java/lang/Exception\n       LineNumberTable:\n         line 32: 0\n         line 33: 17\n@@ -263,11 +262,11 @@\n             0      27     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      27     0  this   Ldev/langchain4j/model/chat/TestStreamingResponseHandler<TT;>;\n       StackMapTable: number_of_entries = 1\n         frame_type = 81 /* same_locals_1_stack_item */\n           stack = [ class java/lang/Exception ]\n-    Signature: #61                          // ()Ldev/langchain4j/model/output/Response<TT;>;\n+    Signature: #104                         // ()Ldev/langchain4j/model/output/Response<TT;>;\n }\n-Signature: #62                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+Signature: #105                         // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n SourceFile: \"TestStreamingResponseHandler.java\"\n"}]}, {"source1": "dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class", "source2": "dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,105 +1,105 @@\n-  SHA-256 checksum e477327d744c996f6ab6d2a0801f81df146acd0c1837be577001c85ae0efc5c1\n+  SHA-256 checksum 83c16af0f91cc21bc641a710488df1394c6c824382622f5e1103e941bbda8cf0\n   Compiled from \"TokenCountEstimatorTest.java\"\n public class dev.langchain4j.model.chat.TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator implements dev.langchain4j.model.chat.TokenCountEstimator\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #9                          // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  super_class: #10                        // java/lang/Object\n+  this_class: #43                         // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 3\n Constant pool:\n-   #1 = Methodref          #10.#35        // java/lang/Object.\"<init>\":()V\n-   #2 = InterfaceMethodref #36.#37        // java/util/List.stream:()Ljava/util/stream/Stream;\n-   #3 = InvokeDynamic      #0:#43         // #0:applyAsInt:()Ljava/util/function/ToIntFunction;\n-   #4 = InterfaceMethodref #44.#45        // java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-   #5 = InterfaceMethodref #46.#47        // java/util/stream/IntStream.sum:()I\n-   #6 = InterfaceMethodref #48.#49        // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-   #7 = String             #50            // \\\\s+\n-   #8 = Methodref          #51.#52        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n-   #9 = Class              #54            // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #10 = Class              #55            // java/lang/Object\n-  #11 = Class              #56            // dev/langchain4j/model/chat/TokenCountEstimator\n-  #12 = Utf8               <init>\n-  #13 = Utf8               ()V\n-  #14 = Utf8               Code\n-  #15 = Utf8               LineNumberTable\n-  #16 = Utf8               LocalVariableTable\n-  #17 = Utf8               this\n-  #18 = Utf8               WhitespaceSplitTokenCountEstimator\n-  #19 = Utf8               InnerClasses\n-  #20 = Utf8               Ldev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n-  #21 = Utf8               estimateTokenCount\n-  #22 = Utf8               (Ljava/util/List;)I\n-  #23 = Utf8               messages\n-  #24 = Utf8               Ljava/util/List;\n-  #25 = Utf8               LocalVariableTypeTable\n-  #26 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #27 = Utf8               Signature\n-  #28 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)I\n-  #29 = Utf8               lambda$estimateTokenCount$0\n-  #30 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)I\n-  #31 = Utf8               message\n-  #32 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-  #33 = Utf8               SourceFile\n-  #34 = Utf8               TokenCountEstimatorTest.java\n-  #35 = NameAndType        #12:#13        // \"<init>\":()V\n-  #36 = Class              #57            // java/util/List\n-  #37 = NameAndType        #58:#59        // stream:()Ljava/util/stream/Stream;\n-  #38 = Utf8               BootstrapMethods\n-  #39 = MethodHandle       6:#60          // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #40 = MethodType         #61            //  (Ljava/lang/Object;)I\n-  #41 = MethodHandle       6:#62          // REF_invokeStatic dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n-  #42 = MethodType         #30            //  (Ldev/langchain4j/data/message/ChatMessage;)I\n-  #43 = NameAndType        #63:#64        // applyAsInt:()Ljava/util/function/ToIntFunction;\n-  #44 = Class              #65            // java/util/stream/Stream\n-  #45 = NameAndType        #66:#67        // mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-  #46 = Class              #68            // java/util/stream/IntStream\n-  #47 = NameAndType        #69:#70        // sum:()I\n-  #48 = Class              #71            // dev/langchain4j/data/message/ChatMessage\n-  #49 = NameAndType        #72:#73        // text:()Ljava/lang/String;\n-  #50 = Utf8               \\\\s+\n-  #51 = Class              #74            // java/lang/String\n-  #52 = NameAndType        #75:#76        // split:(Ljava/lang/String;)[Ljava/lang/String;\n-  #53 = Class              #77            // dev/langchain4j/model/chat/TokenCountEstimatorTest\n-  #54 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #55 = Utf8               java/lang/Object\n-  #56 = Utf8               dev/langchain4j/model/chat/TokenCountEstimator\n-  #57 = Utf8               java/util/List\n-  #58 = Utf8               stream\n-  #59 = Utf8               ()Ljava/util/stream/Stream;\n-  #60 = Methodref          #78.#79        // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #61 = Utf8               (Ljava/lang/Object;)I\n-  #62 = Methodref          #9.#80         // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n-  #63 = Utf8               applyAsInt\n-  #64 = Utf8               ()Ljava/util/function/ToIntFunction;\n-  #65 = Utf8               java/util/stream/Stream\n-  #66 = Utf8               mapToInt\n-  #67 = Utf8               (Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-  #68 = Utf8               java/util/stream/IntStream\n-  #69 = Utf8               sum\n-  #70 = Utf8               ()I\n-  #71 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #72 = Utf8               text\n-  #73 = Utf8               ()Ljava/lang/String;\n-  #74 = Utf8               java/lang/String\n-  #75 = Utf8               split\n-  #76 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n-  #77 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest\n-  #78 = Class              #81            // java/lang/invoke/LambdaMetafactory\n-  #79 = NameAndType        #82:#85        // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #80 = NameAndType        #29:#30        // lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n-  #81 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #82 = Utf8               metafactory\n-  #83 = Class              #87            // java/lang/invoke/MethodHandles$Lookup\n-  #84 = Utf8               Lookup\n-  #85 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #86 = Class              #88            // java/lang/invoke/MethodHandles\n-  #87 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #88 = Utf8               java/lang/invoke/MethodHandles\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = InterfaceMethodref #8.#9          // java/util/List.stream:()Ljava/util/stream/Stream;\n+   #8 = Class              #10            // java/util/List\n+   #9 = NameAndType        #11:#12        // stream:()Ljava/util/stream/Stream;\n+  #10 = Utf8               java/util/List\n+  #11 = Utf8               stream\n+  #12 = Utf8               ()Ljava/util/stream/Stream;\n+  #13 = InvokeDynamic      #0:#14         // #0:applyAsInt:()Ljava/util/function/ToIntFunction;\n+  #14 = NameAndType        #15:#16        // applyAsInt:()Ljava/util/function/ToIntFunction;\n+  #15 = Utf8               applyAsInt\n+  #16 = Utf8               ()Ljava/util/function/ToIntFunction;\n+  #17 = InterfaceMethodref #18.#19        // java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+  #18 = Class              #20            // java/util/stream/Stream\n+  #19 = NameAndType        #21:#22        // mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+  #20 = Utf8               java/util/stream/Stream\n+  #21 = Utf8               mapToInt\n+  #22 = Utf8               (Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+  #23 = InterfaceMethodref #24.#25        // java/util/stream/IntStream.sum:()I\n+  #24 = Class              #26            // java/util/stream/IntStream\n+  #25 = NameAndType        #27:#28        // sum:()I\n+  #26 = Utf8               java/util/stream/IntStream\n+  #27 = Utf8               sum\n+  #28 = Utf8               ()I\n+  #29 = InterfaceMethodref #30.#31        // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+  #30 = Class              #32            // dev/langchain4j/data/message/ChatMessage\n+  #31 = NameAndType        #33:#34        // text:()Ljava/lang/String;\n+  #32 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #33 = Utf8               text\n+  #34 = Utf8               ()Ljava/lang/String;\n+  #35 = String             #36            // \\\\s+\n+  #36 = Utf8               \\\\s+\n+  #37 = Methodref          #38.#39        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #38 = Class              #40            // java/lang/String\n+  #39 = NameAndType        #41:#42        // split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #40 = Utf8               java/lang/String\n+  #41 = Utf8               split\n+  #42 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n+  #43 = Class              #44            // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  #44 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  #45 = Class              #46            // dev/langchain4j/model/chat/TokenCountEstimator\n+  #46 = Utf8               dev/langchain4j/model/chat/TokenCountEstimator\n+  #47 = Utf8               Code\n+  #48 = Utf8               LineNumberTable\n+  #49 = Utf8               LocalVariableTable\n+  #50 = Utf8               this\n+  #51 = Utf8               Ldev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n+  #52 = Utf8               estimateTokenCount\n+  #53 = Utf8               (Ljava/util/List;)I\n+  #54 = Utf8               messages\n+  #55 = Utf8               Ljava/util/List;\n+  #56 = Utf8               LocalVariableTypeTable\n+  #57 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #58 = Utf8               Signature\n+  #59 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)I\n+  #60 = Utf8               lambda$estimateTokenCount$0\n+  #61 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)I\n+  #62 = Utf8               message\n+  #63 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #64 = Utf8               SourceFile\n+  #65 = Utf8               TokenCountEstimatorTest.java\n+  #66 = Utf8               BootstrapMethods\n+  #67 = MethodHandle       6:#68          // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #68 = Methodref          #69.#70        // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #69 = Class              #71            // java/lang/invoke/LambdaMetafactory\n+  #70 = NameAndType        #72:#73        // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #71 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #72 = Utf8               metafactory\n+  #73 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #74 = MethodType         #75            //  (Ljava/lang/Object;)I\n+  #75 = Utf8               (Ljava/lang/Object;)I\n+  #76 = MethodHandle       6:#77          // REF_invokeStatic dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n+  #77 = Methodref          #43.#78        // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n+  #78 = NameAndType        #60:#61        // lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n+  #79 = MethodType         #61            //  (Ldev/langchain4j/data/message/ChatMessage;)I\n+  #80 = Utf8               InnerClasses\n+  #81 = Class              #82            // dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  #82 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  #83 = Utf8               WhitespaceSplitTokenCountEstimator\n+  #84 = Class              #85            // java/lang/invoke/MethodHandles$Lookup\n+  #85 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #86 = Class              #87            // java/lang/invoke/MethodHandles\n+  #87 = Utf8               java/lang/invoke/MethodHandles\n+  #88 = Utf8               Lookup\n {\n   public dev.langchain4j.model.chat.TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -113,50 +113,50 @@\n \n   public int estimateTokenCount(java.util.List<dev.langchain4j.data.message.ChatMessage>);\n     descriptor: (Ljava/util/List;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_1\n-         1: invokeinterface #2,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-         6: invokedynamic #3,  0              // InvokeDynamic #0:applyAsInt:()Ljava/util/function/ToIntFunction;\n-        11: invokeinterface #4,  2            // InterfaceMethod java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-        16: invokeinterface #5,  1            // InterfaceMethod java/util/stream/IntStream.sum:()I\n+         1: invokeinterface #7,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+         6: invokedynamic #13,  0             // InvokeDynamic #0:applyAsInt:()Ljava/util/function/ToIntFunction;\n+        11: invokeinterface #17,  2           // InterfaceMethod java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+        16: invokeinterface #23,  1           // InterfaceMethod java/util/stream/IntStream.sum:()I\n         21: ireturn\n       LineNumberTable:\n         line 18: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      22     0  this   Ldev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n             0      22     1 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      22     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-    Signature: #28                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)I\n+    Signature: #59                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)I\n \n   private static int lambda$estimateTokenCount$0(dev.langchain4j.data.message.ChatMessage);\n     descriptor: (Ldev/langchain4j/data/message/ChatMessage;)I\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: invokeinterface #6,  1            // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-         6: ldc           #7                  // String \\\\s+\n-         8: invokevirtual #8                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+         1: invokeinterface #29,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+         6: ldc           #35                 // String \\\\s+\n+         8: invokevirtual #37                 // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n         11: arraylength\n         12: ireturn\n       LineNumberTable:\n         line 18: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0 message   Ldev/langchain4j/data/message/ChatMessage;\n }\n SourceFile: \"TokenCountEstimatorTest.java\"\n-InnerClasses:\n-  public static #18= #9 of #53;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/chat/TokenCountEstimatorTest\n-  public static final #84= #83 of #86;    // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #39 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #67 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #40 (Ljava/lang/Object;)I\n-      #41 REF_invokeStatic dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n-      #42 (Ldev/langchain4j/data/message/ChatMessage;)I\n+      #74 (Ljava/lang/Object;)I\n+      #76 REF_invokeStatic dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.lambda$estimateTokenCount$0:(Ldev/langchain4j/data/message/ChatMessage;)I\n+      #79 (Ldev/langchain4j/data/message/ChatMessage;)I\n+InnerClasses:\n+  public static #83= #43 of #81;          // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  public static final #88= #84 of #86;    // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/chat/TokenCountEstimatorTest.class", "source2": "dev/langchain4j/model/chat/TokenCountEstimatorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,107 +1,107 @@\n-  SHA-256 checksum 0a364163b61fb538eb4c66d9d0220ff13994ddf4a83e2cc44ad7ea74b4ff0c19\n+  SHA-256 checksum 9d6476917a21214cc8145d2de33f1a2edab0f453762f3c4c1388a1bd06b352de\n   Compiled from \"TokenCountEstimatorTest.java\"\n class dev.langchain4j.model.chat.TokenCountEstimatorTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #24                         // dev/langchain4j/model/chat/TokenCountEstimatorTest\n-  super_class: #25                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #25.#47        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #48            // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-   #3 = Methodref          #2.#47         // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n-   #4 = String             #49            // foo bar, baz\n-   #5 = InterfaceMethodref #50.#51        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n-   #6 = Methodref          #24.#52        // dev/langchain4j/model/chat/TokenCountEstimatorTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #7 = Methodref          #53.#54        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #8 = Class              #55            // dev/langchain4j/data/message/UserMessage\n-   #9 = Methodref          #8.#56         // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-  #10 = InterfaceMethodref #50.#57        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/message/UserMessage;)I\n-  #11 = Class              #58            // dev/langchain4j/model/input/Prompt\n-  #12 = Methodref          #11.#56        // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n-  #13 = InterfaceMethodref #50.#59        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n-  #14 = Methodref          #60.#61        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #15 = InterfaceMethodref #50.#62        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #16 = Class              #63            // java/util/ArrayList\n-  #17 = Methodref          #16.#47        // java/util/ArrayList.\"<init>\":()V\n-  #18 = String             #64            // Hello, world!\n-  #19 = InterfaceMethodref #65.#66        // java/util/List.add:(Ljava/lang/Object;)Z\n-  #20 = Class              #67            // dev/langchain4j/data/message/AiMessage\n-  #21 = String             #68            // How are you?\n-  #22 = Methodref          #20.#56        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-  #23 = InterfaceMethodref #50.#69        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n-  #24 = Class              #70            // dev/langchain4j/model/chat/TokenCountEstimatorTest\n-  #25 = Class              #71            // java/lang/Object\n-  #26 = Class              #72            // org/assertj/core/api/WithAssertions\n-  #27 = Utf8               WhitespaceSplitTokenCountEstimator\n-  #28 = Utf8               InnerClasses\n-  #29 = Utf8               <init>\n-  #30 = Utf8               ()V\n-  #31 = Utf8               Code\n-  #32 = Utf8               LineNumberTable\n-  #33 = Utf8               LocalVariableTable\n-  #34 = Utf8               this\n-  #35 = Utf8               Ldev/langchain4j/model/chat/TokenCountEstimatorTest;\n-  #36 = Utf8               test\n-  #37 = Utf8               messages\n-  #38 = Utf8               Ljava/util/List;\n-  #39 = Utf8               estimator\n-  #40 = Utf8               Ldev/langchain4j/model/chat/TokenCountEstimator;\n-  #41 = Utf8               LocalVariableTypeTable\n-  #42 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #43 = Utf8               RuntimeVisibleAnnotations\n-  #44 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #45 = Utf8               SourceFile\n-  #46 = Utf8               TokenCountEstimatorTest.java\n-  #47 = NameAndType        #29:#30        // \"<init>\":()V\n-  #48 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #49 = Utf8               foo bar, baz\n-  #50 = Class              #73            // dev/langchain4j/model/chat/TokenCountEstimator\n-  #51 = NameAndType        #74:#75        // estimateTokenCount:(Ljava/lang/String;)I\n-  #52 = NameAndType        #76:#77        // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #53 = Class              #78            // org/assertj/core/api/AbstractIntegerAssert\n-  #54 = NameAndType        #79:#77        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #55 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #56 = NameAndType        #29:#80        // \"<init>\":(Ljava/lang/String;)V\n-  #57 = NameAndType        #74:#81        // estimateTokenCount:(Ldev/langchain4j/data/message/UserMessage;)I\n-  #58 = Utf8               dev/langchain4j/model/input/Prompt\n-  #59 = NameAndType        #74:#82        // estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n-  #60 = Class              #83            // dev/langchain4j/data/segment/TextSegment\n-  #61 = NameAndType        #84:#85        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #62 = NameAndType        #74:#86        // estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #63 = Utf8               java/util/ArrayList\n-  #64 = Utf8               Hello, world!\n-  #65 = Class              #87            // java/util/List\n-  #66 = NameAndType        #88:#89        // add:(Ljava/lang/Object;)Z\n-  #67 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #68 = Utf8               How are you?\n-  #69 = NameAndType        #74:#90        // estimateTokenCount:(Ljava/util/List;)I\n-  #70 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest\n-  #71 = Utf8               java/lang/Object\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+   #8 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n+  #10 = String             #11            // foo bar, baz\n+  #11 = Utf8               foo bar, baz\n+  #12 = InterfaceMethodref #13.#14        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n+  #13 = Class              #15            // dev/langchain4j/model/chat/TokenCountEstimator\n+  #14 = NameAndType        #16:#17        // estimateTokenCount:(Ljava/lang/String;)I\n+  #15 = Utf8               dev/langchain4j/model/chat/TokenCountEstimator\n+  #16 = Utf8               estimateTokenCount\n+  #17 = Utf8               (Ljava/lang/String;)I\n+  #18 = Methodref          #19.#20        // dev/langchain4j/model/chat/TokenCountEstimatorTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #19 = Class              #21            // dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  #20 = NameAndType        #22:#23        // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #21 = Utf8               dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  #22 = Utf8               assertThat\n+  #23 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #24 = Methodref          #25.#26        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #25 = Class              #27            // org/assertj/core/api/AbstractIntegerAssert\n+  #26 = NameAndType        #28:#23        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #27 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n+  #28 = Utf8               isEqualTo\n+  #29 = Class              #30            // dev/langchain4j/data/message/UserMessage\n+  #30 = Utf8               dev/langchain4j/data/message/UserMessage\n+  #31 = Methodref          #29.#32        // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+  #32 = NameAndType        #5:#33         // \"<init>\":(Ljava/lang/String;)V\n+  #33 = Utf8               (Ljava/lang/String;)V\n+  #34 = InterfaceMethodref #13.#35        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/message/UserMessage;)I\n+  #35 = NameAndType        #16:#36        // estimateTokenCount:(Ldev/langchain4j/data/message/UserMessage;)I\n+  #36 = Utf8               (Ldev/langchain4j/data/message/UserMessage;)I\n+  #37 = Class              #38            // dev/langchain4j/model/input/Prompt\n+  #38 = Utf8               dev/langchain4j/model/input/Prompt\n+  #39 = Methodref          #37.#32        // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+  #40 = InterfaceMethodref #13.#41        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n+  #41 = NameAndType        #16:#42        // estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n+  #42 = Utf8               (Ldev/langchain4j/model/input/Prompt;)I\n+  #43 = Methodref          #44.#45        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #44 = Class              #46            // dev/langchain4j/data/segment/TextSegment\n+  #45 = NameAndType        #47:#48        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #46 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #47 = Utf8               from\n+  #48 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #49 = InterfaceMethodref #13.#50        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #50 = NameAndType        #16:#51        // estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #51 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n+  #52 = Class              #53            // java/util/ArrayList\n+  #53 = Utf8               java/util/ArrayList\n+  #54 = Methodref          #52.#3         // java/util/ArrayList.\"<init>\":()V\n+  #55 = String             #56            // Hello, world!\n+  #56 = Utf8               Hello, world!\n+  #57 = InterfaceMethodref #58.#59        // java/util/List.add:(Ljava/lang/Object;)Z\n+  #58 = Class              #60            // java/util/List\n+  #59 = NameAndType        #61:#62        // add:(Ljava/lang/Object;)Z\n+  #60 = Utf8               java/util/List\n+  #61 = Utf8               add\n+  #62 = Utf8               (Ljava/lang/Object;)Z\n+  #63 = Class              #64            // dev/langchain4j/data/message/AiMessage\n+  #64 = Utf8               dev/langchain4j/data/message/AiMessage\n+  #65 = String             #66            // How are you?\n+  #66 = Utf8               How are you?\n+  #67 = Methodref          #63.#32        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+  #68 = InterfaceMethodref #13.#69        // dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n+  #69 = NameAndType        #16:#70        // estimateTokenCount:(Ljava/util/List;)I\n+  #70 = Utf8               (Ljava/util/List;)I\n+  #71 = Class              #72            // org/assertj/core/api/WithAssertions\n   #72 = Utf8               org/assertj/core/api/WithAssertions\n-  #73 = Utf8               dev/langchain4j/model/chat/TokenCountEstimator\n-  #74 = Utf8               estimateTokenCount\n-  #75 = Utf8               (Ljava/lang/String;)I\n-  #76 = Utf8               assertThat\n-  #77 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #78 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n-  #79 = Utf8               isEqualTo\n-  #80 = Utf8               (Ljava/lang/String;)V\n-  #81 = Utf8               (Ldev/langchain4j/data/message/UserMessage;)I\n-  #82 = Utf8               (Ldev/langchain4j/model/input/Prompt;)I\n-  #83 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #84 = Utf8               from\n-  #85 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #86 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n-  #87 = Utf8               java/util/List\n-  #88 = Utf8               add\n-  #89 = Utf8               (Ljava/lang/Object;)Z\n-  #90 = Utf8               (Ljava/util/List;)I\n+  #73 = Utf8               Code\n+  #74 = Utf8               LineNumberTable\n+  #75 = Utf8               LocalVariableTable\n+  #76 = Utf8               this\n+  #77 = Utf8               Ldev/langchain4j/model/chat/TokenCountEstimatorTest;\n+  #78 = Utf8               test\n+  #79 = Utf8               messages\n+  #80 = Utf8               Ljava/util/List;\n+  #81 = Utf8               estimator\n+  #82 = Utf8               Ldev/langchain4j/model/chat/TokenCountEstimator;\n+  #83 = Utf8               LocalVariableTypeTable\n+  #84 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #85 = Utf8               RuntimeVisibleAnnotations\n+  #86 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #87 = Utf8               SourceFile\n+  #88 = Utf8               TokenCountEstimatorTest.java\n+  #89 = Utf8               InnerClasses\n+  #90 = Utf8               WhitespaceSplitTokenCountEstimator\n {\n   dev.langchain4j.model.chat.TokenCountEstimatorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -114,82 +114,82 @@\n             0       5     0  this   Ldev/langchain4j/model/chat/TokenCountEstimatorTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+         0: new           #7                  // class dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String foo bar, baz\n-        12: invokeinterface #5,  2            // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n-        17: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        10: ldc           #10                 // String foo bar, baz\n+        12: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n+        17: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         20: iconst_3\n-        21: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        21: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         24: pop\n         25: aload_0\n         26: aload_1\n-        27: new           #8                  // class dev/langchain4j/data/message/UserMessage\n+        27: new           #29                 // class dev/langchain4j/data/message/UserMessage\n         30: dup\n-        31: ldc           #4                  // String foo bar, baz\n-        33: invokespecial #9                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-        36: invokeinterface #10,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/message/UserMessage;)I\n-        41: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        31: ldc           #10                 // String foo bar, baz\n+        33: invokespecial #31                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        36: invokeinterface #34,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/message/UserMessage;)I\n+        41: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         44: iconst_3\n-        45: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        45: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         48: pop\n         49: aload_0\n         50: aload_1\n-        51: new           #11                 // class dev/langchain4j/model/input/Prompt\n+        51: new           #37                 // class dev/langchain4j/model/input/Prompt\n         54: dup\n-        55: ldc           #4                  // String foo bar, baz\n-        57: invokespecial #12                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n-        60: invokeinterface #13,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n-        65: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        55: ldc           #10                 // String foo bar, baz\n+        57: invokespecial #39                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+        60: invokeinterface #40,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n+        65: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         68: iconst_3\n-        69: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        69: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         72: pop\n         73: aload_0\n         74: aload_1\n-        75: ldc           #4                  // String foo bar, baz\n-        77: invokestatic  #14                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        80: invokeinterface #15,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-        85: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        75: ldc           #10                 // String foo bar, baz\n+        77: invokestatic  #43                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        80: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+        85: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         88: iconst_3\n-        89: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        89: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         92: pop\n-        93: new           #16                 // class java/util/ArrayList\n+        93: new           #52                 // class java/util/ArrayList\n         96: dup\n-        97: invokespecial #17                 // Method java/util/ArrayList.\"<init>\":()V\n+        97: invokespecial #54                 // Method java/util/ArrayList.\"<init>\":()V\n        100: astore_2\n        101: aload_2\n-       102: new           #8                  // class dev/langchain4j/data/message/UserMessage\n+       102: new           #29                 // class dev/langchain4j/data/message/UserMessage\n        105: dup\n-       106: ldc           #18                 // String Hello, world!\n-       108: invokespecial #9                  // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-       111: invokeinterface #19,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+       106: ldc           #55                 // String Hello, world!\n+       108: invokespecial #31                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+       111: invokeinterface #57,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n        116: pop\n        117: aload_2\n-       118: new           #20                 // class dev/langchain4j/data/message/AiMessage\n+       118: new           #63                 // class dev/langchain4j/data/message/AiMessage\n        121: dup\n-       122: ldc           #21                 // String How are you?\n-       124: invokespecial #22                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-       127: invokeinterface #19,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+       122: ldc           #65                 // String How are you?\n+       124: invokespecial #67                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+       127: invokeinterface #57,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n        132: pop\n        133: aload_0\n        134: aload_1\n        135: aload_2\n-       136: invokeinterface #23,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n-       141: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+       136: invokeinterface #68,  2           // InterfaceMethod dev/langchain4j/model/chat/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n+       141: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n        144: iconst_5\n-       145: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+       145: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n        148: pop\n        149: return\n       LineNumberTable:\n         line 24: 0\n         line 26: 8\n         line 28: 25\n         line 30: 49\n@@ -204,13 +204,13 @@\n           101      48     2 messages   Ljava/util/List;\n             0     150     0  this   Ldev/langchain4j/model/chat/TokenCountEstimatorTest;\n             8     142     1 estimator   Ldev/langchain4j/model/chat/TokenCountEstimator;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n           101      48     2 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #44()\n+      0: #86()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TokenCountEstimatorTest.java\"\n InnerClasses:\n-  public static #27= #2 of #24;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/chat/TokenCountEstimatorTest\n+  public static #90= #7 of #19;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/chat/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/chat/TokenCountEstimatorTest\n"}]}, {"source1": "dev/langchain4j/model/chat/mock/ChatModelMock.class", "source2": "dev/langchain4j/model/chat/mock/ChatModelMock.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,161 +1,159 @@\n-  SHA-256 checksum 37e15d7c5fedcd29b0cce722b15076db48d6807341094ec75e316300c7c11a77\n+  SHA-256 checksum e9d2da90b52362ea3452e1067bf340e7ce8acbfce1910826139861c0b774b28b\n   Compiled from \"ChatModelMock.java\"\n public class dev.langchain4j.model.chat.mock.ChatModelMock implements dev.langchain4j.model.chat.ChatLanguageModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #28                         // dev/langchain4j/model/chat/mock/ChatModelMock\n-  super_class: #18                        // java/lang/Object\n+  this_class: #17                         // dev/langchain4j/model/chat/mock/ChatModelMock\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 2, methods: 4, attributes: 1\n Constant pool:\n-    #1 = Methodref          #18.#62       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #63           // java/util/ArrayList\n-    #3 = Methodref          #2.#62        // java/util/ArrayList.\"<init>\":()V\n-    #4 = Methodref          #64.#65       // java/util/Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;\n-    #5 = Fieldref           #28.#66       // dev/langchain4j/model/chat/mock/ChatModelMock.requests:Ljava/util/List;\n-    #6 = Fieldref           #28.#67       // dev/langchain4j/model/chat/mock/ChatModelMock.staticResponse:Ljava/lang/String;\n-    #7 = Methodref          #2.#68        // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n-    #8 = InterfaceMethodref #21.#69       // java/util/List.add:(Ljava/lang/Object;)Z\n-    #9 = Methodref          #70.#71       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #10 = Methodref          #72.#73       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #11 = InterfaceMethodref #21.#74       // java/util/List.size:()I\n-   #12 = Class              #75           // java/lang/StringBuilder\n-   #13 = Methodref          #12.#62       // java/lang/StringBuilder.\"<init>\":()V\n-   #14 = String             #76           // Expected exactly 1 request, got:\n-   #15 = Methodref          #12.#77       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #16 = Methodref          #12.#78       // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n-   #17 = Methodref          #12.#79       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #18 = Class              #80           // java/lang/Object\n-   #19 = Methodref          #81.#82       // dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n-   #20 = InterfaceMethodref #21.#83       // java/util/List.get:(I)Ljava/lang/Object;\n-   #21 = Class              #84           // java/util/List\n-   #22 = String             #85           // Expected exactly 1 message, got:\n-   #23 = Class              #86           // dev/langchain4j/data/message/ChatMessage\n-   #24 = Class              #87           // dev/langchain4j/data/message/UserMessage\n-   #25 = String             #88           // Expected exactly UserMessage, got:\n-   #26 = Methodref          #12.#89       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #27 = InterfaceMethodref #23.#90       // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-   #28 = Class              #91           // dev/langchain4j/model/chat/mock/ChatModelMock\n-   #29 = Methodref          #28.#92       // dev/langchain4j/model/chat/mock/ChatModelMock.\"<init>\":(Ljava/lang/String;)V\n-   #30 = Class              #93           // dev/langchain4j/model/chat/ChatLanguageModel\n-   #31 = Utf8               staticResponse\n-   #32 = Utf8               Ljava/lang/String;\n-   #33 = Utf8               requests\n-   #34 = Utf8               Ljava/util/List;\n-   #35 = Utf8               Signature\n-   #36 = Utf8               Ljava/util/List<Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;>;\n-   #37 = Utf8               <init>\n-   #38 = Utf8               (Ljava/lang/String;)V\n-   #39 = Utf8               Code\n-   #40 = Utf8               LineNumberTable\n-   #41 = Utf8               LocalVariableTable\n-   #42 = Utf8               this\n-   #43 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #44 = Utf8               generate\n-   #45 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #46 = Utf8               messages\n-   #47 = Utf8               LocalVariableTypeTable\n-   #48 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-   #49 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-   #50 = Utf8               userMessageText\n-   #51 = Utf8               ()Ljava/lang/String;\n-   #52 = Utf8               message\n-   #53 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-   #54 = Utf8               StackMapTable\n-   #55 = Class              #84           // java/util/List\n-   #56 = Class              #86           // dev/langchain4j/data/message/ChatMessage\n-   #57 = Utf8               withStaticResponse\n-   #58 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #59 = Utf8               response\n-   #60 = Utf8               SourceFile\n-   #61 = Utf8               ChatModelMock.java\n-   #62 = NameAndType        #37:#94       // \"<init>\":()V\n-   #63 = Utf8               java/util/ArrayList\n-   #64 = Class              #95           // java/util/Collections\n-   #65 = NameAndType        #96:#97       // synchronizedList:(Ljava/util/List;)Ljava/util/List;\n-   #66 = NameAndType        #33:#34       // requests:Ljava/util/List;\n-   #67 = NameAndType        #31:#32       // staticResponse:Ljava/lang/String;\n-   #68 = NameAndType        #37:#98       // \"<init>\":(Ljava/util/Collection;)V\n-   #69 = NameAndType        #99:#100      // add:(Ljava/lang/Object;)Z\n-   #70 = Class              #101          // dev/langchain4j/data/message/AiMessage\n-   #71 = NameAndType        #102:#103     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #72 = Class              #104          // dev/langchain4j/model/output/Response\n-   #73 = NameAndType        #102:#105     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #74 = NameAndType        #106:#107     // size:()I\n-   #75 = Utf8               java/lang/StringBuilder\n-   #76 = Utf8               Expected exactly 1 request, got:\n-   #77 = NameAndType        #108:#109     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #78 = NameAndType        #108:#110     // append:(I)Ljava/lang/StringBuilder;\n-   #79 = NameAndType        #111:#51      // toString:()Ljava/lang/String;\n-   #80 = Utf8               java/lang/Object\n-   #81 = Class              #112          // dev/langchain4j/internal/Exceptions\n-   #82 = NameAndType        #113:#114     // runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n-   #83 = NameAndType        #115:#116     // get:(I)Ljava/lang/Object;\n-   #84 = Utf8               java/util/List\n-   #85 = Utf8               Expected exactly 1 message, got:\n-   #86 = Utf8               dev/langchain4j/data/message/ChatMessage\n-   #87 = Utf8               dev/langchain4j/data/message/UserMessage\n-   #88 = Utf8               Expected exactly UserMessage, got:\n-   #89 = NameAndType        #108:#117     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #90 = NameAndType        #118:#51      // text:()Ljava/lang/String;\n-   #91 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n-   #92 = NameAndType        #37:#38       // \"<init>\":(Ljava/lang/String;)V\n-   #93 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n-   #94 = Utf8               ()V\n-   #95 = Utf8               java/util/Collections\n-   #96 = Utf8               synchronizedList\n-   #97 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-   #98 = Utf8               (Ljava/util/Collection;)V\n-   #99 = Utf8               add\n-  #100 = Utf8               (Ljava/lang/Object;)Z\n-  #101 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #102 = Utf8               from\n-  #103 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #104 = Utf8               dev/langchain4j/model/output/Response\n-  #105 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #106 = Utf8               size\n-  #107 = Utf8               ()I\n-  #108 = Utf8               append\n-  #109 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #110 = Utf8               (I)Ljava/lang/StringBuilder;\n-  #111 = Utf8               toString\n-  #112 = Utf8               dev/langchain4j/internal/Exceptions\n-  #113 = Utf8               runtime\n-  #114 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n-  #115 = Utf8               get\n-  #116 = Utf8               (I)Ljava/lang/Object;\n-  #117 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #118 = Utf8               text\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/util/ArrayList\n+    #8 = Utf8               java/util/ArrayList\n+    #9 = Methodref          #7.#3         // java/util/ArrayList.\"<init>\":()V\n+   #10 = Methodref          #11.#12       // java/util/Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;\n+   #11 = Class              #13           // java/util/Collections\n+   #12 = NameAndType        #14:#15       // synchronizedList:(Ljava/util/List;)Ljava/util/List;\n+   #13 = Utf8               java/util/Collections\n+   #14 = Utf8               synchronizedList\n+   #15 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+   #16 = Fieldref           #17.#18       // dev/langchain4j/model/chat/mock/ChatModelMock.requests:Ljava/util/List;\n+   #17 = Class              #19           // dev/langchain4j/model/chat/mock/ChatModelMock\n+   #18 = NameAndType        #20:#21       // requests:Ljava/util/List;\n+   #19 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n+   #20 = Utf8               requests\n+   #21 = Utf8               Ljava/util/List;\n+   #22 = Fieldref           #17.#23       // dev/langchain4j/model/chat/mock/ChatModelMock.staticResponse:Ljava/lang/String;\n+   #23 = NameAndType        #24:#25       // staticResponse:Ljava/lang/String;\n+   #24 = Utf8               staticResponse\n+   #25 = Utf8               Ljava/lang/String;\n+   #26 = Methodref          #7.#27        // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+   #27 = NameAndType        #5:#28        // \"<init>\":(Ljava/util/Collection;)V\n+   #28 = Utf8               (Ljava/util/Collection;)V\n+   #29 = InterfaceMethodref #30.#31       // java/util/List.add:(Ljava/lang/Object;)Z\n+   #30 = Class              #32           // java/util/List\n+   #31 = NameAndType        #33:#34       // add:(Ljava/lang/Object;)Z\n+   #32 = Utf8               java/util/List\n+   #33 = Utf8               add\n+   #34 = Utf8               (Ljava/lang/Object;)Z\n+   #35 = Methodref          #36.#37       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #36 = Class              #38           // dev/langchain4j/data/message/AiMessage\n+   #37 = NameAndType        #39:#40       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #38 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #39 = Utf8               from\n+   #40 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #41 = Methodref          #42.#43       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #42 = Class              #44           // dev/langchain4j/model/output/Response\n+   #43 = NameAndType        #39:#45       // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #44 = Utf8               dev/langchain4j/model/output/Response\n+   #45 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #46 = InterfaceMethodref #30.#47       // java/util/List.size:()I\n+   #47 = NameAndType        #48:#49       // size:()I\n+   #48 = Utf8               size\n+   #49 = Utf8               ()I\n+   #50 = Class              #51           // java/lang/StringBuilder\n+   #51 = Utf8               java/lang/StringBuilder\n+   #52 = Methodref          #50.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #53 = String             #54           // Expected exactly 1 request, got:\n+   #54 = Utf8               Expected exactly 1 request, got:\n+   #55 = Methodref          #50.#56       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #56 = NameAndType        #57:#58       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #57 = Utf8               append\n+   #58 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #59 = Methodref          #50.#60       // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n+   #60 = NameAndType        #57:#61       // append:(I)Ljava/lang/StringBuilder;\n+   #61 = Utf8               (I)Ljava/lang/StringBuilder;\n+   #62 = Methodref          #50.#63       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+   #63 = NameAndType        #64:#65       // toString:()Ljava/lang/String;\n+   #64 = Utf8               toString\n+   #65 = Utf8               ()Ljava/lang/String;\n+   #66 = Methodref          #67.#68       // dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+   #67 = Class              #69           // dev/langchain4j/internal/Exceptions\n+   #68 = NameAndType        #70:#71       // runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+   #69 = Utf8               dev/langchain4j/internal/Exceptions\n+   #70 = Utf8               runtime\n+   #71 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+   #72 = InterfaceMethodref #30.#73       // java/util/List.get:(I)Ljava/lang/Object;\n+   #73 = NameAndType        #74:#75       // get:(I)Ljava/lang/Object;\n+   #74 = Utf8               get\n+   #75 = Utf8               (I)Ljava/lang/Object;\n+   #76 = String             #77           // Expected exactly 1 message, got:\n+   #77 = Utf8               Expected exactly 1 message, got:\n+   #78 = Class              #79           // dev/langchain4j/data/message/ChatMessage\n+   #79 = Utf8               dev/langchain4j/data/message/ChatMessage\n+   #80 = Class              #81           // dev/langchain4j/data/message/UserMessage\n+   #81 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #82 = String             #83           // Expected exactly UserMessage, got:\n+   #83 = Utf8               Expected exactly UserMessage, got:\n+   #84 = Methodref          #50.#85       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #85 = NameAndType        #57:#86       // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #86 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #87 = InterfaceMethodref #78.#88       // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+   #88 = NameAndType        #89:#65       // text:()Ljava/lang/String;\n+   #89 = Utf8               text\n+   #90 = Methodref          #17.#91       // dev/langchain4j/model/chat/mock/ChatModelMock.\"<init>\":(Ljava/lang/String;)V\n+   #91 = NameAndType        #5:#92        // \"<init>\":(Ljava/lang/String;)V\n+   #92 = Utf8               (Ljava/lang/String;)V\n+   #93 = Class              #94           // dev/langchain4j/model/chat/ChatLanguageModel\n+   #94 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n+   #95 = Utf8               Signature\n+   #96 = Utf8               Ljava/util/List<Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;>;\n+   #97 = Utf8               Code\n+   #98 = Utf8               LineNumberTable\n+   #99 = Utf8               LocalVariableTable\n+  #100 = Utf8               this\n+  #101 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+  #102 = Utf8               generate\n+  #103 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #104 = Utf8               messages\n+  #105 = Utf8               LocalVariableTypeTable\n+  #106 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #107 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #108 = Utf8               userMessageText\n+  #109 = Utf8               message\n+  #110 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #111 = Utf8               StackMapTable\n+  #112 = Utf8               withStaticResponse\n+  #113 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+  #114 = Utf8               response\n+  #115 = Utf8               SourceFile\n+  #116 = Utf8               ChatModelMock.java\n {\n   private final java.lang.String staticResponse;\n     descriptor: Ljava/lang/String;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.util.List<java.util.List<dev.langchain4j.data.message.ChatMessage>> requests;\n     descriptor: Ljava/util/List;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #36                          // Ljava/util/List<Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;>;\n+    Signature: #96                          // Ljava/util/List<Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;>;\n \n   public dev.langchain4j.model.chat.mock.ChatModelMock(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n-         5: new           #2                  // class java/util/ArrayList\n+         5: new           #7                  // class java/util/ArrayList\n          8: dup\n-         9: invokespecial #3                  // Method java/util/ArrayList.\"<init>\":()V\n-        12: invokestatic  #4                  // Method java/util/Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;\n-        15: putfield      #5                  // Field requests:Ljava/util/List;\n+         9: invokespecial #9                  // Method java/util/ArrayList.\"<init>\":()V\n+        12: invokestatic  #10                 // Method java/util/Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;\n+        15: putfield      #16                 // Field requests:Ljava/util/List;\n         18: aload_0\n         19: aload_1\n-        20: putfield      #6                  // Field staticResponse:Ljava/lang/String;\n+        20: putfield      #22                 // Field staticResponse:Ljava/lang/String;\n         23: return\n       LineNumberTable:\n         line 25: 0\n         line 23: 4\n         line 26: 18\n         line 27: 23\n       LocalVariableTable:\n@@ -165,107 +163,107 @@\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.data.message.AiMessage> generate(java.util.List<dev.langchain4j.data.message.ChatMessage>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #5                  // Field requests:Ljava/util/List;\n-         4: new           #2                  // class java/util/ArrayList\n+         1: getfield      #16                 // Field requests:Ljava/util/List;\n+         4: new           #7                  // class java/util/ArrayList\n          7: dup\n          8: aload_1\n-         9: invokespecial #7                  // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n-        12: invokeinterface #8,  2            // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+         9: invokespecial #26                 // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+        12: invokeinterface #29,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         17: pop\n         18: aload_0\n-        19: getfield      #6                  // Field staticResponse:Ljava/lang/String;\n-        22: invokestatic  #9                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-        25: invokestatic  #10                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+        19: getfield      #22                 // Field staticResponse:Ljava/lang/String;\n+        22: invokestatic  #35                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        25: invokestatic  #41                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n         28: areturn\n       LineNumberTable:\n         line 31: 0\n         line 32: 18\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      29     0  this   Ldev/langchain4j/model/chat/mock/ChatModelMock;\n             0      29     1 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      29     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-    Signature: #49                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+    Signature: #107                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n \n   public java.lang.String userMessageText();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=1\n          0: aload_0\n-         1: getfield      #5                  // Field requests:Ljava/util/List;\n-         4: invokeinterface #11,  1           // InterfaceMethod java/util/List.size:()I\n+         1: getfield      #16                 // Field requests:Ljava/util/List;\n+         4: invokeinterface #46,  1           // InterfaceMethod java/util/List.size:()I\n          9: iconst_1\n         10: if_icmpeq     48\n-        13: new           #12                 // class java/lang/StringBuilder\n+        13: new           #50                 // class java/lang/StringBuilder\n         16: dup\n-        17: invokespecial #13                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        20: ldc           #14                 // String Expected exactly 1 request, got:\n-        22: invokevirtual #15                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        17: invokespecial #52                 // Method java/lang/StringBuilder.\"<init>\":()V\n+        20: ldc           #53                 // String Expected exactly 1 request, got:\n+        22: invokevirtual #55                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         25: aload_0\n-        26: getfield      #5                  // Field requests:Ljava/util/List;\n-        29: invokeinterface #11,  1           // InterfaceMethod java/util/List.size:()I\n-        34: invokevirtual #16                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n-        37: invokevirtual #17                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        26: getfield      #16                 // Field requests:Ljava/util/List;\n+        29: invokeinterface #46,  1           // InterfaceMethod java/util/List.size:()I\n+        34: invokevirtual #59                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n+        37: invokevirtual #62                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n         40: iconst_0\n-        41: anewarray     #18                 // class java/lang/Object\n-        44: invokestatic  #19                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+        41: anewarray     #2                  // class java/lang/Object\n+        44: invokestatic  #66                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n         47: athrow\n         48: aload_0\n-        49: getfield      #5                  // Field requests:Ljava/util/List;\n+        49: getfield      #16                 // Field requests:Ljava/util/List;\n         52: iconst_0\n-        53: invokeinterface #20,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        58: checkcast     #21                 // class java/util/List\n+        53: invokeinterface #72,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        58: checkcast     #30                 // class java/util/List\n         61: astore_1\n         62: aload_1\n-        63: invokeinterface #11,  1           // InterfaceMethod java/util/List.size:()I\n+        63: invokeinterface #46,  1           // InterfaceMethod java/util/List.size:()I\n         68: iconst_1\n         69: if_icmpeq     104\n-        72: new           #12                 // class java/lang/StringBuilder\n+        72: new           #50                 // class java/lang/StringBuilder\n         75: dup\n-        76: invokespecial #13                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        79: ldc           #22                 // String Expected exactly 1 message, got:\n-        81: invokevirtual #15                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        76: invokespecial #52                 // Method java/lang/StringBuilder.\"<init>\":()V\n+        79: ldc           #76                 // String Expected exactly 1 message, got:\n+        81: invokevirtual #55                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         84: aload_1\n-        85: invokeinterface #11,  1           // InterfaceMethod java/util/List.size:()I\n-        90: invokevirtual #16                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n-        93: invokevirtual #17                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        85: invokeinterface #46,  1           // InterfaceMethod java/util/List.size:()I\n+        90: invokevirtual #59                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;\n+        93: invokevirtual #62                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n         96: iconst_0\n-        97: anewarray     #18                 // class java/lang/Object\n-       100: invokestatic  #19                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+        97: anewarray     #2                  // class java/lang/Object\n+       100: invokestatic  #66                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n        103: athrow\n        104: aload_1\n        105: iconst_0\n-       106: invokeinterface #20,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-       111: checkcast     #23                 // class dev/langchain4j/data/message/ChatMessage\n+       106: invokeinterface #72,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+       111: checkcast     #78                 // class dev/langchain4j/data/message/ChatMessage\n        114: astore_2\n        115: aload_2\n-       116: instanceof    #24                 // class dev/langchain4j/data/message/UserMessage\n+       116: instanceof    #80                 // class dev/langchain4j/data/message/UserMessage\n        119: ifne          149\n-       122: new           #12                 // class java/lang/StringBuilder\n+       122: new           #50                 // class java/lang/StringBuilder\n        125: dup\n-       126: invokespecial #13                 // Method java/lang/StringBuilder.\"<init>\":()V\n-       129: ldc           #25                 // String Expected exactly UserMessage, got:\n-       131: invokevirtual #15                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       126: invokespecial #52                 // Method java/lang/StringBuilder.\"<init>\":()V\n+       129: ldc           #82                 // String Expected exactly UserMessage, got:\n+       131: invokevirtual #55                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        134: aload_2\n-       135: invokevirtual #26                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       138: invokevirtual #17                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+       135: invokevirtual #84                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       138: invokevirtual #62                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n        141: iconst_0\n-       142: anewarray     #18                 // class java/lang/Object\n-       145: invokestatic  #19                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n+       142: anewarray     #2                  // class java/lang/Object\n+       145: invokestatic  #66                 // Method dev/langchain4j/internal/Exceptions.runtime:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/RuntimeException;\n        148: athrow\n        149: aload_2\n-       150: invokeinterface #27,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+       150: invokeinterface #87,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n        155: areturn\n       LineNumberTable:\n         line 36: 0\n         line 37: 13\n         line 40: 48\n         line 41: 62\n         line 42: 72\n@@ -291,18 +289,18 @@\n           locals = [ class dev/langchain4j/data/message/ChatMessage ]\n \n   public static dev.langchain4j.model.chat.mock.ChatModelMock withStaticResponse(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #28                 // class dev/langchain4j/model/chat/mock/ChatModelMock\n+         0: new           #17                 // class dev/langchain4j/model/chat/mock/ChatModelMock\n          3: dup\n          4: aload_0\n-         5: invokespecial #29                 // Method \"<init>\":(Ljava/lang/String;)V\n+         5: invokespecial #90                 // Method \"<init>\":(Ljava/lang/String;)V\n          8: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       9     0 response   Ljava/lang/String;\n }\n"}]}, {"source1": "dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.class", "source2": "dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,64 +1,64 @@\n-  SHA-256 checksum ae07b04c8078a49335176d4f22b5b6bbf3e39d06b10c3fd2ace334b99e1e0b73\n+  SHA-256 checksum 0a29bfe9982c69a8a033bc0ce7bb134f0d9776d6bcba6d5e6d19d588b9493d5c\n   Compiled from \"EmbeddingModelTest.java\"\n public class dev.langchain4j.model.embedding.EmbeddingModelTest$BrokenEmbeddingModelImpl implements dev.langchain4j.model.embedding.EmbeddingModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #8                          // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n-  super_class: #9                         // java/lang/Object\n+  this_class: #25                         // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #9.#31         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #32            // java/util/ArrayList\n-   #3 = Methodref          #2.#33         // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n-   #4 = InterfaceMethodref #34.#35        // java/util/List.addAll:(Ljava/util/Collection;)Z\n-   #5 = Class              #37            // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-   #6 = Methodref          #5.#31         // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n-   #7 = Methodref          #5.#39         // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #8 = Class              #40            // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n-   #9 = Class              #41            // java/lang/Object\n-  #10 = Class              #42            // dev/langchain4j/model/embedding/EmbeddingModel\n-  #11 = Utf8               <init>\n-  #12 = Utf8               ()V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               BrokenEmbeddingModelImpl\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl;\n-  #20 = Utf8               embedAll\n-  #21 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #22 = Utf8               textSegments\n-  #23 = Utf8               Ljava/util/List;\n-  #24 = Utf8               doubledList\n-  #25 = Utf8               LocalVariableTypeTable\n-  #26 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-  #27 = Utf8               Signature\n-  #28 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n-  #29 = Utf8               SourceFile\n-  #30 = Utf8               EmbeddingModelTest.java\n-  #31 = NameAndType        #11:#12        // \"<init>\":()V\n-  #32 = Utf8               java/util/ArrayList\n-  #33 = NameAndType        #11:#43        // \"<init>\":(Ljava/util/Collection;)V\n-  #34 = Class              #44            // java/util/List\n-  #35 = NameAndType        #45:#46        // addAll:(Ljava/util/Collection;)Z\n-  #36 = Class              #47            // dev/langchain4j/model/embedding/EmbeddingModelTest\n-  #37 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-  #38 = Utf8               EmbeddingModelImpl\n-  #39 = NameAndType        #20:#21        // embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #40 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n-  #41 = Utf8               java/lang/Object\n-  #42 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n-  #43 = Utf8               (Ljava/util/Collection;)V\n-  #44 = Utf8               java/util/List\n-  #45 = Utf8               addAll\n-  #46 = Utf8               (Ljava/util/Collection;)Z\n-  #47 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // java/util/ArrayList\n+   #8 = Utf8               java/util/ArrayList\n+   #9 = Methodref          #7.#10         // java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+  #10 = NameAndType        #5:#11         // \"<init>\":(Ljava/util/Collection;)V\n+  #11 = Utf8               (Ljava/util/Collection;)V\n+  #12 = InterfaceMethodref #13.#14        // java/util/List.addAll:(Ljava/util/Collection;)Z\n+  #13 = Class              #15            // java/util/List\n+  #14 = NameAndType        #16:#17        // addAll:(Ljava/util/Collection;)Z\n+  #15 = Utf8               java/util/List\n+  #16 = Utf8               addAll\n+  #17 = Utf8               (Ljava/util/Collection;)Z\n+  #18 = Class              #19            // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+  #19 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+  #20 = Methodref          #18.#3         // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n+  #21 = Methodref          #18.#22        // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #22 = NameAndType        #23:#24        // embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #23 = Utf8               embedAll\n+  #24 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #25 = Class              #26            // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n+  #26 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n+  #27 = Class              #28            // dev/langchain4j/model/embedding/EmbeddingModel\n+  #28 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n+  #29 = Utf8               Code\n+  #30 = Utf8               LineNumberTable\n+  #31 = Utf8               LocalVariableTable\n+  #32 = Utf8               this\n+  #33 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl;\n+  #34 = Utf8               textSegments\n+  #35 = Utf8               Ljava/util/List;\n+  #36 = Utf8               doubledList\n+  #37 = Utf8               LocalVariableTypeTable\n+  #38 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #39 = Utf8               Signature\n+  #40 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n+  #41 = Utf8               SourceFile\n+  #42 = Utf8               EmbeddingModelTest.java\n+  #43 = Utf8               InnerClasses\n+  #44 = Class              #45            // dev/langchain4j/model/embedding/EmbeddingModelTest\n+  #45 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest\n+  #46 = Utf8               EmbeddingModelImpl\n+  #47 = Utf8               BrokenEmbeddingModelImpl\n {\n   public dev.langchain4j.model.embedding.EmbeddingModelTest$BrokenEmbeddingModelImpl();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -71,41 +71,41 @@\n             0       5     0  this   Ldev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl;\n \n   public dev.langchain4j.model.output.Response<java.util.List<dev.langchain4j.data.embedding.Embedding>> embedAll(java.util.List<dev.langchain4j.data.segment.TextSegment>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=2\n-         0: new           #2                  // class java/util/ArrayList\n+         0: new           #7                  // class java/util/ArrayList\n          3: dup\n          4: aload_1\n-         5: invokespecial #3                  // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n+         5: invokespecial #9                  // Method java/util/ArrayList.\"<init>\":(Ljava/util/Collection;)V\n          8: astore_2\n          9: aload_2\n         10: aload_1\n-        11: invokeinterface #4,  2            // InterfaceMethod java/util/List.addAll:(Ljava/util/Collection;)Z\n+        11: invokeinterface #12,  2           // InterfaceMethod java/util/List.addAll:(Ljava/util/Collection;)Z\n         16: pop\n-        17: new           #5                  // class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+        17: new           #18                 // class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n         20: dup\n-        21: invokespecial #6                  // Method dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n+        21: invokespecial #20                 // Method dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n         24: aload_2\n-        25: invokevirtual #7                  // Method dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+        25: invokevirtual #21                 // Method dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n         28: areturn\n       LineNumberTable:\n         line 33: 0\n         line 34: 9\n         line 36: 17\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      29     0  this   Ldev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl;\n             0      29     1 textSegments   Ljava/util/List;\n             9      20     2 doubledList   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      29     1 textSegments   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n             9      20     2 doubledList   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-    Signature: #28                          // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n+    Signature: #40                          // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n }\n SourceFile: \"EmbeddingModelTest.java\"\n InnerClasses:\n-  public static #17= #8 of #36;           // BrokenEmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n-  public static #38= #5 of #36;           // EmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n+  public static #46= #18 of #44;          // EmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n+  public static #47= #25 of #44;          // BrokenEmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n"}]}, {"source1": "dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.class", "source2": "dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,163 +1,163 @@\n-  SHA-256 checksum eb1046d4ef88e483f785674bbea8c53c4991a31a0d0dfaa4e7026e420fa229f6\n+  SHA-256 checksum eb51568675b40fdd411aa3c92e6e710963f7445d2a3a81b2c8710bfcd8a2e13b\n   Compiled from \"EmbeddingModelTest.java\"\n public class dev.langchain4j.model.embedding.EmbeddingModelTest$EmbeddingModelImpl implements dev.langchain4j.model.embedding.EmbeddingModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #21                         // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-  super_class: #22                        // java/lang/Object\n+  this_class: #89                         // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 3\n Constant pool:\n-    #1 = Methodref          #22.#53       // java/lang/Object.\"<init>\":()V\n-    #2 = InterfaceMethodref #7.#54        // java/util/List.stream:()Ljava/util/stream/Stream;\n-    #3 = InvokeDynamic      #0:#60        // #0:apply:()Ljava/util/function/Function;\n-    #4 = InterfaceMethodref #61.#62       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-    #5 = Methodref          #63.#64       // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-    #6 = InterfaceMethodref #61.#65       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-    #7 = Class              #66           // java/util/List\n-    #8 = InvokeDynamic      #1:#70        // #1:applyAsInt:()Ljava/util/function/ToIntFunction;\n-    #9 = InterfaceMethodref #61.#71       // java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-   #10 = InterfaceMethodref #72.#73       // java/util/stream/IntStream.sum:()I\n-   #11 = Class              #74           // dev/langchain4j/model/output/TokenUsage\n-   #12 = Methodref          #75.#76       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #13 = Methodref          #11.#77       // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n-   #14 = Fieldref           #78.#79       // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-   #15 = Methodref          #80.#81       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-   #16 = Methodref          #82.#83       // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-   #17 = Methodref          #84.#85       // java/lang/String.length:()I\n-   #18 = Class              #86           // dev/langchain4j/data/embedding/Embedding\n-   #19 = Methodref          #84.#87       // java/lang/String.hashCode:()I\n-   #20 = Methodref          #18.#88       // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-   #21 = Class              #90           // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-   #22 = Class              #91           // java/lang/Object\n-   #23 = Class              #92           // dev/langchain4j/model/embedding/EmbeddingModel\n-   #24 = Utf8               <init>\n-   #25 = Utf8               ()V\n-   #26 = Utf8               Code\n-   #27 = Utf8               LineNumberTable\n-   #28 = Utf8               LocalVariableTable\n-   #29 = Utf8               this\n-   #30 = Utf8               EmbeddingModelImpl\n-   #31 = Utf8               InnerClasses\n-   #32 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl;\n-   #33 = Utf8               embedAll\n-   #34 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #35 = Utf8               textSegments\n-   #36 = Utf8               Ljava/util/List;\n-   #37 = Utf8               embeddings\n-   #38 = Utf8               tokenUsage\n-   #39 = Utf8               I\n-   #40 = Utf8               LocalVariableTypeTable\n-   #41 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-   #42 = Utf8               Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n-   #43 = Utf8               Signature\n-   #44 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n-   #45 = Utf8               lambda$embedAll$1\n-   #46 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n-   #47 = Utf8               ts\n-   #48 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-   #49 = Utf8               lambda$embedAll$0\n-   #50 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-   #51 = Utf8               SourceFile\n-   #52 = Utf8               EmbeddingModelTest.java\n-   #53 = NameAndType        #24:#25       // \"<init>\":()V\n-   #54 = NameAndType        #93:#94       // stream:()Ljava/util/stream/Stream;\n-   #55 = Utf8               BootstrapMethods\n-   #56 = MethodHandle       6:#95         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #57 = MethodType         #96           //  (Ljava/lang/Object;)Ljava/lang/Object;\n-   #58 = MethodHandle       6:#97         // REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-   #59 = MethodType         #50           //  (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-   #60 = NameAndType        #98:#99       // apply:()Ljava/util/function/Function;\n-   #61 = Class              #100          // java/util/stream/Stream\n-   #62 = NameAndType        #101:#102     // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #63 = Class              #103          // java/util/stream/Collectors\n-   #64 = NameAndType        #104:#105     // toList:()Ljava/util/stream/Collector;\n-   #65 = NameAndType        #106:#107     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #66 = Utf8               java/util/List\n-   #67 = MethodType         #108          //  (Ljava/lang/Object;)I\n-   #68 = MethodHandle       6:#109        // REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n-   #69 = MethodType         #46           //  (Ldev/langchain4j/data/segment/TextSegment;)I\n-   #70 = NameAndType        #110:#111     // applyAsInt:()Ljava/util/function/ToIntFunction;\n-   #71 = NameAndType        #112:#113     // mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-   #72 = Class              #114          // java/util/stream/IntStream\n-   #73 = NameAndType        #115:#116     // sum:()I\n-   #74 = Utf8               dev/langchain4j/model/output/TokenUsage\n-   #75 = Class              #117          // java/lang/Integer\n-   #76 = NameAndType        #118:#119     // valueOf:(I)Ljava/lang/Integer;\n-   #77 = NameAndType        #24:#120      // \"<init>\":(Ljava/lang/Integer;)V\n-   #78 = Class              #121          // dev/langchain4j/model/output/FinishReason\n-   #79 = NameAndType        #122:#123     // STOP:Ldev/langchain4j/model/output/FinishReason;\n-   #80 = Class              #124          // dev/langchain4j/model/output/Response\n-   #81 = NameAndType        #125:#126     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-   #82 = Class              #127          // dev/langchain4j/data/segment/TextSegment\n-   #83 = NameAndType        #128:#129     // text:()Ljava/lang/String;\n-   #84 = Class              #130          // java/lang/String\n-   #85 = NameAndType        #131:#116     // length:()I\n-   #86 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #87 = NameAndType        #132:#116     // hashCode:()I\n-   #88 = NameAndType        #24:#133      // \"<init>\":([F)V\n-   #89 = Class              #134          // dev/langchain4j/model/embedding/EmbeddingModelTest\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = InterfaceMethodref #8.#9         // java/util/List.stream:()Ljava/util/stream/Stream;\n+    #8 = Class              #10           // java/util/List\n+    #9 = NameAndType        #11:#12       // stream:()Ljava/util/stream/Stream;\n+   #10 = Utf8               java/util/List\n+   #11 = Utf8               stream\n+   #12 = Utf8               ()Ljava/util/stream/Stream;\n+   #13 = InvokeDynamic      #0:#14        // #0:apply:()Ljava/util/function/Function;\n+   #14 = NameAndType        #15:#16       // apply:()Ljava/util/function/Function;\n+   #15 = Utf8               apply\n+   #16 = Utf8               ()Ljava/util/function/Function;\n+   #17 = InterfaceMethodref #18.#19       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #18 = Class              #20           // java/util/stream/Stream\n+   #19 = NameAndType        #21:#22       // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #20 = Utf8               java/util/stream/Stream\n+   #21 = Utf8               map\n+   #22 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #23 = Methodref          #24.#25       // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+   #24 = Class              #26           // java/util/stream/Collectors\n+   #25 = NameAndType        #27:#28       // toList:()Ljava/util/stream/Collector;\n+   #26 = Utf8               java/util/stream/Collectors\n+   #27 = Utf8               toList\n+   #28 = Utf8               ()Ljava/util/stream/Collector;\n+   #29 = InterfaceMethodref #18.#30       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #30 = NameAndType        #31:#32       // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #31 = Utf8               collect\n+   #32 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #33 = InvokeDynamic      #1:#34        // #1:applyAsInt:()Ljava/util/function/ToIntFunction;\n+   #34 = NameAndType        #35:#36       // applyAsInt:()Ljava/util/function/ToIntFunction;\n+   #35 = Utf8               applyAsInt\n+   #36 = Utf8               ()Ljava/util/function/ToIntFunction;\n+   #37 = InterfaceMethodref #18.#38       // java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+   #38 = NameAndType        #39:#40       // mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+   #39 = Utf8               mapToInt\n+   #40 = Utf8               (Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+   #41 = InterfaceMethodref #42.#43       // java/util/stream/IntStream.sum:()I\n+   #42 = Class              #44           // java/util/stream/IntStream\n+   #43 = NameAndType        #45:#46       // sum:()I\n+   #44 = Utf8               java/util/stream/IntStream\n+   #45 = Utf8               sum\n+   #46 = Utf8               ()I\n+   #47 = Class              #48           // dev/langchain4j/model/output/TokenUsage\n+   #48 = Utf8               dev/langchain4j/model/output/TokenUsage\n+   #49 = Methodref          #50.#51       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #50 = Class              #52           // java/lang/Integer\n+   #51 = NameAndType        #53:#54       // valueOf:(I)Ljava/lang/Integer;\n+   #52 = Utf8               java/lang/Integer\n+   #53 = Utf8               valueOf\n+   #54 = Utf8               (I)Ljava/lang/Integer;\n+   #55 = Methodref          #47.#56       // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n+   #56 = NameAndType        #5:#57        // \"<init>\":(Ljava/lang/Integer;)V\n+   #57 = Utf8               (Ljava/lang/Integer;)V\n+   #58 = Fieldref           #59.#60       // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+   #59 = Class              #61           // dev/langchain4j/model/output/FinishReason\n+   #60 = NameAndType        #62:#63       // STOP:Ldev/langchain4j/model/output/FinishReason;\n+   #61 = Utf8               dev/langchain4j/model/output/FinishReason\n+   #62 = Utf8               STOP\n+   #63 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n+   #64 = Methodref          #65.#66       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+   #65 = Class              #67           // dev/langchain4j/model/output/Response\n+   #66 = NameAndType        #68:#69       // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+   #67 = Utf8               dev/langchain4j/model/output/Response\n+   #68 = Utf8               from\n+   #69 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+   #70 = Methodref          #71.#72       // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+   #71 = Class              #73           // dev/langchain4j/data/segment/TextSegment\n+   #72 = NameAndType        #74:#75       // text:()Ljava/lang/String;\n+   #73 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #74 = Utf8               text\n+   #75 = Utf8               ()Ljava/lang/String;\n+   #76 = Methodref          #77.#78       // java/lang/String.length:()I\n+   #77 = Class              #79           // java/lang/String\n+   #78 = NameAndType        #80:#46       // length:()I\n+   #79 = Utf8               java/lang/String\n+   #80 = Utf8               length\n+   #81 = Class              #82           // dev/langchain4j/data/embedding/Embedding\n+   #82 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #83 = Methodref          #77.#84       // java/lang/String.hashCode:()I\n+   #84 = NameAndType        #85:#46       // hashCode:()I\n+   #85 = Utf8               hashCode\n+   #86 = Methodref          #81.#87       // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+   #87 = NameAndType        #5:#88        // \"<init>\":([F)V\n+   #88 = Utf8               ([F)V\n+   #89 = Class              #90           // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n    #90 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-   #91 = Utf8               java/lang/Object\n+   #91 = Class              #92           // dev/langchain4j/model/embedding/EmbeddingModel\n    #92 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n-   #93 = Utf8               stream\n-   #94 = Utf8               ()Ljava/util/stream/Stream;\n-   #95 = Methodref          #135.#136     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #96 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-   #97 = Methodref          #21.#137      // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-   #98 = Utf8               apply\n-   #99 = Utf8               ()Ljava/util/function/Function;\n-  #100 = Utf8               java/util/stream/Stream\n-  #101 = Utf8               map\n-  #102 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #103 = Utf8               java/util/stream/Collectors\n-  #104 = Utf8               toList\n-  #105 = Utf8               ()Ljava/util/stream/Collector;\n-  #106 = Utf8               collect\n-  #107 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #108 = Utf8               (Ljava/lang/Object;)I\n-  #109 = Methodref          #21.#138      // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #110 = Utf8               applyAsInt\n-  #111 = Utf8               ()Ljava/util/function/ToIntFunction;\n-  #112 = Utf8               mapToInt\n-  #113 = Utf8               (Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-  #114 = Utf8               java/util/stream/IntStream\n-  #115 = Utf8               sum\n-  #116 = Utf8               ()I\n-  #117 = Utf8               java/lang/Integer\n-  #118 = Utf8               valueOf\n-  #119 = Utf8               (I)Ljava/lang/Integer;\n-  #120 = Utf8               (Ljava/lang/Integer;)V\n-  #121 = Utf8               dev/langchain4j/model/output/FinishReason\n-  #122 = Utf8               STOP\n-  #123 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n-  #124 = Utf8               dev/langchain4j/model/output/Response\n-  #125 = Utf8               from\n-  #126 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-  #127 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #128 = Utf8               text\n-  #129 = Utf8               ()Ljava/lang/String;\n-  #130 = Utf8               java/lang/String\n-  #131 = Utf8               length\n-  #132 = Utf8               hashCode\n-  #133 = Utf8               ([F)V\n-  #134 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest\n-  #135 = Class              #139          // java/lang/invoke/LambdaMetafactory\n-  #136 = NameAndType        #140:#143     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #137 = NameAndType        #49:#50       // lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-  #138 = NameAndType        #45:#46       // lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #139 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #140 = Utf8               metafactory\n-  #141 = Class              #145          // java/lang/invoke/MethodHandles$Lookup\n-  #142 = Utf8               Lookup\n-  #143 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #144 = Class              #146          // java/lang/invoke/MethodHandles\n-  #145 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #146 = Utf8               java/lang/invoke/MethodHandles\n+   #93 = Utf8               Code\n+   #94 = Utf8               LineNumberTable\n+   #95 = Utf8               LocalVariableTable\n+   #96 = Utf8               this\n+   #97 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl;\n+   #98 = Utf8               embedAll\n+   #99 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #100 = Utf8               textSegments\n+  #101 = Utf8               Ljava/util/List;\n+  #102 = Utf8               embeddings\n+  #103 = Utf8               tokenUsage\n+  #104 = Utf8               I\n+  #105 = Utf8               LocalVariableTypeTable\n+  #106 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #107 = Utf8               Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n+  #108 = Utf8               Signature\n+  #109 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n+  #110 = Utf8               lambda$embedAll$1\n+  #111 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n+  #112 = Utf8               ts\n+  #113 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #114 = Utf8               lambda$embedAll$0\n+  #115 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+  #116 = Utf8               SourceFile\n+  #117 = Utf8               EmbeddingModelTest.java\n+  #118 = Utf8               BootstrapMethods\n+  #119 = MethodHandle       6:#120        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #120 = Methodref          #121.#122     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #121 = Class              #123          // java/lang/invoke/LambdaMetafactory\n+  #122 = NameAndType        #124:#125     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #123 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #124 = Utf8               metafactory\n+  #125 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #126 = MethodType         #127          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #127 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #128 = MethodHandle       6:#129        // REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+  #129 = Methodref          #89.#130      // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+  #130 = NameAndType        #114:#115     // lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+  #131 = MethodType         #115          //  (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+  #132 = MethodType         #133          //  (Ljava/lang/Object;)I\n+  #133 = Utf8               (Ljava/lang/Object;)I\n+  #134 = MethodHandle       6:#135        // REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #135 = Methodref          #89.#136      // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #136 = NameAndType        #110:#111     // lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #137 = MethodType         #111          //  (Ldev/langchain4j/data/segment/TextSegment;)I\n+  #138 = Utf8               InnerClasses\n+  #139 = Class              #140          // dev/langchain4j/model/embedding/EmbeddingModelTest\n+  #140 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest\n+  #141 = Utf8               EmbeddingModelImpl\n+  #142 = Class              #143          // java/lang/invoke/MethodHandles$Lookup\n+  #143 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #144 = Class              #145          // java/lang/invoke/MethodHandles\n+  #145 = Utf8               java/lang/invoke/MethodHandles\n+  #146 = Utf8               Lookup\n {\n   public dev.langchain4j.model.embedding.EmbeddingModelTest$EmbeddingModelImpl();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -171,35 +171,35 @@\n \n   public dev.langchain4j.model.output.Response<java.util.List<dev.langchain4j.data.embedding.Embedding>> embedAll(java.util.List<dev.langchain4j.data.segment.TextSegment>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=4, args_size=2\n          0: aload_1\n-         1: invokeinterface #2,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-         6: invokedynamic #3,  0              // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n-        11: invokeinterface #4,  2            // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        16: invokestatic  #5                  // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        19: invokeinterface #6,  2            // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        24: checkcast     #7                  // class java/util/List\n+         1: invokeinterface #7,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+         6: invokedynamic #13,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+        11: invokeinterface #17,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        16: invokestatic  #23                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        19: invokeinterface #29,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        24: checkcast     #8                  // class java/util/List\n         27: astore_2\n         28: aload_1\n-        29: invokeinterface #2,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-        34: invokedynamic #8,  0              // InvokeDynamic #1:applyAsInt:()Ljava/util/function/ToIntFunction;\n-        39: invokeinterface #9,  2            // InterfaceMethod java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n-        44: invokeinterface #10,  1           // InterfaceMethod java/util/stream/IntStream.sum:()I\n+        29: invokeinterface #7,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+        34: invokedynamic #33,  0             // InvokeDynamic #1:applyAsInt:()Ljava/util/function/ToIntFunction;\n+        39: invokeinterface #37,  2           // InterfaceMethod java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;\n+        44: invokeinterface #41,  1           // InterfaceMethod java/util/stream/IntStream.sum:()I\n         49: istore_3\n         50: aload_2\n-        51: new           #11                 // class dev/langchain4j/model/output/TokenUsage\n+        51: new           #47                 // class dev/langchain4j/model/output/TokenUsage\n         54: dup\n         55: iload_3\n-        56: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        59: invokespecial #13                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n-        62: getstatic     #14                 // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-        65: invokestatic  #15                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+        56: invokestatic  #49                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        59: invokespecial #55                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n+        62: getstatic     #58                 // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+        65: invokestatic  #64                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n         68: areturn\n       LineNumberTable:\n         line 19: 0\n         line 20: 1\n         line 21: 16\n         line 23: 28\n         line 25: 50\n@@ -209,70 +209,70 @@\n             0      69     1 textSegments   Ljava/util/List;\n            28      41     2 embeddings   Ljava/util/List;\n            50      19     3 tokenUsage   I\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      69     1 textSegments   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n            28      41     2 embeddings   Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n-    Signature: #44                          // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n+    Signature: #109                         // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n \n   private static int lambda$embedAll$1(dev.langchain4j.data.segment.TextSegment);\n     descriptor: (Ldev/langchain4j/data/segment/TextSegment;)I\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #16                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-         4: invokevirtual #17                 // Method java/lang/String.length:()I\n+         1: invokevirtual #70                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+         4: invokevirtual #76                 // Method java/lang/String.length:()I\n          7: ireturn\n       LineNumberTable:\n         line 23: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0    ts   Ldev/langchain4j/data/segment/TextSegment;\n \n   private static dev.langchain4j.data.embedding.Embedding lambda$embedAll$0(dev.langchain4j.data.segment.TextSegment);\n     descriptor: (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=6, locals=1, args_size=1\n-         0: new           #18                 // class dev/langchain4j/data/embedding/Embedding\n+         0: new           #81                 // class dev/langchain4j/data/embedding/Embedding\n          3: dup\n          4: iconst_2\n          5: newarray       float\n          7: dup\n          8: iconst_0\n          9: aload_0\n-        10: invokevirtual #16                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-        13: invokevirtual #17                 // Method java/lang/String.length:()I\n+        10: invokevirtual #70                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+        13: invokevirtual #76                 // Method java/lang/String.length:()I\n         16: i2f\n         17: fastore\n         18: dup\n         19: iconst_1\n         20: aload_0\n-        21: invokevirtual #16                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-        24: invokevirtual #19                 // Method java/lang/String.hashCode:()I\n+        21: invokevirtual #70                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+        24: invokevirtual #83                 // Method java/lang/String.hashCode:()I\n         27: i2f\n         28: fastore\n-        29: invokespecial #20                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        29: invokespecial #86                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         32: areturn\n       LineNumberTable:\n         line 20: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      33     0    ts   Ldev/langchain4j/data/segment/TextSegment;\n }\n SourceFile: \"EmbeddingModelTest.java\"\n-InnerClasses:\n-  public static #30= #21 of #89;          // EmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n-  public static final #142= #141 of #144; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #56 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #119 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #57 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #58 REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-      #59 (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n-  1: #56 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #126 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #128 REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$0:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+      #131 (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/data/embedding/Embedding;\n+  1: #119 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #67 (Ljava/lang/Object;)I\n-      #68 REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n-      #69 (Ldev/langchain4j/data/segment/TextSegment;)I\n+      #132 (Ljava/lang/Object;)I\n+      #134 REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.lambda$embedAll$1:(Ldev/langchain4j/data/segment/TextSegment;)I\n+      #137 (Ldev/langchain4j/data/segment/TextSegment;)I\n+InnerClasses:\n+  public static #141= #89 of #139;        // EmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n+  public static final #146= #142 of #144; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/embedding/EmbeddingModelTest.class", "source2": "dev/langchain4j/model/embedding/EmbeddingModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,184 +1,184 @@\n-  SHA-256 checksum 84cf92fd57264a778e524c1cf352ceb7b99e1fd71eaf42a319826f55fc6c2056\n+  SHA-256 checksum 47ce0ec60c3540a8d286b52ca1826a66c2dd8efbaf8d188285bf690d625160a8\n   Compiled from \"EmbeddingModelTest.java\"\n class dev.langchain4j.model.embedding.EmbeddingModelTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n   this_class: #31                         // dev/langchain4j/model/embedding/EmbeddingModelTest\n-  super_class: #32                        // java/lang/Object\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 3\n Constant pool:\n-    #1 = Methodref          #32.#62       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #63           // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-    #3 = Methodref          #2.#62        // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n-    #4 = String             #64           // abc def\n-    #5 = InterfaceMethodref #65.#66       // dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-    #6 = Methodref          #67.#68       // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-    #7 = Class              #69           // dev/langchain4j/data/embedding/Embedding\n-    #8 = Methodref          #7.#70        // dev/langchain4j/data/embedding/Embedding.vector:()[F\n-    #9 = Methodref          #31.#71       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #10 = Methodref          #72.#73       // java/lang/String.length:()I\n-   #11 = Methodref          #72.#74       // java/lang/String.hashCode:()I\n-   #12 = Methodref          #75.#76       // org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #13 = Methodref          #67.#77       // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-   #14 = Methodref          #31.#78       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #15 = Fieldref           #79.#80       // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-   #16 = Methodref          #81.#82       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #17 = Methodref          #67.#83       // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-   #18 = Methodref          #31.#84       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #19 = Class              #85           // dev/langchain4j/model/output/TokenUsage\n-   #20 = Methodref          #86.#87       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #21 = Methodref          #19.#88       // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n-   #22 = Methodref          #89.#82       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #23 = Class              #90           // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n-   #24 = Methodref          #23.#62       // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.\"<init>\":()V\n-   #25 = Class              #91           // java/lang/IllegalArgumentException\n-   #26 = Methodref          #31.#92       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #27 = InvokeDynamic      #0:#97        // #0:call:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #28 = Methodref          #98.#99       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #29 = String             #100          // Expected a single embedding, but got 2\n-   #30 = Methodref          #101.#102     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #31 = Class              #103          // dev/langchain4j/model/embedding/EmbeddingModelTest\n-   #32 = Class              #104          // java/lang/Object\n-   #33 = Class              #105          // org/assertj/core/api/WithAssertions\n-   #34 = Utf8               BrokenEmbeddingModelImpl\n-   #35 = Utf8               InnerClasses\n-   #36 = Utf8               EmbeddingModelImpl\n-   #37 = Utf8               <init>\n-   #38 = Utf8               ()V\n-   #39 = Utf8               Code\n-   #40 = Utf8               LineNumberTable\n-   #41 = Utf8               LocalVariableTable\n-   #42 = Utf8               this\n-   #43 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModelTest;\n-   #44 = Utf8               test\n-   #45 = Utf8               model\n-   #46 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModel;\n-   #47 = Utf8               abcDef\n-   #48 = Utf8               Ljava/lang/String;\n-   #49 = Utf8               response\n-   #50 = Utf8               Ldev/langchain4j/model/output/Response;\n-   #51 = Utf8               LocalVariableTypeTable\n-   #52 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/embedding/Embedding;>;\n-   #53 = Utf8               RuntimeVisibleAnnotations\n-   #54 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #55 = Utf8               test_broken\n-   #56 = Utf8               lambda$test_broken$0\n-   #57 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-   #58 = Utf8               Exceptions\n-   #59 = Class              #106          // java/lang/Throwable\n-   #60 = Utf8               SourceFile\n-   #61 = Utf8               EmbeddingModelTest.java\n-   #62 = NameAndType        #37:#38       // \"<init>\":()V\n-   #63 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n-   #64 = Utf8               abc def\n-   #65 = Class              #107          // dev/langchain4j/model/embedding/EmbeddingModel\n-   #66 = NameAndType        #108:#109     // embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-   #67 = Class              #110          // dev/langchain4j/model/output/Response\n-   #68 = NameAndType        #111:#112     // content:()Ljava/lang/Object;\n-   #69 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #70 = NameAndType        #113:#114     // vector:()[F\n-   #71 = NameAndType        #115:#116     // assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #72 = Class              #117          // java/lang/String\n-   #73 = NameAndType        #118:#119     // length:()I\n-   #74 = NameAndType        #120:#119     // hashCode:()I\n-   #75 = Class              #121          // org/assertj/core/api/AbstractFloatArrayAssert\n-   #76 = NameAndType        #122:#116     // containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #77 = NameAndType        #123:#124     // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-   #78 = NameAndType        #115:#125     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #79 = Class              #126          // dev/langchain4j/model/output/FinishReason\n-   #80 = NameAndType        #127:#128     // STOP:Ldev/langchain4j/model/output/FinishReason;\n-   #81 = Class              #129          // org/assertj/core/api/AbstractComparableAssert\n-   #82 = NameAndType        #130:#131     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #83 = NameAndType        #132:#133     // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-   #84 = NameAndType        #115:#134     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #85 = Utf8               dev/langchain4j/model/output/TokenUsage\n-   #86 = Class              #135          // java/lang/Integer\n-   #87 = NameAndType        #136:#137     // valueOf:(I)Ljava/lang/Integer;\n-   #88 = NameAndType        #37:#138      // \"<init>\":(Ljava/lang/Integer;)V\n-   #89 = Class              #139          // org/assertj/core/api/ObjectAssert\n-   #90 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n-   #91 = Utf8               java/lang/IllegalArgumentException\n-   #92 = NameAndType        #140:#141     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #93 = Utf8               BootstrapMethods\n-   #94 = MethodHandle       6:#142        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #95 = MethodType         #38           //  ()V\n-   #96 = MethodHandle       6:#143        // REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest.lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-   #97 = NameAndType        #144:#147     // call:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #98 = Class              #148          // org/assertj/core/api/ThrowableTypeAssert\n-   #99 = NameAndType        #149:#150     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #100 = Utf8               Expected a single embedding, but got 2\n-  #101 = Class              #151          // org/assertj/core/api/ThrowableAssertAlternative\n-  #102 = NameAndType        #152:#153     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #103 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest\n-  #104 = Utf8               java/lang/Object\n-  #105 = Utf8               org/assertj/core/api/WithAssertions\n-  #106 = Utf8               java/lang/Throwable\n-  #107 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n-  #108 = Utf8               embed\n-  #109 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #110 = Utf8               dev/langchain4j/model/output/Response\n-  #111 = Utf8               content\n-  #112 = Utf8               ()Ljava/lang/Object;\n-  #113 = Utf8               vector\n-  #114 = Utf8               ()[F\n-  #115 = Utf8               assertThat\n-  #116 = Utf8               ([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-  #117 = Utf8               java/lang/String\n-  #118 = Utf8               length\n-  #119 = Utf8               ()I\n-  #120 = Utf8               hashCode\n-  #121 = Utf8               org/assertj/core/api/AbstractFloatArrayAssert\n-  #122 = Utf8               containsExactly\n-  #123 = Utf8               finishReason\n-  #124 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n-  #125 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #126 = Utf8               dev/langchain4j/model/output/FinishReason\n-  #127 = Utf8               STOP\n-  #128 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n-  #129 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #130 = Utf8               isEqualTo\n-  #131 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #132 = Utf8               tokenUsage\n-  #133 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n-  #134 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #135 = Utf8               java/lang/Integer\n-  #136 = Utf8               valueOf\n-  #137 = Utf8               (I)Ljava/lang/Integer;\n-  #138 = Utf8               (Ljava/lang/Integer;)V\n-  #139 = Utf8               org/assertj/core/api/ObjectAssert\n-  #140 = Utf8               assertThatExceptionOfType\n-  #141 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #142 = Methodref          #154.#155     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #143 = Methodref          #31.#156      // dev/langchain4j/model/embedding/EmbeddingModelTest.lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-  #144 = Utf8               call\n-  #145 = Class              #158          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #146 = Utf8               ThrowingCallable\n-  #147 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #148 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #149 = Utf8               isThrownBy\n-  #150 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #151 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #152 = Utf8               withMessageContaining\n-  #153 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #154 = Class              #159          // java/lang/invoke/LambdaMetafactory\n-  #155 = NameAndType        #160:#163     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #156 = NameAndType        #56:#57       // lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-  #157 = Class              #164          // org/assertj/core/api/ThrowableAssert\n-  #158 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #159 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #160 = Utf8               metafactory\n-  #161 = Class              #166          // java/lang/invoke/MethodHandles$Lookup\n-  #162 = Utf8               Lookup\n-  #163 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #164 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #165 = Class              #167          // java/lang/invoke/MethodHandles\n-  #166 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #167 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+    #8 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n+   #10 = String             #11           // abc def\n+   #11 = Utf8               abc def\n+   #12 = InterfaceMethodref #13.#14       // dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #13 = Class              #15           // dev/langchain4j/model/embedding/EmbeddingModel\n+   #14 = NameAndType        #16:#17       // embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #15 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n+   #16 = Utf8               embed\n+   #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #18 = Methodref          #19.#20       // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+   #19 = Class              #21           // dev/langchain4j/model/output/Response\n+   #20 = NameAndType        #22:#23       // content:()Ljava/lang/Object;\n+   #21 = Utf8               dev/langchain4j/model/output/Response\n+   #22 = Utf8               content\n+   #23 = Utf8               ()Ljava/lang/Object;\n+   #24 = Class              #25           // dev/langchain4j/data/embedding/Embedding\n+   #25 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #26 = Methodref          #24.#27       // dev/langchain4j/data/embedding/Embedding.vector:()[F\n+   #27 = NameAndType        #28:#29       // vector:()[F\n+   #28 = Utf8               vector\n+   #29 = Utf8               ()[F\n+   #30 = Methodref          #31.#32       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #31 = Class              #33           // dev/langchain4j/model/embedding/EmbeddingModelTest\n+   #32 = NameAndType        #34:#35       // assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #33 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest\n+   #34 = Utf8               assertThat\n+   #35 = Utf8               ([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #36 = Methodref          #37.#38       // java/lang/String.length:()I\n+   #37 = Class              #39           // java/lang/String\n+   #38 = NameAndType        #40:#41       // length:()I\n+   #39 = Utf8               java/lang/String\n+   #40 = Utf8               length\n+   #41 = Utf8               ()I\n+   #42 = Methodref          #37.#43       // java/lang/String.hashCode:()I\n+   #43 = NameAndType        #44:#41       // hashCode:()I\n+   #44 = Utf8               hashCode\n+   #45 = Methodref          #46.#47       // org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #46 = Class              #48           // org/assertj/core/api/AbstractFloatArrayAssert\n+   #47 = NameAndType        #49:#35       // containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #48 = Utf8               org/assertj/core/api/AbstractFloatArrayAssert\n+   #49 = Utf8               containsExactly\n+   #50 = Methodref          #19.#51       // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+   #51 = NameAndType        #52:#53       // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+   #52 = Utf8               finishReason\n+   #53 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n+   #54 = Methodref          #31.#55       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #55 = NameAndType        #34:#56       // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #56 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #57 = Fieldref           #58.#59       // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+   #58 = Class              #60           // dev/langchain4j/model/output/FinishReason\n+   #59 = NameAndType        #61:#62       // STOP:Ldev/langchain4j/model/output/FinishReason;\n+   #60 = Utf8               dev/langchain4j/model/output/FinishReason\n+   #61 = Utf8               STOP\n+   #62 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n+   #63 = Methodref          #64.#65       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #64 = Class              #66           // org/assertj/core/api/AbstractComparableAssert\n+   #65 = NameAndType        #67:#68       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #66 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+   #67 = Utf8               isEqualTo\n+   #68 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #69 = Methodref          #19.#70       // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #70 = NameAndType        #71:#72       // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #71 = Utf8               tokenUsage\n+   #72 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n+   #73 = Methodref          #31.#74       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #74 = NameAndType        #34:#75       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #75 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #76 = Class              #77           // dev/langchain4j/model/output/TokenUsage\n+   #77 = Utf8               dev/langchain4j/model/output/TokenUsage\n+   #78 = Methodref          #79.#80       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #79 = Class              #81           // java/lang/Integer\n+   #80 = NameAndType        #82:#83       // valueOf:(I)Ljava/lang/Integer;\n+   #81 = Utf8               java/lang/Integer\n+   #82 = Utf8               valueOf\n+   #83 = Utf8               (I)Ljava/lang/Integer;\n+   #84 = Methodref          #76.#85       // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n+   #85 = NameAndType        #5:#86        // \"<init>\":(Ljava/lang/Integer;)V\n+   #86 = Utf8               (Ljava/lang/Integer;)V\n+   #87 = Methodref          #88.#65       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #88 = Class              #89           // org/assertj/core/api/ObjectAssert\n+   #89 = Utf8               org/assertj/core/api/ObjectAssert\n+   #90 = Class              #91           // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n+   #91 = Utf8               dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n+   #92 = Methodref          #90.#3        // dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.\"<init>\":()V\n+   #93 = Class              #94           // java/lang/IllegalArgumentException\n+   #94 = Utf8               java/lang/IllegalArgumentException\n+   #95 = Methodref          #31.#96       // dev/langchain4j/model/embedding/EmbeddingModelTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #96 = NameAndType        #97:#98       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #97 = Utf8               assertThatExceptionOfType\n+   #98 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #99 = InvokeDynamic      #0:#100       // #0:call:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #100 = NameAndType        #101:#102     // call:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #101 = Utf8               call\n+  #102 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #103 = Methodref          #104.#105     // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #104 = Class              #106          // org/assertj/core/api/ThrowableTypeAssert\n+  #105 = NameAndType        #107:#108     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #106 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+  #107 = Utf8               isThrownBy\n+  #108 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #109 = String             #110          // Expected a single embedding, but got 2\n+  #110 = Utf8               Expected a single embedding, but got 2\n+  #111 = Methodref          #112.#113     // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #112 = Class              #114          // org/assertj/core/api/ThrowableAssertAlternative\n+  #113 = NameAndType        #115:#116     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #114 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+  #115 = Utf8               withMessageContaining\n+  #116 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+  #117 = Class              #118          // org/assertj/core/api/WithAssertions\n+  #118 = Utf8               org/assertj/core/api/WithAssertions\n+  #119 = Utf8               Code\n+  #120 = Utf8               LineNumberTable\n+  #121 = Utf8               LocalVariableTable\n+  #122 = Utf8               this\n+  #123 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModelTest;\n+  #124 = Utf8               test\n+  #125 = Utf8               model\n+  #126 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModel;\n+  #127 = Utf8               abcDef\n+  #128 = Utf8               Ljava/lang/String;\n+  #129 = Utf8               response\n+  #130 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #131 = Utf8               LocalVariableTypeTable\n+  #132 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/embedding/Embedding;>;\n+  #133 = Utf8               RuntimeVisibleAnnotations\n+  #134 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #135 = Utf8               test_broken\n+  #136 = Utf8               lambda$test_broken$0\n+  #137 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #138 = Utf8               Exceptions\n+  #139 = Class              #140          // java/lang/Throwable\n+  #140 = Utf8               java/lang/Throwable\n+  #141 = Utf8               SourceFile\n+  #142 = Utf8               EmbeddingModelTest.java\n+  #143 = Utf8               BootstrapMethods\n+  #144 = MethodHandle       6:#145        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #145 = Methodref          #146.#147     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #146 = Class              #148          // java/lang/invoke/LambdaMetafactory\n+  #147 = NameAndType        #149:#150     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #148 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #149 = Utf8               metafactory\n+  #150 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #151 = MethodType         #6            //  ()V\n+  #152 = MethodHandle       6:#153        // REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest.lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #153 = Methodref          #31.#154      // dev/langchain4j/model/embedding/EmbeddingModelTest.lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #154 = NameAndType        #136:#137     // lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #155 = Utf8               InnerClasses\n+  #156 = Utf8               EmbeddingModelImpl\n+  #157 = Utf8               BrokenEmbeddingModelImpl\n+  #158 = Class              #159          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #159 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #160 = Class              #161          // org/assertj/core/api/ThrowableAssert\n+  #161 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #162 = Utf8               ThrowingCallable\n+  #163 = Class              #164          // java/lang/invoke/MethodHandles$Lookup\n+  #164 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #165 = Class              #166          // java/lang/invoke/MethodHandles\n+  #166 = Utf8               java/lang/invoke/MethodHandles\n+  #167 = Utf8               Lookup\n {\n   dev.langchain4j.model.embedding.EmbeddingModelTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -191,64 +191,64 @@\n             0       5     0  this   Ldev/langchain4j/model/embedding/EmbeddingModelTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=4, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n+         0: new           #7                  // class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl.\"<init>\":()V\n          7: astore_1\n-         8: ldc           #4                  // String abc def\n+         8: ldc           #10                 // String abc def\n         10: astore_2\n         11: aload_1\n         12: aload_2\n-        13: invokeinterface #5,  2            // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+        13: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n         18: astore_3\n         19: aload_0\n         20: aload_3\n-        21: invokevirtual #6                  // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-        24: checkcast     #7                  // class dev/langchain4j/data/embedding/Embedding\n-        27: invokevirtual #8                  // Method dev/langchain4j/data/embedding/Embedding.vector:()[F\n-        30: invokevirtual #9                  // Method assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+        21: invokevirtual #18                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+        24: checkcast     #24                 // class dev/langchain4j/data/embedding/Embedding\n+        27: invokevirtual #26                 // Method dev/langchain4j/data/embedding/Embedding.vector:()[F\n+        30: invokevirtual #30                 // Method assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n         33: iconst_2\n         34: newarray       float\n         36: dup\n         37: iconst_0\n         38: aload_2\n-        39: invokevirtual #10                 // Method java/lang/String.length:()I\n+        39: invokevirtual #36                 // Method java/lang/String.length:()I\n         42: i2f\n         43: fastore\n         44: dup\n         45: iconst_1\n         46: aload_2\n-        47: invokevirtual #11                 // Method java/lang/String.hashCode:()I\n+        47: invokevirtual #42                 // Method java/lang/String.hashCode:()I\n         50: i2f\n         51: fastore\n-        52: invokevirtual #12                 // Method org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+        52: invokevirtual #45                 // Method org/assertj/core/api/AbstractFloatArrayAssert.containsExactly:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n         55: pop\n         56: aload_0\n         57: aload_3\n-        58: invokevirtual #13                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-        61: invokevirtual #14                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        64: getstatic     #15                 // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-        67: invokevirtual #16                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        58: invokevirtual #50                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+        61: invokevirtual #54                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        64: getstatic     #57                 // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+        67: invokevirtual #63                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         70: pop\n         71: aload_0\n         72: aload_3\n-        73: invokevirtual #17                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-        76: invokevirtual #18                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        79: new           #19                 // class dev/langchain4j/model/output/TokenUsage\n+        73: invokevirtual #69                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+        76: invokevirtual #73                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        79: new           #76                 // class dev/langchain4j/model/output/TokenUsage\n         82: dup\n         83: aload_2\n-        84: invokevirtual #10                 // Method java/lang/String.length:()I\n-        87: invokestatic  #20                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        90: invokespecial #21                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n-        93: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        84: invokevirtual #36                 // Method java/lang/String.length:()I\n+        87: invokestatic  #78                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        90: invokespecial #84                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n+        93: invokevirtual #87                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         96: pop\n         97: return\n       LineNumberTable:\n         line 42: 0\n         line 44: 8\n         line 45: 11\n         line 47: 19\n@@ -261,73 +261,73 @@\n             8      90     1 model   Ldev/langchain4j/model/embedding/EmbeddingModel;\n            11      87     2 abcDef   Ljava/lang/String;\n            19      79     3 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            19      79     3 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/embedding/Embedding;>;\n     RuntimeVisibleAnnotations:\n-      0: #54()\n+      0: #134()\n         org.junit.jupiter.api.Test\n \n   public void test_broken();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: new           #23                 // class dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n+         0: new           #90                 // class dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl\n          3: dup\n-         4: invokespecial #24                 // Method dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.\"<init>\":()V\n+         4: invokespecial #92                 // Method dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n-         9: ldc           #25                 // class java/lang/IllegalArgumentException\n-        11: invokevirtual #26                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+         9: ldc           #93                 // class java/lang/IllegalArgumentException\n+        11: invokevirtual #95                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         14: aload_1\n-        15: invokedynamic #27,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        20: invokevirtual #28                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        23: ldc           #29                 // String Expected a single embedding, but got 2\n-        25: invokevirtual #30                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        15: invokedynamic #99,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        20: invokevirtual #103                // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        23: ldc           #109                // String Expected a single embedding, but got 2\n+        25: invokevirtual #111                // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         28: pop\n         29: return\n       LineNumberTable:\n         line 54: 0\n         line 56: 8\n         line 57: 20\n         line 58: 25\n         line 59: 29\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      30     0  this   Ldev/langchain4j/model/embedding/EmbeddingModelTest;\n             8      22     1 model   Ldev/langchain4j/model/embedding/EmbeddingModel;\n     RuntimeVisibleAnnotations:\n-      0: #54()\n+      0: #134()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_broken$0(dev.langchain4j.model.embedding.EmbeddingModel) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #4                  // String abc def\n-         3: invokeinterface #5,  2            // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+         1: ldc           #10                 // String abc def\n+         3: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n          8: pop\n          9: return\n       LineNumberTable:\n         line 57: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0 model   Ldev/langchain4j/model/embedding/EmbeddingModel;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"EmbeddingModelTest.java\"\n-InnerClasses:\n-  public static #34= #23 of #31;          // BrokenEmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n-  public static #36= #2 of #31;           // EmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n-  public static #146= #145 of #157;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #162= #161 of #165; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #94 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #144 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #95 ()V\n-      #96 REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest.lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-      #95 ()V\n+      #151 ()V\n+      #152 REF_invokeStatic dev/langchain4j/model/embedding/EmbeddingModelTest.lambda$test_broken$0:(Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+      #151 ()V\n+InnerClasses:\n+  public static #156= #7 of #31;          // EmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$EmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n+  public static #157= #90 of #31;         // BrokenEmbeddingModelImpl=class dev/langchain4j/model/embedding/EmbeddingModelTest$BrokenEmbeddingModelImpl of class dev/langchain4j/model/embedding/EmbeddingModelTest\n+  public static #162= #158 of #160;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #167= #163 of #165; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class", "source2": "dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,50 +1,50 @@\n-  SHA-256 checksum 01b4df510b17c2b0d86089ef058b21ae4b503940bf4ea57c2f9f4c4f840c032a\n+  SHA-256 checksum ff32609e3eb70c879c83a83d6c297b6c436d98cab242ab77cb60293d611baf3e\n   Compiled from \"TokenCountEstimatorTest.java\"\n public class dev.langchain4j.model.embedding.TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator implements dev.langchain4j.model.embedding.TokenCountEstimator\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  super_class: #5                         // java/lang/Object\n+  this_class: #15                         // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #5.#22         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #23            // \\\\s+\n-   #3 = Methodref          #24.#25        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n-   #4 = Class              #27            // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-   #5 = Class              #28            // java/lang/Object\n-   #6 = Class              #29            // dev/langchain4j/model/embedding/TokenCountEstimator\n-   #7 = Utf8               <init>\n-   #8 = Utf8               ()V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               WhitespaceSplitTokenCountEstimator\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n-  #16 = Utf8               estimateTokenCount\n-  #17 = Utf8               (Ljava/lang/String;)I\n-  #18 = Utf8               text\n-  #19 = Utf8               Ljava/lang/String;\n-  #20 = Utf8               SourceFile\n-  #21 = Utf8               TokenCountEstimatorTest.java\n-  #22 = NameAndType        #7:#8          // \"<init>\":()V\n-  #23 = Utf8               \\\\s+\n-  #24 = Class              #30            // java/lang/String\n-  #25 = NameAndType        #31:#32        // split:(Ljava/lang/String;)[Ljava/lang/String;\n-  #26 = Class              #33            // dev/langchain4j/model/embedding/TokenCountEstimatorTest\n-  #27 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #28 = Utf8               java/lang/Object\n-  #29 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimator\n-  #30 = Utf8               java/lang/String\n-  #31 = Utf8               split\n-  #32 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n-  #33 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // \\\\s+\n+   #8 = Utf8               \\\\s+\n+   #9 = Methodref          #10.#11        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #10 = Class              #12            // java/lang/String\n+  #11 = NameAndType        #13:#14        // split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #12 = Utf8               java/lang/String\n+  #13 = Utf8               split\n+  #14 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n+  #15 = Class              #16            // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  #16 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  #17 = Class              #18            // dev/langchain4j/model/embedding/TokenCountEstimator\n+  #18 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimator\n+  #19 = Utf8               Code\n+  #20 = Utf8               LineNumberTable\n+  #21 = Utf8               LocalVariableTable\n+  #22 = Utf8               this\n+  #23 = Utf8               Ldev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n+  #24 = Utf8               estimateTokenCount\n+  #25 = Utf8               (Ljava/lang/String;)I\n+  #26 = Utf8               text\n+  #27 = Utf8               Ljava/lang/String;\n+  #28 = Utf8               SourceFile\n+  #29 = Utf8               TokenCountEstimatorTest.java\n+  #30 = Utf8               InnerClasses\n+  #31 = Class              #32            // dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  #32 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  #33 = Utf8               WhitespaceSplitTokenCountEstimator\n {\n   public dev.langchain4j.model.embedding.TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -58,21 +58,21 @@\n \n   public int estimateTokenCount(java.lang.String);\n     descriptor: (Ljava/lang/String;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_1\n-         1: ldc           #2                  // String \\\\s+\n-         3: invokevirtual #3                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+         1: ldc           #7                  // String \\\\s+\n+         3: invokevirtual #9                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n          6: arraylength\n          7: ireturn\n       LineNumberTable:\n         line 15: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n             0       8     1  text   Ljava/lang/String;\n }\n SourceFile: \"TokenCountEstimatorTest.java\"\n InnerClasses:\n-  public static #13= #4 of #26;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  public static #33= #15 of #31;          // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/embedding/TokenCountEstimatorTest\n"}]}, {"source1": "dev/langchain4j/model/embedding/TokenCountEstimatorTest.class", "source2": "dev/langchain4j/model/embedding/TokenCountEstimatorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,90 +1,90 @@\n-  SHA-256 checksum d944ef418b33e2b7dcf8673850f20797fa83ecf73c1217dbef3402803a9a1fa7\n+  SHA-256 checksum ab0c2097a23abb450f66a862a42936aca13c8541f309ee99263029b6bf037120\n   Compiled from \"TokenCountEstimatorTest.java\"\n class dev.langchain4j.model.embedding.TokenCountEstimatorTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #16                         // dev/langchain4j/model/embedding/TokenCountEstimatorTest\n-  super_class: #17                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #17.#39        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #40            // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-   #3 = Methodref          #2.#39         // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n-   #4 = String             #41            // foo bar, baz\n-   #5 = InterfaceMethodref #42.#43        // dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n-   #6 = Methodref          #16.#44        // dev/langchain4j/model/embedding/TokenCountEstimatorTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #7 = Methodref          #45.#46        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #8 = Methodref          #47.#48        // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #9 = InterfaceMethodref #42.#49        // dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #10 = Class              #50            // java/util/ArrayList\n-  #11 = Methodref          #10.#39        // java/util/ArrayList.\"<init>\":()V\n-  #12 = String             #51            // Hello, world!\n-  #13 = InterfaceMethodref #52.#53        // java/util/List.add:(Ljava/lang/Object;)Z\n-  #14 = String             #54            // How are you?\n-  #15 = InterfaceMethodref #42.#55        // dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n-  #16 = Class              #56            // dev/langchain4j/model/embedding/TokenCountEstimatorTest\n-  #17 = Class              #57            // java/lang/Object\n-  #18 = Class              #58            // org/assertj/core/api/WithAssertions\n-  #19 = Utf8               WhitespaceSplitTokenCountEstimator\n-  #20 = Utf8               InnerClasses\n-  #21 = Utf8               <init>\n-  #22 = Utf8               ()V\n-  #23 = Utf8               Code\n-  #24 = Utf8               LineNumberTable\n-  #25 = Utf8               LocalVariableTable\n-  #26 = Utf8               this\n-  #27 = Utf8               Ldev/langchain4j/model/embedding/TokenCountEstimatorTest;\n-  #28 = Utf8               test\n-  #29 = Utf8               segments\n-  #30 = Utf8               Ljava/util/List;\n-  #31 = Utf8               estimator\n-  #32 = Utf8               Ldev/langchain4j/model/embedding/TokenCountEstimator;\n-  #33 = Utf8               LocalVariableTypeTable\n-  #34 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-  #35 = Utf8               RuntimeVisibleAnnotations\n-  #36 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #37 = Utf8               SourceFile\n-  #38 = Utf8               TokenCountEstimatorTest.java\n-  #39 = NameAndType        #21:#22        // \"<init>\":()V\n-  #40 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #41 = Utf8               foo bar, baz\n-  #42 = Class              #59            // dev/langchain4j/model/embedding/TokenCountEstimator\n-  #43 = NameAndType        #60:#61        // estimateTokenCount:(Ljava/lang/String;)I\n-  #44 = NameAndType        #62:#63        // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #45 = Class              #64            // org/assertj/core/api/AbstractIntegerAssert\n-  #46 = NameAndType        #65:#63        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #47 = Class              #66            // dev/langchain4j/data/segment/TextSegment\n-  #48 = NameAndType        #67:#68        // textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #49 = NameAndType        #60:#69        // estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #50 = Utf8               java/util/ArrayList\n-  #51 = Utf8               Hello, world!\n-  #52 = Class              #70            // java/util/List\n-  #53 = NameAndType        #71:#72        // add:(Ljava/lang/Object;)Z\n-  #54 = Utf8               How are you?\n-  #55 = NameAndType        #60:#73        // estimateTokenCount:(Ljava/util/List;)I\n-  #56 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest\n-  #57 = Utf8               java/lang/Object\n-  #58 = Utf8               org/assertj/core/api/WithAssertions\n-  #59 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimator\n-  #60 = Utf8               estimateTokenCount\n-  #61 = Utf8               (Ljava/lang/String;)I\n-  #62 = Utf8               assertThat\n-  #63 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #64 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n-  #65 = Utf8               isEqualTo\n-  #66 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #67 = Utf8               textSegment\n-  #68 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #69 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n-  #70 = Utf8               java/util/List\n-  #71 = Utf8               add\n-  #72 = Utf8               (Ljava/lang/Object;)Z\n-  #73 = Utf8               (Ljava/util/List;)I\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+   #8 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n+  #10 = String             #11            // foo bar, baz\n+  #11 = Utf8               foo bar, baz\n+  #12 = InterfaceMethodref #13.#14        // dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n+  #13 = Class              #15            // dev/langchain4j/model/embedding/TokenCountEstimator\n+  #14 = NameAndType        #16:#17        // estimateTokenCount:(Ljava/lang/String;)I\n+  #15 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimator\n+  #16 = Utf8               estimateTokenCount\n+  #17 = Utf8               (Ljava/lang/String;)I\n+  #18 = Methodref          #19.#20        // dev/langchain4j/model/embedding/TokenCountEstimatorTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #19 = Class              #21            // dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  #20 = NameAndType        #22:#23        // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #21 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  #22 = Utf8               assertThat\n+  #23 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #24 = Methodref          #25.#26        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #25 = Class              #27            // org/assertj/core/api/AbstractIntegerAssert\n+  #26 = NameAndType        #28:#23        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #27 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n+  #28 = Utf8               isEqualTo\n+  #29 = Methodref          #30.#31        // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #30 = Class              #32            // dev/langchain4j/data/segment/TextSegment\n+  #31 = NameAndType        #33:#34        // textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #32 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #33 = Utf8               textSegment\n+  #34 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #35 = InterfaceMethodref #13.#36        // dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #36 = NameAndType        #16:#37        // estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #37 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n+  #38 = Class              #39            // java/util/ArrayList\n+  #39 = Utf8               java/util/ArrayList\n+  #40 = Methodref          #38.#3         // java/util/ArrayList.\"<init>\":()V\n+  #41 = String             #42            // Hello, world!\n+  #42 = Utf8               Hello, world!\n+  #43 = InterfaceMethodref #44.#45        // java/util/List.add:(Ljava/lang/Object;)Z\n+  #44 = Class              #46            // java/util/List\n+  #45 = NameAndType        #47:#48        // add:(Ljava/lang/Object;)Z\n+  #46 = Utf8               java/util/List\n+  #47 = Utf8               add\n+  #48 = Utf8               (Ljava/lang/Object;)Z\n+  #49 = String             #50            // How are you?\n+  #50 = Utf8               How are you?\n+  #51 = InterfaceMethodref #13.#52        // dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n+  #52 = NameAndType        #16:#53        // estimateTokenCount:(Ljava/util/List;)I\n+  #53 = Utf8               (Ljava/util/List;)I\n+  #54 = Class              #55            // org/assertj/core/api/WithAssertions\n+  #55 = Utf8               org/assertj/core/api/WithAssertions\n+  #56 = Utf8               Code\n+  #57 = Utf8               LineNumberTable\n+  #58 = Utf8               LocalVariableTable\n+  #59 = Utf8               this\n+  #60 = Utf8               Ldev/langchain4j/model/embedding/TokenCountEstimatorTest;\n+  #61 = Utf8               test\n+  #62 = Utf8               segments\n+  #63 = Utf8               Ljava/util/List;\n+  #64 = Utf8               estimator\n+  #65 = Utf8               Ldev/langchain4j/model/embedding/TokenCountEstimator;\n+  #66 = Utf8               LocalVariableTypeTable\n+  #67 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #68 = Utf8               RuntimeVisibleAnnotations\n+  #69 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #70 = Utf8               SourceFile\n+  #71 = Utf8               TokenCountEstimatorTest.java\n+  #72 = Utf8               InnerClasses\n+  #73 = Utf8               WhitespaceSplitTokenCountEstimator\n {\n   dev.langchain4j.model.embedding.TokenCountEstimatorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -97,56 +97,56 @@\n             0       5     0  this   Ldev/langchain4j/model/embedding/TokenCountEstimatorTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+         0: new           #7                  // class dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String foo bar, baz\n-        12: invokeinterface #5,  2            // InterfaceMethod dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n-        17: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        10: ldc           #10                 // String foo bar, baz\n+        12: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n+        17: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         20: iconst_3\n-        21: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        21: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         24: pop\n         25: aload_0\n         26: aload_1\n-        27: ldc           #4                  // String foo bar, baz\n-        29: invokestatic  #8                  // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        32: invokeinterface #9,  2            // InterfaceMethod dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-        37: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        27: ldc           #10                 // String foo bar, baz\n+        29: invokestatic  #29                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        32: invokeinterface #35,  2           // InterfaceMethod dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+        37: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         40: iconst_3\n-        41: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        41: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         44: pop\n-        45: new           #10                 // class java/util/ArrayList\n+        45: new           #38                 // class java/util/ArrayList\n         48: dup\n-        49: invokespecial #11                 // Method java/util/ArrayList.\"<init>\":()V\n+        49: invokespecial #40                 // Method java/util/ArrayList.\"<init>\":()V\n         52: astore_2\n         53: aload_2\n-        54: ldc           #12                 // String Hello, world!\n-        56: invokestatic  #8                  // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        59: invokeinterface #13,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        54: ldc           #41                 // String Hello, world!\n+        56: invokestatic  #29                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        59: invokeinterface #43,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         64: pop\n         65: aload_2\n-        66: ldc           #14                 // String How are you?\n-        68: invokestatic  #8                  // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        71: invokeinterface #13,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n+        66: ldc           #49                 // String How are you?\n+        68: invokestatic  #29                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        71: invokeinterface #43,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z\n         76: pop\n         77: aload_0\n         78: aload_1\n         79: aload_2\n-        80: invokeinterface #15,  2           // InterfaceMethod dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n-        85: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        80: invokeinterface #51,  2           // InterfaceMethod dev/langchain4j/model/embedding/TokenCountEstimator.estimateTokenCount:(Ljava/util/List;)I\n+        85: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         88: iconst_5\n-        89: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        89: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         92: pop\n         93: return\n       LineNumberTable:\n         line 21: 0\n         line 23: 8\n         line 25: 25\n         line 28: 45\n@@ -159,13 +159,13 @@\n            53      40     2 segments   Ljava/util/List;\n             0      94     0  this   Ldev/langchain4j/model/embedding/TokenCountEstimatorTest;\n             8      86     1 estimator   Ldev/langchain4j/model/embedding/TokenCountEstimator;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            53      40     2 segments   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #69()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TokenCountEstimatorTest.java\"\n InnerClasses:\n-  public static #19= #2 of #16;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/embedding/TokenCountEstimatorTest\n+  public static #73= #7 of #19;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/embedding/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/embedding/TokenCountEstimatorTest\n"}]}, {"source1": "dev/langchain4j/model/image/ImageModelTest$FixedImageModel.class", "source2": "dev/langchain4j/model/image/ImageModelTest$FixedImageModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,70 +1,70 @@\n-  SHA-256 checksum ec82dd3580223c7404c92b6c495ad1cfa6fb9420d41e1e6c1d85489fe9ab82b6\n+  SHA-256 checksum c5912816fafbab2d0c21eec42127b90e947c6a97ba67815a18f316226f5384e3\n   Compiled from \"ImageModelTest.java\"\n public class dev.langchain4j.model.image.ImageModelTest$FixedImageModel implements dev.langchain4j.model.image.ImageModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/model/image/ImageModelTest$FixedImageModel\n-  super_class: #5                         // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/image/ImageModelTest$FixedImageModel\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #5.#26         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #4.#27         // dev/langchain4j/model/image/ImageModelTest$FixedImageModel.image:Ldev/langchain4j/data/image/Image;\n-   #3 = Methodref          #28.#29        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #4 = Class              #31            // dev/langchain4j/model/image/ImageModelTest$FixedImageModel\n-   #5 = Class              #32            // java/lang/Object\n-   #6 = Class              #33            // dev/langchain4j/model/image/ImageModel\n-   #7 = Utf8               image\n-   #8 = Utf8               Ldev/langchain4j/data/image/Image;\n-   #9 = Utf8               <init>\n-  #10 = Utf8               (Ldev/langchain4j/data/image/Image;)V\n-  #11 = Utf8               Code\n-  #12 = Utf8               LineNumberTable\n-  #13 = Utf8               LocalVariableTable\n-  #14 = Utf8               this\n-  #15 = Utf8               FixedImageModel\n-  #16 = Utf8               InnerClasses\n-  #17 = Utf8               Ldev/langchain4j/model/image/ImageModelTest$FixedImageModel;\n-  #18 = Utf8               generate\n-  #19 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #20 = Utf8               prompt\n-  #21 = Utf8               Ljava/lang/String;\n-  #22 = Utf8               Signature\n-  #23 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/image/Image;>;\n-  #24 = Utf8               SourceFile\n-  #25 = Utf8               ImageModelTest.java\n-  #26 = NameAndType        #9:#34         // \"<init>\":()V\n-  #27 = NameAndType        #7:#8          // image:Ldev/langchain4j/data/image/Image;\n-  #28 = Class              #35            // dev/langchain4j/model/output/Response\n-  #29 = NameAndType        #36:#37        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #30 = Class              #38            // dev/langchain4j/model/image/ImageModelTest\n-  #31 = Utf8               dev/langchain4j/model/image/ImageModelTest$FixedImageModel\n-  #32 = Utf8               java/lang/Object\n-  #33 = Utf8               dev/langchain4j/model/image/ImageModel\n-  #34 = Utf8               ()V\n-  #35 = Utf8               dev/langchain4j/model/output/Response\n-  #36 = Utf8               from\n-  #37 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #38 = Utf8               dev/langchain4j/model/image/ImageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/model/image/ImageModelTest$FixedImageModel.image:Ldev/langchain4j/data/image/Image;\n+   #8 = Class              #10            // dev/langchain4j/model/image/ImageModelTest$FixedImageModel\n+   #9 = NameAndType        #11:#12        // image:Ldev/langchain4j/data/image/Image;\n+  #10 = Utf8               dev/langchain4j/model/image/ImageModelTest$FixedImageModel\n+  #11 = Utf8               image\n+  #12 = Utf8               Ldev/langchain4j/data/image/Image;\n+  #13 = Methodref          #14.#15        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #14 = Class              #16            // dev/langchain4j/model/output/Response\n+  #15 = NameAndType        #17:#18        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #16 = Utf8               dev/langchain4j/model/output/Response\n+  #17 = Utf8               from\n+  #18 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #19 = Class              #20            // dev/langchain4j/model/image/ImageModel\n+  #20 = Utf8               dev/langchain4j/model/image/ImageModel\n+  #21 = Utf8               (Ldev/langchain4j/data/image/Image;)V\n+  #22 = Utf8               Code\n+  #23 = Utf8               LineNumberTable\n+  #24 = Utf8               LocalVariableTable\n+  #25 = Utf8               this\n+  #26 = Utf8               Ldev/langchain4j/model/image/ImageModelTest$FixedImageModel;\n+  #27 = Utf8               generate\n+  #28 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #29 = Utf8               prompt\n+  #30 = Utf8               Ljava/lang/String;\n+  #31 = Utf8               Signature\n+  #32 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/image/Image;>;\n+  #33 = Utf8               SourceFile\n+  #34 = Utf8               ImageModelTest.java\n+  #35 = Utf8               InnerClasses\n+  #36 = Class              #37            // dev/langchain4j/model/image/ImageModelTest\n+  #37 = Utf8               dev/langchain4j/model/image/ImageModelTest\n+  #38 = Utf8               FixedImageModel\n {\n   private final dev.langchain4j.data.image.Image image;\n     descriptor: Ldev/langchain4j/data/image/Image;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   public dev.langchain4j.model.image.ImageModelTest$FixedImageModel(dev.langchain4j.data.image.Image);\n     descriptor: (Ldev/langchain4j/data/image/Image;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field image:Ldev/langchain4j/data/image/Image;\n+         6: putfield      #7                  // Field image:Ldev/langchain4j/data/image/Image;\n          9: return\n       LineNumberTable:\n         line 15: 0\n         line 16: 4\n         line 17: 9\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -73,21 +73,21 @@\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.data.image.Image> generate(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #2                  // Field image:Ldev/langchain4j/data/image/Image;\n-         4: invokestatic  #3                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+         1: getfield      #7                  // Field image:Ldev/langchain4j/data/image/Image;\n+         4: invokestatic  #13                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n          7: areturn\n       LineNumberTable:\n         line 21: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/model/image/ImageModelTest$FixedImageModel;\n             0       8     1 prompt   Ljava/lang/String;\n-    Signature: #23                          // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/image/Image;>;\n+    Signature: #32                          // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/image/Image;>;\n }\n SourceFile: \"ImageModelTest.java\"\n InnerClasses:\n-  public static #15= #4 of #30;           // FixedImageModel=class dev/langchain4j/model/image/ImageModelTest$FixedImageModel of class dev/langchain4j/model/image/ImageModelTest\n+  public static #38= #8 of #36;           // FixedImageModel=class dev/langchain4j/model/image/ImageModelTest$FixedImageModel of class dev/langchain4j/model/image/ImageModelTest\n"}]}, {"source1": "dev/langchain4j/model/image/ImageModelTest.class", "source2": "dev/langchain4j/model/image/ImageModelTest.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -21,15 +21,15 @@\n     }\n     \n     @Test\n     public void test_trivial() {\n         final ImageModel model = (ImageModel)new ImageModelTest.FixedImageModel(ImageModelTest.PLACEHOLDER_IMAGE);\n         final Response<Image> response = (Response<Image>)model.generate(\"prompt\");\n         this.assertThat((Object)response).isNotNull();\n-        this.assertThat(response.content()).isEqualTo((Object)ImageModelTest.PLACEHOLDER_IMAGE);\n+        this.assertThat((Object)response.content()).isEqualTo((Object)ImageModelTest.PLACEHOLDER_IMAGE);\n     }\n     \n     static {\n         try {\n             PLACEHOLDER_IMAGE = Image.builder().url(new URI(\"https://foo.bar\")).build();\n         }\n         catch (final Exception e) {\n"}]}, {"source1": "dev/langchain4j/model/input/PromptTemplateTest.class", "source2": "dev/langchain4j/model/input/PromptTemplateTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,286 +1,286 @@\n-  SHA-256 checksum 0b99765be03f4e9af8ae81731269017241cc0e75256b5cf9e04728ac2396e1c2\n+  SHA-256 checksum e1d2bd50d9a832d7bc94598c059a58afa60f2292256f9b4b2c617c9ae6a4fca6\n   Compiled from \"PromptTemplateTest.java\"\n class dev.langchain4j.model.input.PromptTemplateTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #57                         // dev/langchain4j/model/input/PromptTemplateTest\n-  super_class: #58                        // java/lang/Object\n+  this_class: #186                        // dev/langchain4j/model/input/PromptTemplateTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 14, attributes: 3\n Constant pool:\n-    #1 = Methodref          #58.#117      // java/lang/Object.\"<init>\":()V\n-    #2 = String             #118          // Hello world.\n-    #3 = Methodref          #45.#119      // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-    #4 = Methodref          #120.#121     // java/util/Collections.emptyMap:()Ljava/util/Map;\n-    #5 = Methodref          #45.#122      // dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n-    #6 = Methodref          #123.#124     // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-    #7 = Methodref          #125.#126     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #8 = Methodref          #127.#128     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #9 = String             #129          // My name is {{it}}.\n-   #10 = String             #130          // Klaus\n-   #11 = Methodref          #45.#131      // dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-   #12 = String             #132          // My name is Klaus.\n-   #13 = String             #133          // My name is {{name}}.\n-   #14 = String             #134          // name\n-   #15 = Methodref          #120.#135     // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #16 = String             #136          // My name is {{name}}, I am {{age}} years old.\n-   #17 = Class              #137          // java/util/HashMap\n-   #18 = Methodref          #17.#117      // java/util/HashMap.\"<init>\":()V\n-   #19 = InterfaceMethodref #138.#139     // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #20 = String             #140          // age\n-   #21 = Methodref          #141.#142     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #22 = String             #143          // My name is Klaus, I am 42 years old.\n-   #23 = String             #144          // My name is {{name}}, call me {{name}}.\n-   #24 = String             #145          // My name is Klaus, call me Klaus.\n-   #25 = InvokeDynamic      #0:#150       // #0:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #26 = Methodref          #125.#151     // org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-   #27 = Class              #152          // java/lang/IllegalArgumentException\n-   #28 = Methodref          #29.#153      // org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-   #29 = Class              #154          // org/assertj/core/api/AbstractThrowableAssert\n-   #30 = String             #155          // Value for the variable \\'name\\' is missing\n-   #31 = Methodref          #29.#156      // org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-   #32 = InvokeDynamic      #1:#150       // #1:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #33 = String             #158          // Value for the variable \\'name\\' is null\n-   #34 = String             #159          // Today is {{current_date}}\n-   #35 = Class              #160          // java/lang/StringBuilder\n-   #36 = Methodref          #35.#117      // java/lang/StringBuilder.\"<init>\":()V\n-   #37 = String             #161          // Today is\n-   #38 = Methodref          #35.#162      // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #39 = Methodref          #163.#164     // java/time/LocalDate.now:()Ljava/time/LocalDate;\n-   #40 = Methodref          #35.#165      // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #41 = Methodref          #35.#166      // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #42 = Methodref          #167.#168     // java/time/Instant.now:()Ljava/time/Instant;\n-   #43 = Fieldref           #169.#170     // java/time/ZoneOffset.UTC:Ljava/time/ZoneOffset;\n-   #44 = Methodref          #171.#172     // java/time/Clock.fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n-   #45 = Class              #173          // dev/langchain4j/model/input/PromptTemplate\n-   #46 = String             #174          // My name is {{it}} and now is {{current_time}}\n-   #47 = Methodref          #45.#175      // dev/langchain4j/model/input/PromptTemplate.\"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n-   #48 = String             #176          // My name is Klaus and now is\n-   #49 = Methodref          #177.#178     // java/time/LocalTime.now:(Ljava/time/Clock;)Ljava/time/LocalTime;\n-   #50 = String             #179          // My name is {{name}} and now is {{current_date_time}}\n-   #51 = Methodref          #180.#181     // java/time/LocalDateTime.now:(Ljava/time/Clock;)Ljava/time/LocalDateTime;\n-   #52 = String             #182          // This is {{it}}.\n-   #53 = Fieldref           #183.#184     // java/lang/System.out:Ljava/io/PrintStream;\n-   #54 = Methodref          #185.#186     // java/io/PrintStream.println:(Ljava/lang/String;)V\n-   #55 = String             #187          // This is\n-   #56 = String             #188          // .\n-   #57 = Class              #189          // dev/langchain4j/model/input/PromptTemplateTest\n-   #58 = Class              #190          // java/lang/Object\n-   #59 = Utf8               <init>\n-   #60 = Utf8               ()V\n-   #61 = Utf8               Code\n-   #62 = Utf8               LineNumberTable\n-   #63 = Utf8               LocalVariableTable\n-   #64 = Utf8               this\n-   #65 = Utf8               Ldev/langchain4j/model/input/PromptTemplateTest;\n-   #66 = Utf8               should_create_prompt_from_template_without_variables\n-   #67 = Utf8               promptTemplate\n-   #68 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n-   #69 = Utf8               variables\n-   #70 = Utf8               Ljava/util/Map;\n-   #71 = Utf8               prompt\n-   #72 = Utf8               Ldev/langchain4j/model/input/Prompt;\n-   #73 = Utf8               LocalVariableTypeTable\n-   #74 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n-   #75 = Utf8               RuntimeVisibleAnnotations\n-   #76 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #77 = Utf8               should_create_prompt_from_template_with_it_variable\n-   #78 = Utf8               should_create_prompt_from_template_with_single_variable\n-   #79 = Utf8               should_create_prompt_from_template_with_multiple_variables\n-   #80 = Utf8               should_allow_same_variable_in_template_multiple_times\n-   #81 = Utf8               should_fail_when_value_is_missing\n-   #82 = Utf8               should_fail_when_value_is_null\n-   #83 = Utf8               should_provide_date_automatically\n-   #84 = Utf8               should_provide_time_automatically\n-   #85 = Utf8               clock\n-   #86 = Utf8               Ljava/time/Clock;\n-   #87 = Utf8               should_provide_date_and_time_automatically\n-   #88 = Utf8               should_support_special_characters\n-   #89 = Utf8               (Ljava/lang/String;)V\n-   #90 = Utf8               s\n-   #91 = Utf8               Ljava/lang/String;\n-   #92 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-   #93 = Utf8               Lorg/junit/jupiter/params/provider/ValueSource;\n-   #94 = Utf8               strings\n-   #95 = Utf8               $\n-   #96 = Utf8               $$\n-   #97 = Utf8               {\n-   #98 = Utf8               {{\n-   #99 = Utf8               }\n-  #100 = Utf8               }}\n-  #101 = Utf8               {}\n-  #102 = Utf8               {{}}\n-  #103 = Utf8               *\n-  #104 = Utf8               **\n-  #105 = Utf8               \\\\\n-  #106 = Utf8               \\\\\\\\\n-  #107 = Utf8               ${}*\\\\\n-  #108 = Utf8               ${ *hello* }\n-  #109 = Utf8               \\\\$\\\\{ \\\\*hello\\\\* \\\\}\n-  #110 = Utf8               lambda$should_fail_when_value_is_null$1\n-  #111 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #112 = Utf8               Exceptions\n-  #113 = Class              #191          // java/lang/Throwable\n-  #114 = Utf8               lambda$should_fail_when_value_is_missing$0\n-  #115 = Utf8               SourceFile\n-  #116 = Utf8               PromptTemplateTest.java\n-  #117 = NameAndType        #59:#60       // \"<init>\":()V\n-  #118 = Utf8               Hello world.\n-  #119 = NameAndType        #192:#193     // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #120 = Class              #194          // java/util/Collections\n-  #121 = NameAndType        #195:#196     // emptyMap:()Ljava/util/Map;\n-  #122 = NameAndType        #197:#198     // apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n-  #123 = Class              #199          // dev/langchain4j/model/input/Prompt\n-  #124 = NameAndType        #200:#201     // text:()Ljava/lang/String;\n-  #125 = Class              #202          // org/assertj/core/api/Assertions\n-  #126 = NameAndType        #203:#204     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #127 = Class              #205          // org/assertj/core/api/AbstractStringAssert\n-  #128 = NameAndType        #206:#204     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #129 = Utf8               My name is {{it}}.\n-  #130 = Utf8               Klaus\n-  #131 = NameAndType        #197:#207     // apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-  #132 = Utf8               My name is Klaus.\n-  #133 = Utf8               My name is {{name}}.\n-  #134 = Utf8               name\n-  #135 = NameAndType        #208:#209     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #136 = Utf8               My name is {{name}}, I am {{age}} years old.\n-  #137 = Utf8               java/util/HashMap\n-  #138 = Class              #210          // java/util/Map\n-  #139 = NameAndType        #211:#212     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #140 = Utf8               age\n-  #141 = Class              #213          // java/lang/Integer\n-  #142 = NameAndType        #214:#215     // valueOf:(I)Ljava/lang/Integer;\n-  #143 = Utf8               My name is Klaus, I am 42 years old.\n-  #144 = Utf8               My name is {{name}}, call me {{name}}.\n-  #145 = Utf8               My name is Klaus, call me Klaus.\n-  #146 = Utf8               BootstrapMethods\n-  #147 = MethodHandle       6:#216        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #148 = MethodType         #60           //  ()V\n-  #149 = MethodHandle       6:#217        // REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #150 = NameAndType        #218:#222     // call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #151 = NameAndType        #223:#224     // assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #152 = Utf8               java/lang/IllegalArgumentException\n-  #153 = NameAndType        #225:#226     // isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #154 = Utf8               org/assertj/core/api/AbstractThrowableAssert\n-  #155 = Utf8               Value for the variable \\'name\\' is missing\n-  #156 = NameAndType        #227:#228     // hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #157 = MethodHandle       6:#229        // REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #158 = Utf8               Value for the variable \\'name\\' is null\n-  #159 = Utf8               Today is {{current_date}}\n-  #160 = Utf8               java/lang/StringBuilder\n-  #161 = Utf8               Today is\n-  #162 = NameAndType        #230:#231     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #163 = Class              #232          // java/time/LocalDate\n-  #164 = NameAndType        #233:#234     // now:()Ljava/time/LocalDate;\n-  #165 = NameAndType        #230:#235     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #166 = NameAndType        #236:#201     // toString:()Ljava/lang/String;\n-  #167 = Class              #237          // java/time/Instant\n-  #168 = NameAndType        #233:#238     // now:()Ljava/time/Instant;\n-  #169 = Class              #239          // java/time/ZoneOffset\n-  #170 = NameAndType        #240:#241     // UTC:Ljava/time/ZoneOffset;\n-  #171 = Class              #242          // java/time/Clock\n-  #172 = NameAndType        #243:#244     // fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n-  #173 = Utf8               dev/langchain4j/model/input/PromptTemplate\n-  #174 = Utf8               My name is {{it}} and now is {{current_time}}\n-  #175 = NameAndType        #59:#245      // \"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n-  #176 = Utf8               My name is Klaus and now is\n-  #177 = Class              #246          // java/time/LocalTime\n-  #178 = NameAndType        #233:#247     // now:(Ljava/time/Clock;)Ljava/time/LocalTime;\n-  #179 = Utf8               My name is {{name}} and now is {{current_date_time}}\n-  #180 = Class              #248          // java/time/LocalDateTime\n-  #181 = NameAndType        #233:#249     // now:(Ljava/time/Clock;)Ljava/time/LocalDateTime;\n-  #182 = Utf8               This is {{it}}.\n-  #183 = Class              #250          // java/lang/System\n-  #184 = NameAndType        #251:#252     // out:Ljava/io/PrintStream;\n-  #185 = Class              #253          // java/io/PrintStream\n-  #186 = NameAndType        #254:#89      // println:(Ljava/lang/String;)V\n-  #187 = Utf8               This is\n-  #188 = Utf8               .\n-  #189 = Utf8               dev/langchain4j/model/input/PromptTemplateTest\n-  #190 = Utf8               java/lang/Object\n-  #191 = Utf8               java/lang/Throwable\n-  #192 = Utf8               from\n-  #193 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #194 = Utf8               java/util/Collections\n-  #195 = Utf8               emptyMap\n-  #196 = Utf8               ()Ljava/util/Map;\n-  #197 = Utf8               apply\n-  #198 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n-  #199 = Utf8               dev/langchain4j/model/input/Prompt\n-  #200 = Utf8               text\n-  #201 = Utf8               ()Ljava/lang/String;\n-  #202 = Utf8               org/assertj/core/api/Assertions\n-  #203 = Utf8               assertThat\n-  #204 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #205 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #206 = Utf8               isEqualTo\n-  #207 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-  #208 = Utf8               singletonMap\n-  #209 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #210 = Utf8               java/util/Map\n-  #211 = Utf8               put\n-  #212 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #213 = Utf8               java/lang/Integer\n-  #214 = Utf8               valueOf\n-  #215 = Utf8               (I)Ljava/lang/Integer;\n-  #216 = Methodref          #255.#256     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #217 = Methodref          #57.#257      // dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #218 = Utf8               call\n-  #219 = Class              #259          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #220 = Utf8               ThrowingCallable\n-  #221 = Utf8               InnerClasses\n-  #222 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #223 = Utf8               assertThatThrownBy\n-  #224 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #225 = Utf8               isExactlyInstanceOf\n-  #226 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #227 = Utf8               hasMessage\n-  #228 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #229 = Methodref          #57.#260      // dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #230 = Utf8               append\n-  #231 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #232 = Utf8               java/time/LocalDate\n-  #233 = Utf8               now\n-  #234 = Utf8               ()Ljava/time/LocalDate;\n-  #235 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #236 = Utf8               toString\n-  #237 = Utf8               java/time/Instant\n-  #238 = Utf8               ()Ljava/time/Instant;\n-  #239 = Utf8               java/time/ZoneOffset\n-  #240 = Utf8               UTC\n-  #241 = Utf8               Ljava/time/ZoneOffset;\n-  #242 = Utf8               java/time/Clock\n-  #243 = Utf8               fixed\n-  #244 = Utf8               (Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n-  #245 = Utf8               (Ljava/lang/String;Ljava/time/Clock;)V\n-  #246 = Utf8               java/time/LocalTime\n-  #247 = Utf8               (Ljava/time/Clock;)Ljava/time/LocalTime;\n-  #248 = Utf8               java/time/LocalDateTime\n-  #249 = Utf8               (Ljava/time/Clock;)Ljava/time/LocalDateTime;\n-  #250 = Utf8               java/lang/System\n-  #251 = Utf8               out\n-  #252 = Utf8               Ljava/io/PrintStream;\n-  #253 = Utf8               java/io/PrintStream\n-  #254 = Utf8               println\n-  #255 = Class              #261          // java/lang/invoke/LambdaMetafactory\n-  #256 = NameAndType        #262:#265     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #257 = NameAndType        #114:#111     // lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #258 = Class              #266          // org/assertj/core/api/ThrowableAssert\n-  #259 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #260 = NameAndType        #110:#111     // lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-  #261 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #262 = Utf8               metafactory\n-  #263 = Class              #268          // java/lang/invoke/MethodHandles$Lookup\n-  #264 = Utf8               Lookup\n-  #265 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #266 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #267 = Class              #269          // java/lang/invoke/MethodHandles\n-  #268 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #269 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // Hello world.\n+    #8 = Utf8               Hello world.\n+    #9 = Methodref          #10.#11       // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+   #10 = Class              #12           // dev/langchain4j/model/input/PromptTemplate\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+   #12 = Utf8               dev/langchain4j/model/input/PromptTemplate\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+   #15 = Methodref          #16.#17       // java/util/Collections.emptyMap:()Ljava/util/Map;\n+   #16 = Class              #18           // java/util/Collections\n+   #17 = NameAndType        #19:#20       // emptyMap:()Ljava/util/Map;\n+   #18 = Utf8               java/util/Collections\n+   #19 = Utf8               emptyMap\n+   #20 = Utf8               ()Ljava/util/Map;\n+   #21 = Methodref          #10.#22       // dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+   #22 = NameAndType        #23:#24       // apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+   #23 = Utf8               apply\n+   #24 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+   #25 = Methodref          #26.#27       // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+   #26 = Class              #28           // dev/langchain4j/model/input/Prompt\n+   #27 = NameAndType        #29:#30       // text:()Ljava/lang/String;\n+   #28 = Utf8               dev/langchain4j/model/input/Prompt\n+   #29 = Utf8               text\n+   #30 = Utf8               ()Ljava/lang/String;\n+   #31 = Methodref          #32.#33       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #32 = Class              #34           // org/assertj/core/api/Assertions\n+   #33 = NameAndType        #35:#36       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #34 = Utf8               org/assertj/core/api/Assertions\n+   #35 = Utf8               assertThat\n+   #36 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #37 = Methodref          #38.#39       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #38 = Class              #40           // org/assertj/core/api/AbstractStringAssert\n+   #39 = NameAndType        #41:#36       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #40 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #41 = Utf8               isEqualTo\n+   #42 = String             #43           // My name is {{it}}.\n+   #43 = Utf8               My name is {{it}}.\n+   #44 = String             #45           // Klaus\n+   #45 = Utf8               Klaus\n+   #46 = Methodref          #10.#47       // dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #47 = NameAndType        #23:#48       // apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #48 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #49 = String             #50           // My name is Klaus.\n+   #50 = Utf8               My name is Klaus.\n+   #51 = String             #52           // My name is {{name}}.\n+   #52 = Utf8               My name is {{name}}.\n+   #53 = String             #54           // name\n+   #54 = Utf8               name\n+   #55 = Methodref          #16.#56       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #56 = NameAndType        #57:#58       // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #57 = Utf8               singletonMap\n+   #58 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #59 = String             #60           // My name is {{name}}, I am {{age}} years old.\n+   #60 = Utf8               My name is {{name}}, I am {{age}} years old.\n+   #61 = Class              #62           // java/util/HashMap\n+   #62 = Utf8               java/util/HashMap\n+   #63 = Methodref          #61.#3        // java/util/HashMap.\"<init>\":()V\n+   #64 = InterfaceMethodref #65.#66       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #65 = Class              #67           // java/util/Map\n+   #66 = NameAndType        #68:#69       // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #67 = Utf8               java/util/Map\n+   #68 = Utf8               put\n+   #69 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #70 = String             #71           // age\n+   #71 = Utf8               age\n+   #72 = Methodref          #73.#74       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #73 = Class              #75           // java/lang/Integer\n+   #74 = NameAndType        #76:#77       // valueOf:(I)Ljava/lang/Integer;\n+   #75 = Utf8               java/lang/Integer\n+   #76 = Utf8               valueOf\n+   #77 = Utf8               (I)Ljava/lang/Integer;\n+   #78 = String             #79           // My name is Klaus, I am 42 years old.\n+   #79 = Utf8               My name is Klaus, I am 42 years old.\n+   #80 = String             #81           // My name is {{name}}, call me {{name}}.\n+   #81 = Utf8               My name is {{name}}, call me {{name}}.\n+   #82 = String             #83           // My name is Klaus, call me Klaus.\n+   #83 = Utf8               My name is Klaus, call me Klaus.\n+   #84 = InvokeDynamic      #0:#85        // #0:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #85 = NameAndType        #86:#87       // call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #86 = Utf8               call\n+   #87 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #88 = Methodref          #32.#89       // org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+   #89 = NameAndType        #90:#91       // assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+   #90 = Utf8               assertThatThrownBy\n+   #91 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+   #92 = Class              #93           // java/lang/IllegalArgumentException\n+   #93 = Utf8               java/lang/IllegalArgumentException\n+   #94 = Methodref          #95.#96       // org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #95 = Class              #97           // org/assertj/core/api/AbstractThrowableAssert\n+   #96 = NameAndType        #98:#99       // isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #97 = Utf8               org/assertj/core/api/AbstractThrowableAssert\n+   #98 = Utf8               isExactlyInstanceOf\n+   #99 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #100 = String             #101          // Value for the variable \\'name\\' is missing\n+  #101 = Utf8               Value for the variable \\'name\\' is missing\n+  #102 = Methodref          #95.#103      // org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #103 = NameAndType        #104:#105     // hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #104 = Utf8               hasMessage\n+  #105 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #106 = InvokeDynamic      #1:#85        // #1:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #107 = String             #108          // Value for the variable \\'name\\' is null\n+  #108 = Utf8               Value for the variable \\'name\\' is null\n+  #109 = String             #110          // Today is {{current_date}}\n+  #110 = Utf8               Today is {{current_date}}\n+  #111 = Class              #112          // java/lang/StringBuilder\n+  #112 = Utf8               java/lang/StringBuilder\n+  #113 = Methodref          #111.#3       // java/lang/StringBuilder.\"<init>\":()V\n+  #114 = String             #115          // Today is\n+  #115 = Utf8               Today is\n+  #116 = Methodref          #111.#117     // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #117 = NameAndType        #118:#119     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #118 = Utf8               append\n+  #119 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #120 = Methodref          #121.#122     // java/time/LocalDate.now:()Ljava/time/LocalDate;\n+  #121 = Class              #123          // java/time/LocalDate\n+  #122 = NameAndType        #124:#125     // now:()Ljava/time/LocalDate;\n+  #123 = Utf8               java/time/LocalDate\n+  #124 = Utf8               now\n+  #125 = Utf8               ()Ljava/time/LocalDate;\n+  #126 = Methodref          #111.#127     // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #127 = NameAndType        #118:#128     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #128 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #129 = Methodref          #111.#130     // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+  #130 = NameAndType        #131:#30      // toString:()Ljava/lang/String;\n+  #131 = Utf8               toString\n+  #132 = Methodref          #133.#134     // java/time/Instant.now:()Ljava/time/Instant;\n+  #133 = Class              #135          // java/time/Instant\n+  #134 = NameAndType        #124:#136     // now:()Ljava/time/Instant;\n+  #135 = Utf8               java/time/Instant\n+  #136 = Utf8               ()Ljava/time/Instant;\n+  #137 = Fieldref           #138.#139     // java/time/ZoneOffset.UTC:Ljava/time/ZoneOffset;\n+  #138 = Class              #140          // java/time/ZoneOffset\n+  #139 = NameAndType        #141:#142     // UTC:Ljava/time/ZoneOffset;\n+  #140 = Utf8               java/time/ZoneOffset\n+  #141 = Utf8               UTC\n+  #142 = Utf8               Ljava/time/ZoneOffset;\n+  #143 = Methodref          #144.#145     // java/time/Clock.fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n+  #144 = Class              #146          // java/time/Clock\n+  #145 = NameAndType        #147:#148     // fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n+  #146 = Utf8               java/time/Clock\n+  #147 = Utf8               fixed\n+  #148 = Utf8               (Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n+  #149 = String             #150          // My name is {{it}} and now is {{current_time}}\n+  #150 = Utf8               My name is {{it}} and now is {{current_time}}\n+  #151 = Methodref          #10.#152      // dev/langchain4j/model/input/PromptTemplate.\"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n+  #152 = NameAndType        #5:#153       // \"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n+  #153 = Utf8               (Ljava/lang/String;Ljava/time/Clock;)V\n+  #154 = String             #155          // My name is Klaus and now is\n+  #155 = Utf8               My name is Klaus and now is\n+  #156 = Methodref          #157.#158     // java/time/LocalTime.now:(Ljava/time/Clock;)Ljava/time/LocalTime;\n+  #157 = Class              #159          // java/time/LocalTime\n+  #158 = NameAndType        #124:#160     // now:(Ljava/time/Clock;)Ljava/time/LocalTime;\n+  #159 = Utf8               java/time/LocalTime\n+  #160 = Utf8               (Ljava/time/Clock;)Ljava/time/LocalTime;\n+  #161 = String             #162          // My name is {{name}} and now is {{current_date_time}}\n+  #162 = Utf8               My name is {{name}} and now is {{current_date_time}}\n+  #163 = Methodref          #164.#165     // java/time/LocalDateTime.now:(Ljava/time/Clock;)Ljava/time/LocalDateTime;\n+  #164 = Class              #166          // java/time/LocalDateTime\n+  #165 = NameAndType        #124:#167     // now:(Ljava/time/Clock;)Ljava/time/LocalDateTime;\n+  #166 = Utf8               java/time/LocalDateTime\n+  #167 = Utf8               (Ljava/time/Clock;)Ljava/time/LocalDateTime;\n+  #168 = String             #169          // This is {{it}}.\n+  #169 = Utf8               This is {{it}}.\n+  #170 = Fieldref           #171.#172     // java/lang/System.out:Ljava/io/PrintStream;\n+  #171 = Class              #173          // java/lang/System\n+  #172 = NameAndType        #174:#175     // out:Ljava/io/PrintStream;\n+  #173 = Utf8               java/lang/System\n+  #174 = Utf8               out\n+  #175 = Utf8               Ljava/io/PrintStream;\n+  #176 = Methodref          #177.#178     // java/io/PrintStream.println:(Ljava/lang/String;)V\n+  #177 = Class              #179          // java/io/PrintStream\n+  #178 = NameAndType        #180:#181     // println:(Ljava/lang/String;)V\n+  #179 = Utf8               java/io/PrintStream\n+  #180 = Utf8               println\n+  #181 = Utf8               (Ljava/lang/String;)V\n+  #182 = String             #183          // This is\n+  #183 = Utf8               This is\n+  #184 = String             #185          // .\n+  #185 = Utf8               .\n+  #186 = Class              #187          // dev/langchain4j/model/input/PromptTemplateTest\n+  #187 = Utf8               dev/langchain4j/model/input/PromptTemplateTest\n+  #188 = Utf8               Code\n+  #189 = Utf8               LineNumberTable\n+  #190 = Utf8               LocalVariableTable\n+  #191 = Utf8               this\n+  #192 = Utf8               Ldev/langchain4j/model/input/PromptTemplateTest;\n+  #193 = Utf8               should_create_prompt_from_template_without_variables\n+  #194 = Utf8               promptTemplate\n+  #195 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n+  #196 = Utf8               variables\n+  #197 = Utf8               Ljava/util/Map;\n+  #198 = Utf8               prompt\n+  #199 = Utf8               Ldev/langchain4j/model/input/Prompt;\n+  #200 = Utf8               LocalVariableTypeTable\n+  #201 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n+  #202 = Utf8               RuntimeVisibleAnnotations\n+  #203 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #204 = Utf8               should_create_prompt_from_template_with_it_variable\n+  #205 = Utf8               should_create_prompt_from_template_with_single_variable\n+  #206 = Utf8               should_create_prompt_from_template_with_multiple_variables\n+  #207 = Utf8               should_allow_same_variable_in_template_multiple_times\n+  #208 = Utf8               should_fail_when_value_is_missing\n+  #209 = Utf8               should_fail_when_value_is_null\n+  #210 = Utf8               should_provide_date_automatically\n+  #211 = Utf8               should_provide_time_automatically\n+  #212 = Utf8               clock\n+  #213 = Utf8               Ljava/time/Clock;\n+  #214 = Utf8               should_provide_date_and_time_automatically\n+  #215 = Utf8               should_support_special_characters\n+  #216 = Utf8               s\n+  #217 = Utf8               Ljava/lang/String;\n+  #218 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #219 = Utf8               Lorg/junit/jupiter/params/provider/ValueSource;\n+  #220 = Utf8               strings\n+  #221 = Utf8               $\n+  #222 = Utf8               $$\n+  #223 = Utf8               {\n+  #224 = Utf8               {{\n+  #225 = Utf8               }\n+  #226 = Utf8               }}\n+  #227 = Utf8               {}\n+  #228 = Utf8               {{}}\n+  #229 = Utf8               *\n+  #230 = Utf8               **\n+  #231 = Utf8               \\\\\n+  #232 = Utf8               \\\\\\\\\n+  #233 = Utf8               ${}*\\\\\n+  #234 = Utf8               ${ *hello* }\n+  #235 = Utf8               \\\\$\\\\{ \\\\*hello\\\\* \\\\}\n+  #236 = Utf8               lambda$should_fail_when_value_is_null$1\n+  #237 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #238 = Utf8               Exceptions\n+  #239 = Class              #240          // java/lang/Throwable\n+  #240 = Utf8               java/lang/Throwable\n+  #241 = Utf8               lambda$should_fail_when_value_is_missing$0\n+  #242 = Utf8               SourceFile\n+  #243 = Utf8               PromptTemplateTest.java\n+  #244 = Utf8               BootstrapMethods\n+  #245 = MethodHandle       6:#246        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #246 = Methodref          #247.#248     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #247 = Class              #249          // java/lang/invoke/LambdaMetafactory\n+  #248 = NameAndType        #250:#251     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #249 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #250 = Utf8               metafactory\n+  #251 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #252 = MethodType         #6            //  ()V\n+  #253 = MethodHandle       6:#254        // REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #254 = Methodref          #186.#255     // dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #255 = NameAndType        #241:#237     // lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #256 = MethodHandle       6:#257        // REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #257 = Methodref          #186.#258     // dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #258 = NameAndType        #236:#237     // lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+  #259 = Utf8               InnerClasses\n+  #260 = Class              #261          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #261 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #262 = Class              #263          // org/assertj/core/api/ThrowableAssert\n+  #263 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #264 = Utf8               ThrowingCallable\n+  #265 = Class              #266          // java/lang/invoke/MethodHandles$Lookup\n+  #266 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #267 = Class              #268          // java/lang/invoke/MethodHandles\n+  #268 = Utf8               java/lang/invoke/MethodHandles\n+  #269 = Utf8               Lookup\n {\n   dev.langchain4j.model.input.PromptTemplateTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -293,28 +293,28 @@\n             0       5     0  this   Ldev/langchain4j/model/input/PromptTemplateTest;\n \n   void should_create_prompt_from_template_without_variables();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=4, args_size=1\n-         0: ldc           #2                  // String Hello world.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #7                  // String Hello world.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: invokestatic  #4                  // Method java/util/Collections.emptyMap:()Ljava/util/Map;\n+         6: invokestatic  #15                 // Method java/util/Collections.emptyMap:()Ljava/util/Map;\n          9: astore_2\n         10: aload_1\n         11: aload_2\n-        12: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+        12: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n         15: astore_3\n         16: aload_3\n-        17: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        20: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        23: ldc           #2                  // String Hello world.\n-        25: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        17: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        20: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        23: ldc           #7                  // String Hello world.\n+        25: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         28: pop\n         29: return\n       LineNumberTable:\n         line 22: 0\n         line 24: 6\n         line 27: 10\n         line 30: 16\n@@ -325,71 +325,71 @@\n             6      24     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            10      20     2 variables   Ljava/util/Map;\n            16      14     3 prompt   Ldev/langchain4j/model/input/Prompt;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            10      20     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_create_prompt_from_template_with_it_variable();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #9                  // String My name is {{it}}.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #42                 // String My name is {{it}}.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n          6: aload_1\n-         7: ldc           #10                 // String Klaus\n-         9: invokevirtual #11                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+         7: ldc           #44                 // String Klaus\n+         9: invokevirtual #46                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         12: astore_2\n         13: aload_2\n-        14: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        17: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        20: ldc           #12                 // String My name is Klaus.\n-        22: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        14: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        17: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        20: ldc           #49                 // String My name is Klaus.\n+        22: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         25: pop\n         26: return\n       LineNumberTable:\n         line 37: 0\n         line 40: 6\n         line 43: 13\n         line 44: 26\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      27     0  this   Ldev/langchain4j/model/input/PromptTemplateTest;\n             6      21     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            13      14     2 prompt   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_create_prompt_from_template_with_single_variable();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=4, args_size=1\n-         0: ldc           #13                 // String My name is {{name}}.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #51                 // String My name is {{name}}.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: ldc           #14                 // String name\n-         8: ldc           #10                 // String Klaus\n-        10: invokestatic  #15                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+         6: ldc           #53                 // String name\n+         8: ldc           #44                 // String Klaus\n+        10: invokestatic  #55                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n         13: astore_2\n         14: aload_1\n         15: aload_2\n-        16: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+        16: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n         19: astore_3\n         20: aload_3\n-        21: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        24: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        27: ldc           #12                 // String My name is Klaus.\n-        29: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        21: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        24: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        27: ldc           #49                 // String My name is Klaus.\n+        29: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         32: pop\n         33: return\n       LineNumberTable:\n         line 50: 0\n         line 52: 6\n         line 55: 14\n         line 58: 20\n@@ -400,49 +400,49 @@\n             6      28     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            14      20     2 variables   Ljava/util/Map;\n            20      14     3 prompt   Ldev/langchain4j/model/input/Prompt;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      20     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_create_prompt_from_template_with_multiple_variables();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: ldc           #16                 // String My name is {{name}}, I am {{age}} years old.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #59                 // String My name is {{name}}, I am {{age}} years old.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: new           #17                 // class java/util/HashMap\n+         6: new           #61                 // class java/util/HashMap\n          9: dup\n-        10: invokespecial #18                 // Method java/util/HashMap.\"<init>\":()V\n+        10: invokespecial #63                 // Method java/util/HashMap.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n-        15: ldc           #14                 // String name\n-        17: ldc           #10                 // String Klaus\n-        19: invokeinterface #19,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        15: ldc           #53                 // String name\n+        17: ldc           #44                 // String Klaus\n+        19: invokeinterface #64,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         24: pop\n         25: aload_2\n-        26: ldc           #20                 // String age\n+        26: ldc           #70                 // String age\n         28: bipush        42\n-        30: invokestatic  #21                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        33: invokeinterface #19,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        30: invokestatic  #72                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        33: invokeinterface #64,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         38: pop\n         39: aload_1\n         40: aload_2\n-        41: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+        41: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n         44: astore_3\n         45: aload_3\n-        46: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        49: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        52: ldc           #22                 // String My name is Klaus, I am 42 years old.\n-        54: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        46: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        49: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        52: ldc           #78                 // String My name is Klaus, I am 42 years old.\n+        54: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         57: pop\n         58: return\n       LineNumberTable:\n         line 65: 0\n         line 67: 6\n         line 68: 14\n         line 69: 25\n@@ -455,43 +455,43 @@\n             6      53     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            14      45     2 variables   Ljava/util/Map;\n            45      14     3 prompt   Ldev/langchain4j/model/input/Prompt;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      45     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_allow_same_variable_in_template_multiple_times();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: ldc           #23                 // String My name is {{name}}, call me {{name}}.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #80                 // String My name is {{name}}, call me {{name}}.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: new           #17                 // class java/util/HashMap\n+         6: new           #61                 // class java/util/HashMap\n          9: dup\n-        10: invokespecial #18                 // Method java/util/HashMap.\"<init>\":()V\n+        10: invokespecial #63                 // Method java/util/HashMap.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n-        15: ldc           #14                 // String name\n-        17: ldc           #10                 // String Klaus\n-        19: invokeinterface #19,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        15: ldc           #53                 // String name\n+        17: ldc           #44                 // String Klaus\n+        19: invokeinterface #64,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         24: pop\n         25: aload_1\n         26: aload_2\n-        27: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+        27: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n         30: astore_3\n         31: aload_3\n-        32: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        35: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        38: ldc           #24                 // String My name is Klaus, call me Klaus.\n-        40: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        32: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        35: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        38: ldc           #82                 // String My name is Klaus, call me Klaus.\n+        40: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         43: pop\n         44: return\n       LineNumberTable:\n         line 82: 0\n         line 84: 6\n         line 85: 14\n         line 88: 25\n@@ -503,36 +503,36 @@\n             6      39     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            14      31     2 variables   Ljava/util/Map;\n            31      14     3 prompt   Ldev/langchain4j/model/input/Prompt;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      31     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_fail_when_value_is_missing();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #13                 // String My name is {{name}}.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #51                 // String My name is {{name}}.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: invokestatic  #4                  // Method java/util/Collections.emptyMap:()Ljava/util/Map;\n+         6: invokestatic  #15                 // Method java/util/Collections.emptyMap:()Ljava/util/Map;\n          9: astore_2\n         10: aload_1\n         11: aload_2\n-        12: invokedynamic #25,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        17: invokestatic  #26                 // Method org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-        20: ldc           #27                 // class java/lang/IllegalArgumentException\n-        22: invokevirtual #28                 // Method org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-        25: checkcast     #29                 // class org/assertj/core/api/AbstractThrowableAssert\n-        28: ldc           #30                 // String Value for the variable \\'name\\' is missing\n-        30: invokevirtual #31                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        12: invokedynamic #84,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        17: invokestatic  #88                 // Method org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        20: ldc           #92                 // class java/lang/IllegalArgumentException\n+        22: invokevirtual #94                 // Method org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        25: checkcast     #95                 // class org/assertj/core/api/AbstractThrowableAssert\n+        28: ldc           #100                // String Value for the variable \\'name\\' is missing\n+        30: invokevirtual #102                // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n         33: pop\n         34: return\n       LineNumberTable:\n         line 98: 0\n         line 100: 6\n         line 103: 10\n         line 104: 22\n@@ -543,43 +543,43 @@\n             0      35     0  this   Ldev/langchain4j/model/input/PromptTemplateTest;\n             6      29     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            10      25     2 variables   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            10      25     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_fail_when_value_is_null();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: ldc           #13                 // String My name is {{name}}.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #51                 // String My name is {{name}}.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: new           #17                 // class java/util/HashMap\n+         6: new           #61                 // class java/util/HashMap\n          9: dup\n-        10: invokespecial #18                 // Method java/util/HashMap.\"<init>\":()V\n+        10: invokespecial #63                 // Method java/util/HashMap.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n-        15: ldc           #14                 // String name\n+        15: ldc           #53                 // String name\n         17: aconst_null\n-        18: invokeinterface #19,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        18: invokeinterface #64,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         23: pop\n         24: aload_1\n         25: aload_2\n-        26: invokedynamic #32,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        31: invokestatic  #26                 // Method org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-        34: ldc           #27                 // class java/lang/IllegalArgumentException\n-        36: invokevirtual #28                 // Method org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-        39: checkcast     #29                 // class org/assertj/core/api/AbstractThrowableAssert\n-        42: ldc           #33                 // String Value for the variable \\'name\\' is null\n-        44: invokevirtual #31                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        26: invokedynamic #106,  0            // InvokeDynamic #1:call:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        31: invokestatic  #88                 // Method org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        34: ldc           #92                 // class java/lang/IllegalArgumentException\n+        36: invokevirtual #94                 // Method org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        39: checkcast     #95                 // class org/assertj/core/api/AbstractThrowableAssert\n+        42: ldc           #107                // String Value for the variable \\'name\\' is null\n+        44: invokevirtual #102                // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n         47: pop\n         48: return\n       LineNumberTable:\n         line 112: 0\n         line 114: 6\n         line 115: 14\n         line 118: 24\n@@ -591,43 +591,43 @@\n             0      49     0  this   Ldev/langchain4j/model/input/PromptTemplateTest;\n             6      43     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            14      35     2 variables   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      35     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_provide_date_automatically();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: ldc           #34                 // String Today is {{current_date}}\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #109                // String Today is {{current_date}}\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: invokestatic  #4                  // Method java/util/Collections.emptyMap:()Ljava/util/Map;\n+         6: invokestatic  #15                 // Method java/util/Collections.emptyMap:()Ljava/util/Map;\n          9: astore_2\n         10: aload_1\n         11: aload_2\n-        12: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+        12: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n         15: astore_3\n         16: aload_3\n-        17: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        20: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        23: new           #35                 // class java/lang/StringBuilder\n+        17: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        20: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        23: new           #111                // class java/lang/StringBuilder\n         26: dup\n-        27: invokespecial #36                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        30: ldc           #37                 // String Today is\n-        32: invokevirtual #38                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        35: invokestatic  #39                 // Method java/time/LocalDate.now:()Ljava/time/LocalDate;\n-        38: invokevirtual #40                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        41: invokevirtual #41                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        44: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        27: invokespecial #113                // Method java/lang/StringBuilder.\"<init>\":()V\n+        30: ldc           #114                // String Today is\n+        32: invokevirtual #116                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        35: invokestatic  #120                // Method java/time/LocalDate.now:()Ljava/time/LocalDate;\n+        38: invokevirtual #126                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        41: invokevirtual #129                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        44: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         47: pop\n         48: return\n       LineNumberTable:\n         line 127: 0\n         line 129: 6\n         line 132: 10\n         line 135: 16\n@@ -638,49 +638,49 @@\n             6      43     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            10      39     2 variables   Ljava/util/Map;\n            16      33     3 prompt   Ldev/langchain4j/model/input/Prompt;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            10      39     2 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_provide_time_automatically();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=4, args_size=1\n-         0: invokestatic  #42                 // Method java/time/Instant.now:()Ljava/time/Instant;\n-         3: getstatic     #43                 // Field java/time/ZoneOffset.UTC:Ljava/time/ZoneOffset;\n-         6: invokestatic  #44                 // Method java/time/Clock.fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n+         0: invokestatic  #132                // Method java/time/Instant.now:()Ljava/time/Instant;\n+         3: getstatic     #137                // Field java/time/ZoneOffset.UTC:Ljava/time/ZoneOffset;\n+         6: invokestatic  #143                // Method java/time/Clock.fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n          9: astore_1\n-        10: new           #45                 // class dev/langchain4j/model/input/PromptTemplate\n+        10: new           #10                 // class dev/langchain4j/model/input/PromptTemplate\n         13: dup\n-        14: ldc           #46                 // String My name is {{it}} and now is {{current_time}}\n+        14: ldc           #149                // String My name is {{it}} and now is {{current_time}}\n         16: aload_1\n-        17: invokespecial #47                 // Method dev/langchain4j/model/input/PromptTemplate.\"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n+        17: invokespecial #151                // Method dev/langchain4j/model/input/PromptTemplate.\"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n         20: astore_2\n         21: aload_2\n-        22: ldc           #10                 // String Klaus\n-        24: invokevirtual #11                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+        22: ldc           #44                 // String Klaus\n+        24: invokevirtual #46                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         27: astore_3\n         28: aload_3\n-        29: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        32: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        35: new           #35                 // class java/lang/StringBuilder\n+        29: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        32: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        35: new           #111                // class java/lang/StringBuilder\n         38: dup\n-        39: invokespecial #36                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        42: ldc           #48                 // String My name is Klaus and now is\n-        44: invokevirtual #38                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        39: invokespecial #113                // Method java/lang/StringBuilder.\"<init>\":()V\n+        42: ldc           #154                // String My name is Klaus and now is\n+        44: invokevirtual #116                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         47: aload_1\n-        48: invokestatic  #49                 // Method java/time/LocalTime.now:(Ljava/time/Clock;)Ljava/time/LocalTime;\n-        51: invokevirtual #40                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        54: invokevirtual #41                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        57: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        48: invokestatic  #156                // Method java/time/LocalTime.now:(Ljava/time/Clock;)Ljava/time/LocalTime;\n+        51: invokevirtual #126                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        54: invokevirtual #129                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        57: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         60: pop\n         61: return\n       LineNumberTable:\n         line 142: 0\n         line 144: 10\n         line 147: 21\n         line 150: 28\n@@ -688,58 +688,58 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      62     0  this   Ldev/langchain4j/model/input/PromptTemplateTest;\n            10      52     1 clock   Ljava/time/Clock;\n            21      41     2 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            28      34     3 prompt   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_provide_date_and_time_automatically();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=5, args_size=1\n-         0: invokestatic  #42                 // Method java/time/Instant.now:()Ljava/time/Instant;\n-         3: getstatic     #43                 // Field java/time/ZoneOffset.UTC:Ljava/time/ZoneOffset;\n-         6: invokestatic  #44                 // Method java/time/Clock.fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n+         0: invokestatic  #132                // Method java/time/Instant.now:()Ljava/time/Instant;\n+         3: getstatic     #137                // Field java/time/ZoneOffset.UTC:Ljava/time/ZoneOffset;\n+         6: invokestatic  #143                // Method java/time/Clock.fixed:(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/Clock;\n          9: astore_1\n-        10: new           #45                 // class dev/langchain4j/model/input/PromptTemplate\n+        10: new           #10                 // class dev/langchain4j/model/input/PromptTemplate\n         13: dup\n-        14: ldc           #50                 // String My name is {{name}} and now is {{current_date_time}}\n+        14: ldc           #161                // String My name is {{name}} and now is {{current_date_time}}\n         16: aload_1\n-        17: invokespecial #47                 // Method dev/langchain4j/model/input/PromptTemplate.\"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n+        17: invokespecial #151                // Method dev/langchain4j/model/input/PromptTemplate.\"<init>\":(Ljava/lang/String;Ljava/time/Clock;)V\n         20: astore_2\n-        21: new           #17                 // class java/util/HashMap\n+        21: new           #61                 // class java/util/HashMap\n         24: dup\n-        25: invokespecial #18                 // Method java/util/HashMap.\"<init>\":()V\n+        25: invokespecial #63                 // Method java/util/HashMap.\"<init>\":()V\n         28: astore_3\n         29: aload_3\n-        30: ldc           #14                 // String name\n-        32: ldc           #10                 // String Klaus\n-        34: invokeinterface #19,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        30: ldc           #53                 // String name\n+        32: ldc           #44                 // String Klaus\n+        34: invokeinterface #64,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         39: pop\n         40: aload_2\n         41: aload_3\n-        42: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+        42: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n         45: astore        4\n         47: aload         4\n-        49: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        52: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        55: new           #35                 // class java/lang/StringBuilder\n+        49: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        52: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        55: new           #111                // class java/lang/StringBuilder\n         58: dup\n-        59: invokespecial #36                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        62: ldc           #48                 // String My name is Klaus and now is\n-        64: invokevirtual #38                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        59: invokespecial #113                // Method java/lang/StringBuilder.\"<init>\":()V\n+        62: ldc           #154                // String My name is Klaus and now is\n+        64: invokevirtual #116                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         67: aload_1\n-        68: invokestatic  #51                 // Method java/time/LocalDateTime.now:(Ljava/time/Clock;)Ljava/time/LocalDateTime;\n-        71: invokevirtual #40                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        74: invokevirtual #41                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        77: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        68: invokestatic  #163                // Method java/time/LocalDateTime.now:(Ljava/time/Clock;)Ljava/time/LocalDateTime;\n+        71: invokevirtual #126                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        74: invokevirtual #129                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        77: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         80: pop\n         81: return\n       LineNumberTable:\n         line 157: 0\n         line 159: 10\n         line 161: 21\n         line 162: 29\n@@ -753,47 +753,47 @@\n            21      61     2 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            29      53     3 variables   Ljava/util/Map;\n            47      35     4 prompt   Ldev/langchain4j/model/input/Prompt;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            29      53     3 variables   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;\n     RuntimeVisibleAnnotations:\n-      0: #76()\n+      0: #203()\n         org.junit.jupiter.api.Test\n \n   void should_support_special_characters(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=2\n-         0: ldc           #52                 // String This is {{it}}.\n-         2: invokestatic  #3                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #168                // String This is {{it}}.\n+         2: invokestatic  #9                  // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_2\n          6: aload_2\n          7: aload_1\n-         8: invokevirtual #11                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+         8: invokevirtual #46                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         11: astore_3\n-        12: getstatic     #53                 // Field java/lang/System.out:Ljava/io/PrintStream;\n+        12: getstatic     #170                // Field java/lang/System.out:Ljava/io/PrintStream;\n         15: aload_3\n-        16: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        19: invokevirtual #54                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V\n+        16: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        19: invokevirtual #176                // Method java/io/PrintStream.println:(Ljava/lang/String;)V\n         22: aload_3\n-        23: invokevirtual #6                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        26: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        29: new           #35                 // class java/lang/StringBuilder\n+        23: invokevirtual #25                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        26: invokestatic  #31                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        29: new           #111                // class java/lang/StringBuilder\n         32: dup\n-        33: invokespecial #36                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        36: ldc           #55                 // String This is\n-        38: invokevirtual #38                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        33: invokespecial #113                // Method java/lang/StringBuilder.\"<init>\":()V\n+        36: ldc           #182                // String This is\n+        38: invokevirtual #116                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         41: aload_1\n-        42: invokevirtual #38                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        45: ldc           #56                 // String .\n-        47: invokevirtual #38                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        50: invokevirtual #41                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        53: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        42: invokevirtual #116                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        45: ldc           #184                // String .\n+        47: invokevirtual #116                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        50: invokevirtual #129                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        53: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         56: pop\n         57: return\n       LineNumberTable:\n         line 192: 0\n         line 195: 6\n         line 196: 12\n         line 199: 22\n@@ -801,29 +801,29 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      58     0  this   Ldev/langchain4j/model/input/PromptTemplateTest;\n             0      58     1     s   Ljava/lang/String;\n             6      52     2 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            12      46     3 prompt   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #92()\n+      0: #218()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #93(#94=[s#95,s#96,s#97,s#98,s#99,s#100,s#101,s#102,s#103,s#104,s#105,s#106,s#107,s#108,s#109])\n+      1: #219(#220=[s#221,s#222,s#223,s#224,s#225,s#226,s#227,s#228,s#229,s#230,s#231,s#232,s#233,s#234,s#235])\n         org.junit.jupiter.params.provider.ValueSource(\n           strings=[\"$\",\"$$\",\"{\",\"{{\",\"}\",\"}}\",\"{}\",\"{{}}\",\"*\",\"**\",\"\\\\\",\"\\\\\\\\\",\"${}*\\\\\",\"${ *hello* }\",\"\\\\$\\\\{ \\\\*hello\\\\* \\\\}\"]\n         )\n \n   private static void lambda$should_fail_when_value_is_null$1(dev.langchain4j.model.input.PromptTemplate, java.util.Map) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+         2: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n          5: pop\n          6: return\n       LineNumberTable:\n         line 118: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n@@ -834,34 +834,34 @@\n   private static void lambda$should_fail_when_value_is_missing$0(dev.langchain4j.model.input.PromptTemplate, java.util.Map) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #5                  // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n+         2: invokevirtual #21                 // Method dev/langchain4j/model/input/PromptTemplate.apply:(Ljava/util/Map;)Ldev/langchain4j/model/input/Prompt;\n          5: pop\n          6: return\n       LineNumberTable:\n         line 103: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n             0       7     1 variables   Ljava/util/Map;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"PromptTemplateTest.java\"\n-InnerClasses:\n-  public static #220= #219 of #258;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #264= #263 of #267; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #147 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #245 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #148 ()V\n-      #149 REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-      #148 ()V\n-  1: #147 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #252 ()V\n+      #253 REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_missing$0:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+      #252 ()V\n+  1: #245 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #148 ()V\n-      #157 REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n-      #148 ()V\n+      #252 ()V\n+      #256 REF_invokeStatic dev/langchain4j/model/input/PromptTemplateTest.lambda$should_fail_when_value_is_null$1:(Ldev/langchain4j/model/input/PromptTemplate;Ljava/util/Map;)V\n+      #252 ()V\n+InnerClasses:\n+  public static #264= #260 of #262;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #269= #265 of #267; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/input/PromptTest.class", "source2": "dev/langchain4j/model/input/PromptTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,176 +1,176 @@\n-  SHA-256 checksum 66801a494a58ebe04282692fe094316143494ff70dc5db86d3a779cd65a07df5\n+  SHA-256 checksum 28a171ccca67cfd6271fbea32280218fafb64822a98652cc0c88e451b04119c7\n   Compiled from \"PromptTest.java\"\n class dev.langchain4j.model.input.PromptTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #32                         // dev/langchain4j/model/input/PromptTest\n-  super_class: #28                        // java/lang/Object\n+  this_class: #10                         // dev/langchain4j/model/input/PromptTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 3\n Constant pool:\n-    #1 = Methodref          #28.#56       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #57           // java/lang/IllegalArgumentException\n-    #3 = Methodref          #32.#58       // dev/langchain4j/model/input/PromptTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-    #4 = InvokeDynamic      #0:#63        // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-    #5 = Methodref          #64.#65       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-    #6 = String             #66           // blank\n-    #7 = Methodref          #67.#68       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-    #8 = Class              #69           // dev/langchain4j/model/input/Prompt\n-    #9 = String             #70           // abc\n-   #10 = Methodref          #8.#71        // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n-   #11 = Methodref          #32.#72       // dev/langchain4j/model/input/PromptTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #12 = String             #73           // Prompt { text = \\\"abc\\\" }\n-   #13 = Methodref          #14.#74       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #14 = Class              #75           // org/assertj/core/api/ObjectAssert\n-   #15 = Methodref          #8.#76        // dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-   #16 = Methodref          #14.#77       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #17 = Methodref          #8.#78        // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-   #18 = Methodref          #32.#79       // dev/langchain4j/model/input/PromptTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #19 = Methodref          #80.#81       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #20 = Methodref          #8.#82        // dev/langchain4j/model/input/Prompt.toSystemMessage:()Ldev/langchain4j/data/message/SystemMessage;\n-   #21 = Methodref          #83.#84       // dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-   #22 = Methodref          #8.#85        // dev/langchain4j/model/input/Prompt.toUserMessage:()Ldev/langchain4j/data/message/UserMessage;\n-   #23 = Methodref          #86.#87       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #24 = Methodref          #8.#88        // dev/langchain4j/model/input/Prompt.toAiMessage:()Ldev/langchain4j/data/message/AiMessage;\n-   #25 = Methodref          #89.#90       // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #26 = String             #91           // xyz\n-   #27 = Methodref          #14.#92       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #28 = Class              #93           // java/lang/Object\n-   #29 = Methodref          #14.#94       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #30 = Methodref          #14.#95       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #31 = String             #96           //\n-   #32 = Class              #97           // dev/langchain4j/model/input/PromptTest\n-   #33 = Class              #98           // org/assertj/core/api/WithAssertions\n-   #34 = Utf8               <init>\n-   #35 = Utf8               ()V\n-   #36 = Utf8               Code\n-   #37 = Utf8               LineNumberTable\n-   #38 = Utf8               LocalVariableTable\n-   #39 = Utf8               this\n-   #40 = Utf8               Ldev/langchain4j/model/input/PromptTest;\n-   #41 = Utf8               test_constructor\n-   #42 = Utf8               p\n-   #43 = Utf8               Ldev/langchain4j/model/input/Prompt;\n-   #44 = Utf8               RuntimeVisibleAnnotations\n-   #45 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #46 = Utf8               test_equals_hashCode\n-   #47 = Utf8               p1\n-   #48 = Utf8               p2\n-   #49 = Utf8               p3\n-   #50 = Utf8               p4\n-   #51 = Utf8               lambda$test_constructor$0\n-   #52 = Utf8               Exceptions\n-   #53 = Class              #99           // java/lang/Throwable\n-   #54 = Utf8               SourceFile\n-   #55 = Utf8               PromptTest.java\n-   #56 = NameAndType        #34:#35       // \"<init>\":()V\n-   #57 = Utf8               java/lang/IllegalArgumentException\n-   #58 = NameAndType        #100:#101     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #59 = Utf8               BootstrapMethods\n-   #60 = MethodHandle       6:#102        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #61 = MethodType         #35           //  ()V\n-   #62 = MethodHandle       6:#103        // REF_invokeStatic dev/langchain4j/model/input/PromptTest.lambda$test_constructor$0:()V\n-   #63 = NameAndType        #104:#108     // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #64 = Class              #109          // org/assertj/core/api/ThrowableTypeAssert\n-   #65 = NameAndType        #110:#111     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #66 = Utf8               blank\n-   #67 = Class              #112          // org/assertj/core/api/ThrowableAssertAlternative\n-   #68 = NameAndType        #113:#114     // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #69 = Utf8               dev/langchain4j/model/input/Prompt\n-   #70 = Utf8               abc\n-   #71 = NameAndType        #34:#115      // \"<init>\":(Ljava/lang/String;)V\n-   #72 = NameAndType        #116:#117     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #73 = Utf8               Prompt { text = \\\"abc\\\" }\n-   #74 = NameAndType        #118:#119     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #75 = Utf8               org/assertj/core/api/ObjectAssert\n-   #76 = NameAndType        #120:#121     // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-   #77 = NameAndType        #122:#123     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #78 = NameAndType        #124:#125     // text:()Ljava/lang/String;\n-   #79 = NameAndType        #116:#126     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #80 = Class              #127          // org/assertj/core/api/AbstractStringAssert\n-   #81 = NameAndType        #122:#126     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #82 = NameAndType        #128:#129     // toSystemMessage:()Ldev/langchain4j/data/message/SystemMessage;\n-   #83 = Class              #130          // dev/langchain4j/data/message/SystemMessage\n-   #84 = NameAndType        #131:#132     // systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-   #85 = NameAndType        #133:#134     // toUserMessage:()Ldev/langchain4j/data/message/UserMessage;\n-   #86 = Class              #135          // dev/langchain4j/data/message/UserMessage\n-   #87 = NameAndType        #136:#137     // userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #88 = NameAndType        #138:#139     // toAiMessage:()Ldev/langchain4j/data/message/AiMessage;\n-   #89 = Class              #140          // dev/langchain4j/data/message/AiMessage\n-   #90 = NameAndType        #141:#142     // aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #91 = Utf8               xyz\n-   #92 = NameAndType        #143:#123     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #93 = Utf8               java/lang/Object\n-   #94 = NameAndType        #144:#123     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #95 = NameAndType        #145:#123     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #96 = Utf8\n-   #97 = Utf8               dev/langchain4j/model/input/PromptTest\n-   #98 = Utf8               org/assertj/core/api/WithAssertions\n-   #99 = Utf8               java/lang/Throwable\n-  #100 = Utf8               assertThatExceptionOfType\n-  #101 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #102 = Methodref          #146.#147     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #103 = Methodref          #32.#148      // dev/langchain4j/model/input/PromptTest.lambda$test_constructor$0:()V\n-  #104 = Utf8               call\n-  #105 = Class              #150          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #106 = Utf8               ThrowingCallable\n-  #107 = Utf8               InnerClasses\n-  #108 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #109 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #110 = Utf8               isThrownBy\n-  #111 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #112 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #113 = Utf8               withMessageContaining\n-  #114 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #115 = Utf8               (Ljava/lang/String;)V\n-  #116 = Utf8               assertThat\n-  #117 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #118 = Utf8               hasToString\n-  #119 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #120 = Utf8               from\n-  #121 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-  #122 = Utf8               isEqualTo\n-  #123 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #124 = Utf8               text\n-  #125 = Utf8               ()Ljava/lang/String;\n-  #126 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #127 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #128 = Utf8               toSystemMessage\n-  #129 = Utf8               ()Ldev/langchain4j/data/message/SystemMessage;\n-  #130 = Utf8               dev/langchain4j/data/message/SystemMessage\n-  #131 = Utf8               systemMessage\n-  #132 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #133 = Utf8               toUserMessage\n-  #134 = Utf8               ()Ldev/langchain4j/data/message/UserMessage;\n-  #135 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #136 = Utf8               userMessage\n-  #137 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #138 = Utf8               toAiMessage\n-  #139 = Utf8               ()Ldev/langchain4j/data/message/AiMessage;\n-  #140 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #141 = Utf8               aiMessage\n-  #142 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #143 = Utf8               isNotEqualTo\n-  #144 = Utf8               hasSameHashCodeAs\n-  #145 = Utf8               doesNotHaveSameHashCodeAs\n-  #146 = Class              #151          // java/lang/invoke/LambdaMetafactory\n-  #147 = NameAndType        #152:#155     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #148 = NameAndType        #51:#35       // lambda$test_constructor$0:()V\n-  #149 = Class              #156          // org/assertj/core/api/ThrowableAssert\n-  #150 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #151 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #152 = Utf8               metafactory\n-  #153 = Class              #158          // java/lang/invoke/MethodHandles$Lookup\n-  #154 = Utf8               Lookup\n-  #155 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #156 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #157 = Class              #159          // java/lang/invoke/MethodHandles\n-  #158 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #159 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/lang/IllegalArgumentException\n+    #8 = Utf8               java/lang/IllegalArgumentException\n+    #9 = Methodref          #10.#11       // dev/langchain4j/model/input/PromptTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #10 = Class              #12           // dev/langchain4j/model/input/PromptTest\n+   #11 = NameAndType        #13:#14       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #12 = Utf8               dev/langchain4j/model/input/PromptTest\n+   #13 = Utf8               assertThatExceptionOfType\n+   #14 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #15 = InvokeDynamic      #0:#16        // #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #16 = NameAndType        #17:#18       // call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #17 = Utf8               call\n+   #18 = Utf8               ()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #20 = Class              #22           // org/assertj/core/api/ThrowableTypeAssert\n+   #21 = NameAndType        #23:#24       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #22 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #23 = Utf8               isThrownBy\n+   #24 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #25 = String             #26           // blank\n+   #26 = Utf8               blank\n+   #27 = Methodref          #28.#29       // org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #28 = Class              #30           // org/assertj/core/api/ThrowableAssertAlternative\n+   #29 = NameAndType        #31:#32       // withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #30 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #31 = Utf8               withMessageContaining\n+   #32 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #33 = Class              #34           // dev/langchain4j/model/input/Prompt\n+   #34 = Utf8               dev/langchain4j/model/input/Prompt\n+   #35 = String             #36           // abc\n+   #36 = Utf8               abc\n+   #37 = Methodref          #33.#38       // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+   #38 = NameAndType        #5:#39        // \"<init>\":(Ljava/lang/String;)V\n+   #39 = Utf8               (Ljava/lang/String;)V\n+   #40 = Methodref          #10.#41       // dev/langchain4j/model/input/PromptTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #41 = NameAndType        #42:#43       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #42 = Utf8               assertThat\n+   #43 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #44 = String             #45           // Prompt { text = \\\"abc\\\" }\n+   #45 = Utf8               Prompt { text = \\\"abc\\\" }\n+   #46 = Methodref          #47.#48       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #47 = Class              #49           // org/assertj/core/api/ObjectAssert\n+   #48 = NameAndType        #50:#51       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #49 = Utf8               org/assertj/core/api/ObjectAssert\n+   #50 = Utf8               hasToString\n+   #51 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #52 = Methodref          #33.#53       // dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+   #53 = NameAndType        #54:#55       // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+   #54 = Utf8               from\n+   #55 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+   #56 = Methodref          #47.#57       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #57 = NameAndType        #58:#59       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #58 = Utf8               isEqualTo\n+   #59 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #60 = Methodref          #33.#61       // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+   #61 = NameAndType        #62:#63       // text:()Ljava/lang/String;\n+   #62 = Utf8               text\n+   #63 = Utf8               ()Ljava/lang/String;\n+   #64 = Methodref          #10.#65       // dev/langchain4j/model/input/PromptTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #65 = NameAndType        #42:#66       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #66 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #67 = Methodref          #68.#69       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #68 = Class              #70           // org/assertj/core/api/AbstractStringAssert\n+   #69 = NameAndType        #58:#66       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #70 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #71 = Methodref          #33.#72       // dev/langchain4j/model/input/Prompt.toSystemMessage:()Ldev/langchain4j/data/message/SystemMessage;\n+   #72 = NameAndType        #73:#74       // toSystemMessage:()Ldev/langchain4j/data/message/SystemMessage;\n+   #73 = Utf8               toSystemMessage\n+   #74 = Utf8               ()Ldev/langchain4j/data/message/SystemMessage;\n+   #75 = Methodref          #76.#77       // dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #76 = Class              #78           // dev/langchain4j/data/message/SystemMessage\n+   #77 = NameAndType        #79:#80       // systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #78 = Utf8               dev/langchain4j/data/message/SystemMessage\n+   #79 = Utf8               systemMessage\n+   #80 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #81 = Methodref          #33.#82       // dev/langchain4j/model/input/Prompt.toUserMessage:()Ldev/langchain4j/data/message/UserMessage;\n+   #82 = NameAndType        #83:#84       // toUserMessage:()Ldev/langchain4j/data/message/UserMessage;\n+   #83 = Utf8               toUserMessage\n+   #84 = Utf8               ()Ldev/langchain4j/data/message/UserMessage;\n+   #85 = Methodref          #86.#87       // dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #86 = Class              #88           // dev/langchain4j/data/message/UserMessage\n+   #87 = NameAndType        #89:#90       // userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #88 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #89 = Utf8               userMessage\n+   #90 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #91 = Methodref          #33.#92       // dev/langchain4j/model/input/Prompt.toAiMessage:()Ldev/langchain4j/data/message/AiMessage;\n+   #92 = NameAndType        #93:#94       // toAiMessage:()Ldev/langchain4j/data/message/AiMessage;\n+   #93 = Utf8               toAiMessage\n+   #94 = Utf8               ()Ldev/langchain4j/data/message/AiMessage;\n+   #95 = Methodref          #96.#97       // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #96 = Class              #98           // dev/langchain4j/data/message/AiMessage\n+   #97 = NameAndType        #99:#100      // aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #98 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #99 = Utf8               aiMessage\n+  #100 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #101 = String             #102          // xyz\n+  #102 = Utf8               xyz\n+  #103 = Methodref          #47.#104      // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #104 = NameAndType        #105:#59      // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #105 = Utf8               isNotEqualTo\n+  #106 = Methodref          #47.#107      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #107 = NameAndType        #108:#59      // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #108 = Utf8               hasSameHashCodeAs\n+  #109 = Methodref          #47.#110      // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #110 = NameAndType        #111:#59      // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #111 = Utf8               doesNotHaveSameHashCodeAs\n+  #112 = String             #113          //\n+  #113 = Utf8\n+  #114 = Class              #115          // org/assertj/core/api/WithAssertions\n+  #115 = Utf8               org/assertj/core/api/WithAssertions\n+  #116 = Utf8               Code\n+  #117 = Utf8               LineNumberTable\n+  #118 = Utf8               LocalVariableTable\n+  #119 = Utf8               this\n+  #120 = Utf8               Ldev/langchain4j/model/input/PromptTest;\n+  #121 = Utf8               test_constructor\n+  #122 = Utf8               p\n+  #123 = Utf8               Ldev/langchain4j/model/input/Prompt;\n+  #124 = Utf8               RuntimeVisibleAnnotations\n+  #125 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #126 = Utf8               test_equals_hashCode\n+  #127 = Utf8               p1\n+  #128 = Utf8               p2\n+  #129 = Utf8               p3\n+  #130 = Utf8               p4\n+  #131 = Utf8               lambda$test_constructor$0\n+  #132 = Utf8               Exceptions\n+  #133 = Class              #134          // java/lang/Throwable\n+  #134 = Utf8               java/lang/Throwable\n+  #135 = Utf8               SourceFile\n+  #136 = Utf8               PromptTest.java\n+  #137 = Utf8               BootstrapMethods\n+  #138 = MethodHandle       6:#139        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #139 = Methodref          #140.#141     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #140 = Class              #142          // java/lang/invoke/LambdaMetafactory\n+  #141 = NameAndType        #143:#144     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #142 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #143 = Utf8               metafactory\n+  #144 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #145 = MethodType         #6            //  ()V\n+  #146 = MethodHandle       6:#147        // REF_invokeStatic dev/langchain4j/model/input/PromptTest.lambda$test_constructor$0:()V\n+  #147 = Methodref          #10.#148      // dev/langchain4j/model/input/PromptTest.lambda$test_constructor$0:()V\n+  #148 = NameAndType        #131:#6       // lambda$test_constructor$0:()V\n+  #149 = Utf8               InnerClasses\n+  #150 = Class              #151          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #151 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #152 = Class              #153          // org/assertj/core/api/ThrowableAssert\n+  #153 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #154 = Utf8               ThrowingCallable\n+  #155 = Class              #156          // java/lang/invoke/MethodHandles$Lookup\n+  #156 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #157 = Class              #158          // java/lang/invoke/MethodHandles\n+  #158 = Utf8               java/lang/invoke/MethodHandles\n+  #159 = Utf8               Lookup\n {\n   dev.langchain4j.model.input.PromptTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -184,66 +184,66 @@\n \n   public void test_constructor();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=1\n          0: aload_0\n-         1: ldc           #2                  // class java/lang/IllegalArgumentException\n-         3: invokevirtual #3                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-         6: invokedynamic #4,  0              // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        11: invokevirtual #5                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        14: ldc           #6                  // String blank\n-        16: invokevirtual #7                  // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+         1: ldc           #7                  // class java/lang/IllegalArgumentException\n+         3: invokevirtual #9                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+         6: invokedynamic #15,  0             // InvokeDynamic #0:call:()Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        11: invokevirtual #19                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        14: ldc           #25                 // String blank\n+        16: invokevirtual #27                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessageContaining:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         19: pop\n-        20: new           #8                  // class dev/langchain4j/model/input/Prompt\n+        20: new           #33                 // class dev/langchain4j/model/input/Prompt\n         23: dup\n-        24: ldc           #9                  // String abc\n-        26: invokespecial #10                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+        24: ldc           #35                 // String abc\n+        26: invokespecial #37                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n         29: astore_1\n         30: aload_0\n         31: aload_1\n-        32: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        35: ldc           #12                 // String Prompt { text = \\\"abc\\\" }\n-        37: invokevirtual #13                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-        40: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n-        43: ldc           #9                  // String abc\n-        45: invokestatic  #15                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-        48: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        32: invokevirtual #40                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        35: ldc           #44                 // String Prompt { text = \\\"abc\\\" }\n+        37: invokevirtual #46                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        40: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n+        43: ldc           #35                 // String abc\n+        45: invokestatic  #52                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+        48: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         51: pop\n         52: aload_0\n         53: aload_1\n-        54: invokevirtual #17                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        57: invokevirtual #18                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        60: ldc           #9                  // String abc\n-        62: invokevirtual #19                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        54: invokevirtual #60                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        57: invokevirtual #64                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        60: ldc           #35                 // String abc\n+        62: invokevirtual #67                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         65: pop\n         66: aload_0\n         67: aload_1\n-        68: invokevirtual #20                 // Method dev/langchain4j/model/input/Prompt.toSystemMessage:()Ldev/langchain4j/data/message/SystemMessage;\n-        71: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        74: ldc           #9                  // String abc\n-        76: invokestatic  #21                 // Method dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-        79: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        68: invokevirtual #71                 // Method dev/langchain4j/model/input/Prompt.toSystemMessage:()Ldev/langchain4j/data/message/SystemMessage;\n+        71: invokevirtual #40                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        74: ldc           #35                 // String abc\n+        76: invokestatic  #75                 // Method dev/langchain4j/data/message/SystemMessage.systemMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+        79: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         82: pop\n         83: aload_0\n         84: aload_1\n-        85: invokevirtual #22                 // Method dev/langchain4j/model/input/Prompt.toUserMessage:()Ldev/langchain4j/data/message/UserMessage;\n-        88: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        91: ldc           #9                  // String abc\n-        93: invokestatic  #23                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-        96: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        85: invokevirtual #81                 // Method dev/langchain4j/model/input/Prompt.toUserMessage:()Ldev/langchain4j/data/message/UserMessage;\n+        88: invokevirtual #40                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        91: ldc           #35                 // String abc\n+        93: invokestatic  #85                 // Method dev/langchain4j/data/message/UserMessage.userMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        96: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         99: pop\n        100: aload_0\n        101: aload_1\n-       102: invokevirtual #24                 // Method dev/langchain4j/model/input/Prompt.toAiMessage:()Ldev/langchain4j/data/message/AiMessage;\n-       105: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       108: ldc           #9                  // String abc\n-       110: invokestatic  #25                 // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-       113: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       102: invokevirtual #91                 // Method dev/langchain4j/model/input/Prompt.toAiMessage:()Ldev/langchain4j/data/message/AiMessage;\n+       105: invokevirtual #40                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       108: ldc           #35                 // String abc\n+       110: invokestatic  #95                 // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+       113: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        116: pop\n        117: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 11\n         line 15: 16\n         line 17: 20\n@@ -259,74 +259,74 @@\n         line 28: 110\n         line 29: 117\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     118     0  this   Ldev/langchain4j/model/input/PromptTest;\n            30      88     1     p   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #45()\n+      0: #125()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: ldc           #9                  // String abc\n-         2: invokestatic  #15                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+         0: ldc           #35                 // String abc\n+         2: invokestatic  #52                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n          5: astore_1\n-         6: ldc           #9                  // String abc\n-         8: invokestatic  #15                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+         6: ldc           #35                 // String abc\n+         8: invokestatic  #52                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n         11: astore_2\n-        12: ldc           #26                 // String xyz\n-        14: invokestatic  #15                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+        12: ldc           #101                // String xyz\n+        14: invokestatic  #52                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n         17: astore_3\n-        18: ldc           #26                 // String xyz\n-        20: invokestatic  #15                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+        18: ldc           #101                // String xyz\n+        20: invokestatic  #52                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n         23: astore        4\n         25: aload_0\n         26: aload_1\n-        27: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        27: invokevirtual #40                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         30: aconst_null\n-        31: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        34: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n-        37: new           #28                 // class java/lang/Object\n+        31: invokevirtual #103                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        34: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n+        37: new           #2                  // class java/lang/Object\n         40: dup\n         41: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        44: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        47: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        44: invokevirtual #103                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        47: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         50: aload_1\n-        51: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        54: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        51: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        54: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         57: aload_1\n-        58: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        61: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        58: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        61: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         64: aload_2\n-        65: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        68: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        65: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        68: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         71: aload_2\n-        72: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        75: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        72: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        75: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         78: aload_3\n-        79: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        82: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        79: invokevirtual #103                // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        82: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         85: aload_3\n-        86: invokevirtual #30                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        86: invokevirtual #109                // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         89: pop\n         90: aload_0\n         91: aload_3\n-        92: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        92: invokevirtual #40                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         95: aload_3\n-        96: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        99: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+        96: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        99: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n        102: aload         4\n-       104: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       107: checkcast     #14                 // class org/assertj/core/api/ObjectAssert\n+       104: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       107: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n        110: aload         4\n-       112: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       112: invokevirtual #106                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        115: pop\n        116: return\n       LineNumberTable:\n         line 33: 0\n         line 34: 6\n         line 36: 12\n         line 37: 18\n@@ -348,36 +348,36 @@\n         Start  Length  Slot  Name   Signature\n             0     117     0  this   Ldev/langchain4j/model/input/PromptTest;\n             6     111     1    p1   Ldev/langchain4j/model/input/Prompt;\n            12     105     2    p2   Ldev/langchain4j/model/input/Prompt;\n            18      99     3    p3   Ldev/langchain4j/model/input/Prompt;\n            25      92     4    p4   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #45()\n+      0: #125()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_constructor$0() throws java.lang.Throwable;\n     descriptor: ()V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=0, args_size=0\n-         0: new           #8                  // class dev/langchain4j/model/input/Prompt\n+         0: new           #33                 // class dev/langchain4j/model/input/Prompt\n          3: dup\n-         4: ldc           #31                 // String\n-         6: invokespecial #10                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #112                // String\n+         6: invokespecial #37                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n          9: pop\n         10: return\n       LineNumberTable:\n         line 14: 0\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"PromptTest.java\"\n-InnerClasses:\n-  public static #106= #105 of #149;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #154= #153 of #157; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #60 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #138 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #61 ()V\n-      #62 REF_invokeStatic dev/langchain4j/model/input/PromptTest.lambda$test_constructor$0:()V\n-      #61 ()V\n+      #145 ()V\n+      #146 REF_invokeStatic dev/langchain4j/model/input/PromptTest.lambda$test_constructor$0:()V\n+      #145 ()V\n+InnerClasses:\n+  public static #154= #150 of #152;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #159= #155 of #157; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.class", "source2": "dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,71 +1,71 @@\n-  SHA-256 checksum 3ab9d0d6c203c6679fadd654593a6fa96d6d9f897c052cd86839932fa7bda96c\n+  SHA-256 checksum 3f77fb5c278a4c24289ee138e85a13fb3e59fc48b6c89b3a0b6bc591926e6f8b\n   Compiled from \"DefaultStructuredPromptFactoryTest.java\"\n class dev.langchain4j.model.input.structured.DefaultStructuredPromptFactoryTest$BrokenPrompt\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n-  super_class: #4                         // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 1, methods: 1, attributes: 3\n Constant pool:\n-   #1 = Methodref          #4.#22         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #3.#23         // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.name:Ljava/lang/String;\n-   #3 = Class              #25            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n-   #4 = Class              #26            // java/lang/Object\n-   #5 = Utf8               name\n-   #6 = Utf8               Ljava/lang/String;\n-   #7 = Utf8               <init>\n-   #8 = Utf8               (Ljava/lang/String;)V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               BrokenPrompt\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt;\n-  #16 = Utf8               SourceFile\n-  #17 = Utf8               DefaultStructuredPromptFactoryTest.java\n-  #18 = Utf8               RuntimeVisibleAnnotations\n-  #19 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n-  #20 = Utf8               value\n-  #21 = Utf8               Hello, my name is {{broken}}\n-  #22 = NameAndType        #7:#27         // \"<init>\":()V\n-  #23 = NameAndType        #5:#6          // name:Ljava/lang/String;\n-  #24 = Class              #28            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-  #25 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n-  #26 = Utf8               java/lang/Object\n-  #27 = Utf8               ()V\n-  #28 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.name:Ljava/lang/String;\n+   #8 = Class              #10            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n+   #9 = NameAndType        #11:#12        // name:Ljava/lang/String;\n+  #10 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n+  #11 = Utf8               name\n+  #12 = Utf8               Ljava/lang/String;\n+  #13 = Utf8               (Ljava/lang/String;)V\n+  #14 = Utf8               Code\n+  #15 = Utf8               LineNumberTable\n+  #16 = Utf8               LocalVariableTable\n+  #17 = Utf8               this\n+  #18 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt;\n+  #19 = Utf8               SourceFile\n+  #20 = Utf8               DefaultStructuredPromptFactoryTest.java\n+  #21 = Utf8               RuntimeVisibleAnnotations\n+  #22 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n+  #23 = Utf8               value\n+  #24 = Utf8               Hello, my name is {{broken}}\n+  #25 = Utf8               InnerClasses\n+  #26 = Class              #27            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  #27 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  #28 = Utf8               BrokenPrompt\n {\n   public final java.lang.String name;\n     descriptor: Ljava/lang/String;\n     flags: (0x0011) ACC_PUBLIC, ACC_FINAL\n \n   public dev.langchain4j.model.input.structured.DefaultStructuredPromptFactoryTest$BrokenPrompt(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field name:Ljava/lang/String;\n+         6: putfield      #7                  // Field name:Ljava/lang/String;\n          9: return\n       LineNumberTable:\n         line 22: 0\n         line 23: 4\n         line 24: 9\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt;\n             0      10     1  name   Ljava/lang/String;\n }\n SourceFile: \"DefaultStructuredPromptFactoryTest.java\"\n RuntimeVisibleAnnotations:\n-  0: #19(#20=[s#21])\n+  0: #22(#23=[s#24])\n     dev.langchain4j.model.input.structured.StructuredPrompt(\n       value=[\"Hello, my name is {{broken}}\"]\n     )\n InnerClasses:\n-  static #13= #3 of #24;                  // BrokenPrompt=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  static #28= #8 of #26;                  // BrokenPrompt=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n"}]}, {"source1": "dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.class", "source2": "dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,71 +1,71 @@\n-  SHA-256 checksum b33a039a3b677139fbe2ecc83a2b8ba2f54eb4121abb3e9178fef56d654dda7f\n+  SHA-256 checksum ac0c17f622a56a47003e0dac320e355b05549bf03d2adbf0a4d3086816e3f2d4\n   Compiled from \"DefaultStructuredPromptFactoryTest.java\"\n class dev.langchain4j.model.input.structured.DefaultStructuredPromptFactoryTest$Greeting\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n-  super_class: #4                         // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 1, methods: 1, attributes: 3\n Constant pool:\n-   #1 = Methodref          #4.#22         // java/lang/Object.\"<init>\":()V\n-   #2 = Fieldref           #3.#23         // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.name:Ljava/lang/String;\n-   #3 = Class              #25            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n-   #4 = Class              #26            // java/lang/Object\n-   #5 = Utf8               name\n-   #6 = Utf8               Ljava/lang/String;\n-   #7 = Utf8               <init>\n-   #8 = Utf8               (Ljava/lang/String;)V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               Greeting\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting;\n-  #16 = Utf8               SourceFile\n-  #17 = Utf8               DefaultStructuredPromptFactoryTest.java\n-  #18 = Utf8               RuntimeVisibleAnnotations\n-  #19 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n-  #20 = Utf8               value\n-  #21 = Utf8               Hello, my name is {{name}}\n-  #22 = NameAndType        #7:#27         // \"<init>\":()V\n-  #23 = NameAndType        #5:#6          // name:Ljava/lang/String;\n-  #24 = Class              #28            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-  #25 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n-  #26 = Utf8               java/lang/Object\n-  #27 = Utf8               ()V\n-  #28 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #8.#9          // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.name:Ljava/lang/String;\n+   #8 = Class              #10            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n+   #9 = NameAndType        #11:#12        // name:Ljava/lang/String;\n+  #10 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n+  #11 = Utf8               name\n+  #12 = Utf8               Ljava/lang/String;\n+  #13 = Utf8               (Ljava/lang/String;)V\n+  #14 = Utf8               Code\n+  #15 = Utf8               LineNumberTable\n+  #16 = Utf8               LocalVariableTable\n+  #17 = Utf8               this\n+  #18 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting;\n+  #19 = Utf8               SourceFile\n+  #20 = Utf8               DefaultStructuredPromptFactoryTest.java\n+  #21 = Utf8               RuntimeVisibleAnnotations\n+  #22 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n+  #23 = Utf8               value\n+  #24 = Utf8               Hello, my name is {{name}}\n+  #25 = Utf8               InnerClasses\n+  #26 = Class              #27            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  #27 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  #28 = Utf8               Greeting\n {\n   public final java.lang.String name;\n     descriptor: Ljava/lang/String;\n     flags: (0x0011) ACC_PUBLIC, ACC_FINAL\n \n   public dev.langchain4j.model.input.structured.DefaultStructuredPromptFactoryTest$Greeting(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: putfield      #2                  // Field name:Ljava/lang/String;\n+         6: putfield      #7                  // Field name:Ljava/lang/String;\n          9: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 4\n         line 15: 9\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting;\n             0      10     1  name   Ljava/lang/String;\n }\n SourceFile: \"DefaultStructuredPromptFactoryTest.java\"\n RuntimeVisibleAnnotations:\n-  0: #19(#20=[s#21])\n+  0: #22(#23=[s#24])\n     dev.langchain4j.model.input.structured.StructuredPrompt(\n       value=[\"Hello, my name is {{name}}\"]\n     )\n InnerClasses:\n-  static #13= #3 of #24;                  // Greeting=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  static #28= #8 of #26;                  // Greeting=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n"}]}, {"source1": "dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.class", "source2": "dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,145 +1,145 @@\n-  SHA-256 checksum ba55bb3177272e7df3cb56f9443cd59b901567741b31414dcf39530e16f8b9a2\n+  SHA-256 checksum 0af11cb6d347cc315a1282bcc78e866e03729daab6c34bd3bef2941d34091eee\n   Compiled from \"DefaultStructuredPromptFactoryTest.java\"\n class dev.langchain4j.model.input.structured.DefaultStructuredPromptFactoryTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #25                         // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-  super_class: #24                        // java/lang/Object\n+  this_class: #28                         // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 7, attributes: 3\n Constant pool:\n-    #1 = Methodref          #24.#54       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #55           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n-    #3 = Methodref          #2.#54        // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n-    #4 = Class              #56           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n-    #5 = String             #57           // Klaus\n-    #6 = Methodref          #4.#58        // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.\"<init>\":(Ljava/lang/String;)V\n-    #7 = Methodref          #2.#59        // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-    #8 = Methodref          #60.#61       // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-    #9 = Methodref          #25.#62       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #10 = String             #63           // Hello, my name is Klaus\n-   #11 = Methodref          #64.#65       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #12 = Class              #66           // java/lang/IllegalArgumentException\n-   #13 = Methodref          #25.#67       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #14 = InvokeDynamic      #0:#72        // #0:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #15 = Methodref          #73.#74       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #16 = String             #75           // structuredPrompt cannot be null\n-   #17 = Methodref          #76.#77       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #18 = InvokeDynamic      #1:#72        // #1:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #19 = String             #79           // java.lang.Object should be annotated with @StructuredPrompt to be used as a structured prompt\n-   #20 = InvokeDynamic      #2:#72        // #2:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #21 = String             #81           // Value for the variable \\'broken\\' is missing\n-   #22 = Class              #82           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n-   #23 = Methodref          #22.#58       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.\"<init>\":(Ljava/lang/String;)V\n-   #24 = Class              #83           // java/lang/Object\n-   #25 = Class              #84           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-   #26 = Class              #85           // org/assertj/core/api/WithAssertions\n-   #27 = Utf8               BrokenPrompt\n-   #28 = Utf8               InnerClasses\n-   #29 = Utf8               Greeting\n-   #30 = Utf8               <init>\n-   #31 = Utf8               ()V\n-   #32 = Utf8               Code\n-   #33 = Utf8               LineNumberTable\n-   #34 = Utf8               LocalVariableTable\n-   #35 = Utf8               this\n-   #36 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest;\n-   #37 = Utf8               test\n-   #38 = Utf8               factory\n-   #39 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n-   #40 = Utf8               p\n-   #41 = Utf8               Ldev/langchain4j/model/input/Prompt;\n-   #42 = Utf8               RuntimeVisibleAnnotations\n-   #43 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #44 = Utf8               test_bad_input\n-   #45 = Utf8               test_brokenPrompt\n-   #46 = Utf8               lambda$test_brokenPrompt$2\n-   #47 = Utf8               (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-   #48 = Utf8               Exceptions\n-   #49 = Class              #86           // java/lang/Throwable\n-   #50 = Utf8               lambda$test_bad_input$1\n-   #51 = Utf8               lambda$test_bad_input$0\n-   #52 = Utf8               SourceFile\n-   #53 = Utf8               DefaultStructuredPromptFactoryTest.java\n-   #54 = NameAndType        #30:#31       // \"<init>\":()V\n-   #55 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n-   #56 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n-   #57 = Utf8               Klaus\n-   #58 = NameAndType        #30:#87       // \"<init>\":(Ljava/lang/String;)V\n-   #59 = NameAndType        #88:#89       // toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-   #60 = Class              #90           // dev/langchain4j/model/input/Prompt\n-   #61 = NameAndType        #91:#92       // text:()Ljava/lang/String;\n-   #62 = NameAndType        #93:#94       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #63 = Utf8               Hello, my name is Klaus\n-   #64 = Class              #95           // org/assertj/core/api/AbstractStringAssert\n-   #65 = NameAndType        #96:#94       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #66 = Utf8               java/lang/IllegalArgumentException\n-   #67 = NameAndType        #97:#98       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #68 = Utf8               BootstrapMethods\n-   #69 = MethodHandle       6:#99         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #70 = MethodType         #31           //  ()V\n-   #71 = MethodHandle       6:#100        // REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-   #72 = NameAndType        #101:#104     // call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #73 = Class              #105          // org/assertj/core/api/ThrowableTypeAssert\n-   #74 = NameAndType        #106:#107     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #75 = Utf8               structuredPrompt cannot be null\n-   #76 = Class              #108          // org/assertj/core/api/ThrowableAssertAlternative\n-   #77 = NameAndType        #109:#110     // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #78 = MethodHandle       6:#111        // REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-   #79 = Utf8               java.lang.Object should be annotated with @StructuredPrompt to be used as a structured prompt\n-   #80 = MethodHandle       6:#112        // REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-   #81 = Utf8               Value for the variable \\'broken\\' is missing\n-   #82 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n-   #83 = Utf8               java/lang/Object\n-   #84 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-   #85 = Utf8               org/assertj/core/api/WithAssertions\n-   #86 = Utf8               java/lang/Throwable\n-   #87 = Utf8               (Ljava/lang/String;)V\n-   #88 = Utf8               toPrompt\n-   #89 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-   #90 = Utf8               dev/langchain4j/model/input/Prompt\n-   #91 = Utf8               text\n-   #92 = Utf8               ()Ljava/lang/String;\n-   #93 = Utf8               assertThat\n-   #94 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #95 = Utf8               org/assertj/core/api/AbstractStringAssert\n-   #96 = Utf8               isEqualTo\n-   #97 = Utf8               assertThatExceptionOfType\n-   #98 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #99 = Methodref          #113.#114     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #100 = Methodref          #25.#115      // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-  #101 = Utf8               call\n-  #102 = Class              #117          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #103 = Utf8               ThrowingCallable\n-  #104 = Utf8               (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #105 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #106 = Utf8               isThrownBy\n-  #107 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #108 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #109 = Utf8               withMessage\n-  #110 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #111 = Methodref          #25.#118      // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-  #112 = Methodref          #25.#119      // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-  #113 = Class              #120          // java/lang/invoke/LambdaMetafactory\n-  #114 = NameAndType        #121:#124     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #115 = NameAndType        #51:#47       // lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-  #116 = Class              #125          // org/assertj/core/api/ThrowableAssert\n-  #117 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #118 = NameAndType        #50:#47       // lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-  #119 = NameAndType        #46:#47       // lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-  #120 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #121 = Utf8               metafactory\n-  #122 = Class              #127          // java/lang/invoke/MethodHandles$Lookup\n-  #123 = Utf8               Lookup\n-  #124 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #125 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #126 = Class              #128          // java/lang/invoke/MethodHandles\n-  #127 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #128 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n+    #8 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n+   #10 = Class              #11           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n+   #11 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n+   #12 = String             #13           // Klaus\n+   #13 = Utf8               Klaus\n+   #14 = Methodref          #10.#15       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.\"<init>\":(Ljava/lang/String;)V\n+   #15 = NameAndType        #5:#16        // \"<init>\":(Ljava/lang/String;)V\n+   #16 = Utf8               (Ljava/lang/String;)V\n+   #17 = Methodref          #7.#18        // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #18 = NameAndType        #19:#20       // toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #19 = Utf8               toPrompt\n+   #20 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #21 = Methodref          #22.#23       // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+   #22 = Class              #24           // dev/langchain4j/model/input/Prompt\n+   #23 = NameAndType        #25:#26       // text:()Ljava/lang/String;\n+   #24 = Utf8               dev/langchain4j/model/input/Prompt\n+   #25 = Utf8               text\n+   #26 = Utf8               ()Ljava/lang/String;\n+   #27 = Methodref          #28.#29       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #28 = Class              #30           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+   #29 = NameAndType        #31:#32       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #30 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+   #31 = Utf8               assertThat\n+   #32 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #33 = String             #34           // Hello, my name is Klaus\n+   #34 = Utf8               Hello, my name is Klaus\n+   #35 = Methodref          #36.#37       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #36 = Class              #38           // org/assertj/core/api/AbstractStringAssert\n+   #37 = NameAndType        #39:#32       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #38 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #39 = Utf8               isEqualTo\n+   #40 = Class              #41           // java/lang/IllegalArgumentException\n+   #41 = Utf8               java/lang/IllegalArgumentException\n+   #42 = Methodref          #28.#43       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #43 = NameAndType        #44:#45       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #44 = Utf8               assertThatExceptionOfType\n+   #45 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #46 = InvokeDynamic      #0:#47        // #0:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #47 = NameAndType        #48:#49       // call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #48 = Utf8               call\n+   #49 = Utf8               (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #50 = Methodref          #51.#52       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #51 = Class              #53           // org/assertj/core/api/ThrowableTypeAssert\n+   #52 = NameAndType        #54:#55       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #53 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #54 = Utf8               isThrownBy\n+   #55 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #56 = String             #57           // structuredPrompt cannot be null\n+   #57 = Utf8               structuredPrompt cannot be null\n+   #58 = Methodref          #59.#60       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #59 = Class              #61           // org/assertj/core/api/ThrowableAssertAlternative\n+   #60 = NameAndType        #62:#63       // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #61 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #62 = Utf8               withMessage\n+   #63 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #64 = InvokeDynamic      #1:#47        // #1:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #65 = String             #66           // java.lang.Object should be annotated with @StructuredPrompt to be used as a structured prompt\n+   #66 = Utf8               java.lang.Object should be annotated with @StructuredPrompt to be used as a structured prompt\n+   #67 = InvokeDynamic      #2:#47        // #2:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #68 = String             #69           // Value for the variable \\'broken\\' is missing\n+   #69 = Utf8               Value for the variable \\'broken\\' is missing\n+   #70 = Class              #71           // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n+   #71 = Utf8               dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n+   #72 = Methodref          #70.#15       // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.\"<init>\":(Ljava/lang/String;)V\n+   #73 = Class              #74           // org/assertj/core/api/WithAssertions\n+   #74 = Utf8               org/assertj/core/api/WithAssertions\n+   #75 = Utf8               Code\n+   #76 = Utf8               LineNumberTable\n+   #77 = Utf8               LocalVariableTable\n+   #78 = Utf8               this\n+   #79 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest;\n+   #80 = Utf8               test\n+   #81 = Utf8               factory\n+   #82 = Utf8               Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n+   #83 = Utf8               p\n+   #84 = Utf8               Ldev/langchain4j/model/input/Prompt;\n+   #85 = Utf8               RuntimeVisibleAnnotations\n+   #86 = Utf8               Lorg/junit/jupiter/api/Test;\n+   #87 = Utf8               test_bad_input\n+   #88 = Utf8               test_brokenPrompt\n+   #89 = Utf8               lambda$test_brokenPrompt$2\n+   #90 = Utf8               (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+   #91 = Utf8               Exceptions\n+   #92 = Class              #93           // java/lang/Throwable\n+   #93 = Utf8               java/lang/Throwable\n+   #94 = Utf8               lambda$test_bad_input$1\n+   #95 = Utf8               lambda$test_bad_input$0\n+   #96 = Utf8               SourceFile\n+   #97 = Utf8               DefaultStructuredPromptFactoryTest.java\n+   #98 = Utf8               BootstrapMethods\n+   #99 = MethodHandle       6:#100        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #100 = Methodref          #101.#102     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #101 = Class              #103          // java/lang/invoke/LambdaMetafactory\n+  #102 = NameAndType        #104:#105     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #103 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #104 = Utf8               metafactory\n+  #105 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #106 = MethodType         #6            //  ()V\n+  #107 = MethodHandle       6:#108        // REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #108 = Methodref          #28.#109      // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #109 = NameAndType        #95:#90       // lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #110 = MethodHandle       6:#111        // REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #111 = Methodref          #28.#112      // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #112 = NameAndType        #94:#90       // lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #113 = MethodHandle       6:#114        // REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #114 = Methodref          #28.#115      // dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #115 = NameAndType        #89:#90       // lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+  #116 = Utf8               InnerClasses\n+  #117 = Utf8               Greeting\n+  #118 = Class              #119          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #119 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #120 = Class              #121          // org/assertj/core/api/ThrowableAssert\n+  #121 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #122 = Utf8               ThrowingCallable\n+  #123 = Utf8               BrokenPrompt\n+  #124 = Class              #125          // java/lang/invoke/MethodHandles$Lookup\n+  #125 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #126 = Class              #127          // java/lang/invoke/MethodHandles\n+  #127 = Utf8               java/lang/invoke/MethodHandles\n+  #128 = Utf8               Lookup\n {\n   dev.langchain4j.model.input.structured.DefaultStructuredPromptFactoryTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -152,73 +152,73 @@\n             0       5     0  this   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n+         0: new           #7                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: new           #4                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n+         9: new           #10                 // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting\n         12: dup\n-        13: ldc           #5                  // String Klaus\n-        15: invokespecial #6                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.\"<init>\":(Ljava/lang/String;)V\n-        18: invokevirtual #7                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+        13: ldc           #12                 // String Klaus\n+        15: invokespecial #14                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting.\"<init>\":(Ljava/lang/String;)V\n+        18: invokevirtual #17                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         21: astore_2\n         22: aload_0\n         23: aload_2\n-        24: invokevirtual #8                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        27: invokevirtual #9                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        30: ldc           #10                 // String Hello, my name is Klaus\n-        32: invokevirtual #11                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        24: invokevirtual #21                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        27: invokevirtual #27                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        30: ldc           #33                 // String Hello, my name is Klaus\n+        32: invokevirtual #35                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         35: pop\n         36: return\n       LineNumberTable:\n         line 30: 0\n         line 31: 8\n         line 32: 22\n         line 33: 36\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      37     0  this   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest;\n             8      29     1 factory   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n            22      15     2     p   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #43()\n+      0: #86()\n         org.junit.jupiter.api.Test\n \n   public void test_bad_input();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n+         0: new           #7                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n-         9: ldc           #12                 // class java/lang/IllegalArgumentException\n-        11: invokevirtual #13                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+         9: ldc           #40                 // class java/lang/IllegalArgumentException\n+        11: invokevirtual #42                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         14: aload_1\n-        15: invokedynamic #14,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        20: invokevirtual #15                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        23: ldc           #16                 // String structuredPrompt cannot be null\n-        25: invokevirtual #17                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        15: invokedynamic #46,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        20: invokevirtual #50                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        23: ldc           #56                 // String structuredPrompt cannot be null\n+        25: invokevirtual #58                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         28: pop\n         29: aload_0\n-        30: ldc           #12                 // class java/lang/IllegalArgumentException\n-        32: invokevirtual #13                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        30: ldc           #40                 // class java/lang/IllegalArgumentException\n+        32: invokevirtual #42                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         35: aload_1\n-        36: invokedynamic #18,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        41: invokevirtual #15                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        44: ldc           #19                 // String java.lang.Object should be annotated with @StructuredPrompt to be used as a structured prompt\n-        46: invokevirtual #17                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        36: invokedynamic #64,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        41: invokevirtual #50                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        44: ldc           #65                 // String java.lang.Object should be annotated with @StructuredPrompt to be used as a structured prompt\n+        46: invokevirtual #58                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         49: pop\n         50: return\n       LineNumberTable:\n         line 37: 0\n         line 39: 8\n         line 40: 20\n         line 41: 25\n@@ -227,61 +227,61 @@\n         line 45: 46\n         line 48: 50\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      51     0  this   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest;\n             8      43     1 factory   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n     RuntimeVisibleAnnotations:\n-      0: #43()\n+      0: #86()\n         org.junit.jupiter.api.Test\n \n   public void test_brokenPrompt();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n+         0: new           #7                  // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n-         9: ldc           #12                 // class java/lang/IllegalArgumentException\n-        11: invokevirtual #13                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+         9: ldc           #40                 // class java/lang/IllegalArgumentException\n+        11: invokevirtual #42                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         14: aload_1\n-        15: invokedynamic #20,  0             // InvokeDynamic #2:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        20: invokevirtual #15                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        23: ldc           #21                 // String Value for the variable \\'broken\\' is missing\n-        25: invokevirtual #17                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        15: invokedynamic #67,  0             // InvokeDynamic #2:call:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        20: invokevirtual #50                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        23: ldc           #68                 // String Value for the variable \\'broken\\' is missing\n+        25: invokevirtual #58                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         28: pop\n         29: return\n       LineNumberTable:\n         line 52: 0\n         line 53: 8\n         line 54: 20\n         line 55: 25\n         line 56: 29\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      30     0  this   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest;\n             8      22     1 factory   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n     RuntimeVisibleAnnotations:\n-      0: #43()\n+      0: #86()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_brokenPrompt$2(dev.langchain4j.model.input.structured.DefaultStructuredPromptFactory) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=1, args_size=1\n          0: aload_0\n-         1: new           #22                 // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n+         1: new           #70                 // class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt\n          4: dup\n-         5: ldc           #5                  // String Klaus\n-         7: invokespecial #23                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.\"<init>\":(Ljava/lang/String;)V\n-        10: invokevirtual #7                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+         5: ldc           #12                 // String Klaus\n+         7: invokespecial #72                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt.\"<init>\":(Ljava/lang/String;)V\n+        10: invokevirtual #17                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         13: pop\n         14: return\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      15     0 factory   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n@@ -290,18 +290,18 @@\n \n   private static void lambda$test_bad_input$1(dev.langchain4j.model.input.structured.DefaultStructuredPromptFactory) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: new           #24                 // class java/lang/Object\n+         1: new           #2                  // class java/lang/Object\n          4: dup\n          5: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-         8: invokevirtual #7                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+         8: invokevirtual #17                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         11: pop\n         12: return\n       LineNumberTable:\n         line 44: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0 factory   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n@@ -311,40 +311,40 @@\n   private static void lambda$test_bad_input$0(dev.langchain4j.model.input.structured.DefaultStructuredPromptFactory) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n          1: aconst_null\n-         2: invokevirtual #7                  // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+         2: invokevirtual #17                 // Method dev/langchain4j/model/input/structured/DefaultStructuredPromptFactory.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n          5: pop\n          6: return\n       LineNumberTable:\n         line 40: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0 factory   Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"DefaultStructuredPromptFactoryTest.java\"\n-InnerClasses:\n-  static #27= #22 of #25;                 // BrokenPrompt=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-  static #29= #4 of #25;                  // Greeting=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n-  public static #103= #102 of #116;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #123= #122 of #126; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #69 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #99 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #70 ()V\n-      #71 REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-      #70 ()V\n-  1: #69 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #106 ()V\n+      #107 REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$0:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+      #106 ()V\n+  1: #99 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #70 ()V\n-      #78 REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-      #70 ()V\n-  2: #69 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #106 ()V\n+      #110 REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_bad_input$1:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+      #106 ()V\n+  2: #99 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #70 ()V\n-      #80 REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n-      #70 ()V\n+      #106 ()V\n+      #113 REF_invokeStatic dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest.lambda$test_brokenPrompt$2:(Ldev/langchain4j/model/input/structured/DefaultStructuredPromptFactory;)V\n+      #106 ()V\n+InnerClasses:\n+  static #117= #10 of #28;                // Greeting=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$Greeting of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  public static #122= #118 of #120;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  static #123= #70 of #28;                // BrokenPrompt=class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest$BrokenPrompt of class dev/langchain4j/model/input/structured/DefaultStructuredPromptFactoryTest\n+  public static final #128= #124 of #126; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.class", "source2": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,60 +1,60 @@\n-  SHA-256 checksum 3643a8e33f63e6c00f311889a28fff8c362c54917cf9d83dfbc921f7e83af8e2\n+  SHA-256 checksum 71976060565033df1234d607964404baac292e2f907bf2a712e13de24bb379e6\n   Compiled from \"StructuredPromptProcessorTest.java\"\n class dev.langchain4j.model.input.structured.StructuredPromptProcessorTest$Greeting\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n-  super_class: #4                         // java/lang/Object\n+  this_class: #2                          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n+  super_class: #8                         // java/lang/Object\n   interfaces: 0, fields: 1, methods: 2, attributes: 3\n Constant pool:\n-   #1 = Fieldref           #3.#26         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.name:Ljava/lang/String;\n-   #2 = Methodref          #4.#27         // java/lang/Object.\"<init>\":()V\n-   #3 = Class              #29            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n-   #4 = Class              #30            // java/lang/Object\n+   #1 = Fieldref           #2.#3          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.name:Ljava/lang/String;\n+   #2 = Class              #4             // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n+   #3 = NameAndType        #5:#6          // name:Ljava/lang/String;\n+   #4 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n    #5 = Utf8               name\n    #6 = Utf8               Ljava/lang/String;\n-   #7 = Utf8               <init>\n-   #8 = Utf8               ()V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               Greeting\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n-  #16 = Utf8               access$002\n-  #17 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n-  #18 = Utf8               x0\n-  #19 = Utf8               x1\n-  #20 = Utf8               SourceFile\n-  #21 = Utf8               StructuredPromptProcessorTest.java\n-  #22 = Utf8               RuntimeVisibleAnnotations\n-  #23 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n-  #24 = Utf8               value\n-  #25 = Utf8               Hello, my name is {{name}}\n-  #26 = NameAndType        #5:#6          // name:Ljava/lang/String;\n-  #27 = NameAndType        #7:#8          // \"<init>\":()V\n-  #28 = Class              #31            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-  #29 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n-  #30 = Utf8               java/lang/Object\n-  #31 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+   #7 = Methodref          #8.#9          // java/lang/Object.\"<init>\":()V\n+   #8 = Class              #10            // java/lang/Object\n+   #9 = NameAndType        #11:#12        // \"<init>\":()V\n+  #10 = Utf8               java/lang/Object\n+  #11 = Utf8               <init>\n+  #12 = Utf8               ()V\n+  #13 = Utf8               Code\n+  #14 = Utf8               LineNumberTable\n+  #15 = Utf8               LocalVariableTable\n+  #16 = Utf8               this\n+  #17 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n+  #18 = Utf8               access$002\n+  #19 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n+  #20 = Utf8               x0\n+  #21 = Utf8               x1\n+  #22 = Utf8               SourceFile\n+  #23 = Utf8               StructuredPromptProcessorTest.java\n+  #24 = Utf8               RuntimeVisibleAnnotations\n+  #25 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n+  #26 = Utf8               value\n+  #27 = Utf8               Hello, my name is {{name}}\n+  #28 = Utf8               InnerClasses\n+  #29 = Class              #30            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #30 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #31 = Utf8               Greeting\n {\n   private java.lang.String name;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   dev.langchain4j.model.input.structured.StructuredPromptProcessorTest$Greeting();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokespecial #2                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #7                  // Method java/lang/Object.\"<init>\":()V\n          4: return\n       LineNumberTable:\n         line 14: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n \n@@ -73,13 +73,13 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n             0       7     1    x1   Ljava/lang/String;\n }\n SourceFile: \"StructuredPromptProcessorTest.java\"\n RuntimeVisibleAnnotations:\n-  0: #23(#24=[s#25])\n+  0: #25(#26=[s#27])\n     dev.langchain4j.model.input.structured.StructuredPrompt(\n       value=[\"Hello, my name is {{name}}\"]\n     )\n InnerClasses:\n-  static #13= #3 of #28;                  // Greeting=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  static #31= #2 of #29;                  // Greeting=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n"}]}, {"source1": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.class", "source2": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,84 +1,84 @@\n-  SHA-256 checksum ebb6abd1b5471cec952f4dfe9b03a48ad782174a361ff9e9709c33865cf177a3\n+  SHA-256 checksum cf2b9c2ec3ddaee9e99a00b5fd9d76439dba30567e766a849eb4146cd582e7e8\n   Compiled from \"StructuredPromptProcessorTest.java\"\n class dev.langchain4j.model.input.structured.StructuredPromptProcessorTest$SuggestRecipes\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #5                          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n-  super_class: #6                         // java/lang/Object\n+  this_class: #2                          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n+  super_class: #16                        // java/lang/Object\n   interfaces: 0, fields: 3, methods: 4, attributes: 3\n Constant pool:\n-   #1 = Fieldref           #5.#39         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.ingredients:Ljava/util/List;\n-   #2 = Fieldref           #5.#40         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.maxPreparationTime:I\n-   #3 = Fieldref           #5.#41         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.dish:Ljava/lang/String;\n-   #4 = Methodref          #6.#42         // java/lang/Object.\"<init>\":()V\n-   #5 = Class              #44            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n-   #6 = Class              #45            // java/lang/Object\n-   #7 = Utf8               dish\n-   #8 = Utf8               Ljava/lang/String;\n+   #1 = Fieldref           #2.#3          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.ingredients:Ljava/util/List;\n+   #2 = Class              #4             // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n+   #3 = NameAndType        #5:#6          // ingredients:Ljava/util/List;\n+   #4 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n+   #5 = Utf8               ingredients\n+   #6 = Utf8               Ljava/util/List;\n+   #7 = Fieldref           #2.#8          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.maxPreparationTime:I\n+   #8 = NameAndType        #9:#10         // maxPreparationTime:I\n    #9 = Utf8               maxPreparationTime\n   #10 = Utf8               I\n-  #11 = Utf8               ingredients\n-  #12 = Utf8               Ljava/util/List;\n-  #13 = Utf8               Signature\n-  #14 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-  #15 = Utf8               <init>\n-  #16 = Utf8               ()V\n-  #17 = Utf8               Code\n-  #18 = Utf8               LineNumberTable\n-  #19 = Utf8               LocalVariableTable\n-  #20 = Utf8               this\n-  #21 = Utf8               SuggestRecipes\n-  #22 = Utf8               InnerClasses\n-  #23 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n-  #24 = Utf8               access$102\n-  #25 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n-  #26 = Utf8               x0\n-  #27 = Utf8               x1\n-  #28 = Utf8               access$202\n-  #29 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n-  #30 = Utf8               access$302\n-  #31 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n-  #32 = Utf8               SourceFile\n-  #33 = Utf8               StructuredPromptProcessorTest.java\n-  #34 = Utf8               RuntimeVisibleAnnotations\n-  #35 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n-  #36 = Utf8               value\n-  #37 = Utf8               Suggest tasty {{dish}} recipes that can be prepared in {{maxPreparationTime}} minutes.\n-  #38 = Utf8               I have only {{ingredients}} in my fridge.\n-  #39 = NameAndType        #11:#12        // ingredients:Ljava/util/List;\n-  #40 = NameAndType        #9:#10         // maxPreparationTime:I\n-  #41 = NameAndType        #7:#8          // dish:Ljava/lang/String;\n-  #42 = NameAndType        #15:#16        // \"<init>\":()V\n-  #43 = Class              #46            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-  #44 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n-  #45 = Utf8               java/lang/Object\n-  #46 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #11 = Fieldref           #2.#12         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.dish:Ljava/lang/String;\n+  #12 = NameAndType        #13:#14        // dish:Ljava/lang/String;\n+  #13 = Utf8               dish\n+  #14 = Utf8               Ljava/lang/String;\n+  #15 = Methodref          #16.#17        // java/lang/Object.\"<init>\":()V\n+  #16 = Class              #18            // java/lang/Object\n+  #17 = NameAndType        #19:#20        // \"<init>\":()V\n+  #18 = Utf8               java/lang/Object\n+  #19 = Utf8               <init>\n+  #20 = Utf8               ()V\n+  #21 = Utf8               Signature\n+  #22 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+  #23 = Utf8               Code\n+  #24 = Utf8               LineNumberTable\n+  #25 = Utf8               LocalVariableTable\n+  #26 = Utf8               this\n+  #27 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n+  #28 = Utf8               access$102\n+  #29 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n+  #30 = Utf8               x0\n+  #31 = Utf8               x1\n+  #32 = Utf8               access$202\n+  #33 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n+  #34 = Utf8               access$302\n+  #35 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n+  #36 = Utf8               SourceFile\n+  #37 = Utf8               StructuredPromptProcessorTest.java\n+  #38 = Utf8               RuntimeVisibleAnnotations\n+  #39 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n+  #40 = Utf8               value\n+  #41 = Utf8               Suggest tasty {{dish}} recipes that can be prepared in {{maxPreparationTime}} minutes.\n+  #42 = Utf8               I have only {{ingredients}} in my fridge.\n+  #43 = Utf8               InnerClasses\n+  #44 = Class              #45            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #45 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #46 = Utf8               SuggestRecipes\n {\n   private java.lang.String dish;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   private int maxPreparationTime;\n     descriptor: I\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.util.List<java.lang.String> ingredients;\n     descriptor: Ljava/util/List;\n     flags: (0x0002) ACC_PRIVATE\n-    Signature: #14                          // Ljava/util/List<Ljava/lang/String;>;\n+    Signature: #22                          // Ljava/util/List<Ljava/lang/String;>;\n \n   dev.langchain4j.model.input.structured.StructuredPromptProcessorTest$SuggestRecipes();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokespecial #4                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #15                 // Method java/lang/Object.\"<init>\":()V\n          4: return\n       LineNumberTable:\n         line 35: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n \n@@ -86,15 +86,15 @@\n     descriptor: (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n          2: dup_x1\n-         3: putfield      #3                  // Field dish:Ljava/lang/String;\n+         3: putfield      #11                 // Field dish:Ljava/lang/String;\n          6: areturn\n       LineNumberTable:\n         line 35: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n             0       7     1    x1   Ljava/lang/String;\n@@ -103,15 +103,15 @@\n     descriptor: (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: iload_1\n          2: dup_x1\n-         3: putfield      #2                  // Field maxPreparationTime:I\n+         3: putfield      #7                  // Field maxPreparationTime:I\n          6: ireturn\n       LineNumberTable:\n         line 35: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n             0       7     1    x1   I\n@@ -131,13 +131,13 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n             0       7     1    x1   Ljava/util/List;\n }\n SourceFile: \"StructuredPromptProcessorTest.java\"\n RuntimeVisibleAnnotations:\n-  0: #35(#36=[s#37,s#38])\n+  0: #39(#40=[s#41,s#42])\n     dev.langchain4j.model.input.structured.StructuredPrompt(\n       value=[\"Suggest tasty {{dish}} recipes that can be prepared in {{maxPreparationTime}} minutes.\",\"I have only {{ingredients}} in my fridge.\"]\n     )\n InnerClasses:\n-  static #21= #5 of #43;                  // SuggestRecipes=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  static #46= #2 of #44;                  // SuggestRecipes=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n"}]}, {"source1": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.class", "source2": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,72 +1,72 @@\n-  SHA-256 checksum 9cf1da148e804c9d6b72d81a2c1807a4e1f40a643f10dddbe5853cdca103366d\n+  SHA-256 checksum db78917af3f10c456e4cfc5939623125736c3d4aac2bf0bb427eb72197d8d83d\n   Compiled from \"StructuredPromptProcessorTest.java\"\n class dev.langchain4j.model.input.structured.StructuredPromptProcessorTest$VariousNumbers\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #7                          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n-  super_class: #8                         // java/lang/Object\n+  this_class: #2                          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n+  super_class: #24                        // java/lang/Object\n   interfaces: 0, fields: 5, methods: 6, attributes: 3\n Constant pool:\n-   #1 = Fieldref           #7.#46         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nLong:J\n-   #2 = Fieldref           #7.#47         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nShort:S\n-   #3 = Fieldref           #7.#48         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nInt:I\n-   #4 = Fieldref           #7.#49         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nFloat:F\n-   #5 = Fieldref           #7.#50         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nDouble:D\n-   #6 = Methodref          #8.#51         // java/lang/Object.\"<init>\":()V\n-   #7 = Class              #53            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n-   #8 = Class              #54            // java/lang/Object\n-   #9 = Utf8               nDouble\n-  #10 = Utf8               D\n-  #11 = Utf8               nFloat\n-  #12 = Utf8               F\n+   #1 = Fieldref           #2.#3          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nLong:J\n+   #2 = Class              #4             // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n+   #3 = NameAndType        #5:#6          // nLong:J\n+   #4 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n+   #5 = Utf8               nLong\n+   #6 = Utf8               J\n+   #7 = Fieldref           #2.#8          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nShort:S\n+   #8 = NameAndType        #9:#10         // nShort:S\n+   #9 = Utf8               nShort\n+  #10 = Utf8               S\n+  #11 = Fieldref           #2.#12         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nInt:I\n+  #12 = NameAndType        #13:#14        // nInt:I\n   #13 = Utf8               nInt\n   #14 = Utf8               I\n-  #15 = Utf8               nShort\n-  #16 = Utf8               S\n-  #17 = Utf8               nLong\n-  #18 = Utf8               J\n-  #19 = Utf8               <init>\n-  #20 = Utf8               ()V\n-  #21 = Utf8               Code\n-  #22 = Utf8               LineNumberTable\n-  #23 = Utf8               LocalVariableTable\n-  #24 = Utf8               this\n-  #25 = Utf8               VariousNumbers\n-  #26 = Utf8               InnerClasses\n-  #27 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n-  #28 = Utf8               access$402\n-  #29 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n-  #30 = Utf8               x0\n-  #31 = Utf8               x1\n-  #32 = Utf8               access$502\n-  #33 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n-  #34 = Utf8               access$602\n-  #35 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n-  #36 = Utf8               access$702\n-  #37 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n-  #38 = Utf8               access$802\n-  #39 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n-  #40 = Utf8               SourceFile\n-  #41 = Utf8               StructuredPromptProcessorTest.java\n-  #42 = Utf8               RuntimeVisibleAnnotations\n-  #43 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n-  #44 = Utf8               value\n-  #45 = Utf8               Example of numbers with floating point: {{nDouble}}, {{nFloat}} and whole numbers: {{nInt}}, {{nShort}}, {{nLong}}\n-  #46 = NameAndType        #17:#18        // nLong:J\n-  #47 = NameAndType        #15:#16        // nShort:S\n-  #48 = NameAndType        #13:#14        // nInt:I\n-  #49 = NameAndType        #11:#12        // nFloat:F\n-  #50 = NameAndType        #9:#10         // nDouble:D\n-  #51 = NameAndType        #19:#20        // \"<init>\":()V\n-  #52 = Class              #55            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-  #53 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n-  #54 = Utf8               java/lang/Object\n-  #55 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #15 = Fieldref           #2.#16         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nFloat:F\n+  #16 = NameAndType        #17:#18        // nFloat:F\n+  #17 = Utf8               nFloat\n+  #18 = Utf8               F\n+  #19 = Fieldref           #2.#20         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.nDouble:D\n+  #20 = NameAndType        #21:#22        // nDouble:D\n+  #21 = Utf8               nDouble\n+  #22 = Utf8               D\n+  #23 = Methodref          #24.#25        // java/lang/Object.\"<init>\":()V\n+  #24 = Class              #26            // java/lang/Object\n+  #25 = NameAndType        #27:#28        // \"<init>\":()V\n+  #26 = Utf8               java/lang/Object\n+  #27 = Utf8               <init>\n+  #28 = Utf8               ()V\n+  #29 = Utf8               Code\n+  #30 = Utf8               LineNumberTable\n+  #31 = Utf8               LocalVariableTable\n+  #32 = Utf8               this\n+  #33 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n+  #34 = Utf8               access$402\n+  #35 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n+  #36 = Utf8               x0\n+  #37 = Utf8               x1\n+  #38 = Utf8               access$502\n+  #39 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n+  #40 = Utf8               access$602\n+  #41 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n+  #42 = Utf8               access$702\n+  #43 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n+  #44 = Utf8               access$802\n+  #45 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n+  #46 = Utf8               SourceFile\n+  #47 = Utf8               StructuredPromptProcessorTest.java\n+  #48 = Utf8               RuntimeVisibleAnnotations\n+  #49 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPrompt;\n+  #50 = Utf8               value\n+  #51 = Utf8               Example of numbers with floating point: {{nDouble}}, {{nFloat}} and whole numbers: {{nInt}}, {{nShort}}, {{nLong}}\n+  #52 = Utf8               InnerClasses\n+  #53 = Class              #54            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #54 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #55 = Utf8               VariousNumbers\n {\n   private double nDouble;\n     descriptor: D\n     flags: (0x0002) ACC_PRIVATE\n \n   private float nFloat;\n     descriptor: F\n@@ -86,15 +86,15 @@\n \n   dev.langchain4j.model.input.structured.StructuredPromptProcessorTest$VariousNumbers();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokespecial #6                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #23                 // Method java/lang/Object.\"<init>\":()V\n          4: return\n       LineNumberTable:\n         line 60: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n \n@@ -102,15 +102,15 @@\n     descriptor: (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=5, locals=3, args_size=2\n          0: aload_0\n          1: dload_1\n          2: dup2_x1\n-         3: putfield      #5                  // Field nDouble:D\n+         3: putfield      #19                 // Field nDouble:D\n          6: dreturn\n       LineNumberTable:\n         line 60: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n             0       7     1    x1   D\n@@ -119,15 +119,15 @@\n     descriptor: (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: fload_1\n          2: dup_x1\n-         3: putfield      #4                  // Field nFloat:F\n+         3: putfield      #15                 // Field nFloat:F\n          6: freturn\n       LineNumberTable:\n         line 60: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n             0       7     1    x1   F\n@@ -136,15 +136,15 @@\n     descriptor: (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: iload_1\n          2: dup_x1\n-         3: putfield      #3                  // Field nInt:I\n+         3: putfield      #11                 // Field nInt:I\n          6: ireturn\n       LineNumberTable:\n         line 60: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n             0       7     1    x1   I\n@@ -153,15 +153,15 @@\n     descriptor: (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: iload_1\n          2: dup_x1\n-         3: putfield      #2                  // Field nShort:S\n+         3: putfield      #7                  // Field nShort:S\n          6: ireturn\n       LineNumberTable:\n         line 60: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n             0       7     1    x1   S\n@@ -181,13 +181,13 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0    x0   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n             0       7     1    x1   J\n }\n SourceFile: \"StructuredPromptProcessorTest.java\"\n RuntimeVisibleAnnotations:\n-  0: #43(#44=[s#45])\n+  0: #49(#50=[s#51])\n     dev.langchain4j.model.input.structured.StructuredPrompt(\n       value=[\"Example of numbers with floating point: {{nDouble}}, {{nFloat}} and whole numbers: {{nInt}}, {{nShort}}, {{nLong}}\"]\n     )\n InnerClasses:\n-  static #25= #7 of #52;                  // VariousNumbers=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  static #55= #2 of #53;                  // VariousNumbers=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n"}]}, {"source1": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest.class", "source2": "dev/langchain4j/model/input/structured/StructuredPromptProcessorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,142 +1,142 @@\n-  SHA-256 checksum d203107563053ca8df7cdb758ae329c038a9c9708cb9c5ebc8fe64a3d5b3780a\n+  SHA-256 checksum 5824c8dc32ebf8f81a68e6000d27358f427d33cabec79db6981b73f873cf056e\n   Compiled from \"StructuredPromptProcessorTest.java\"\n class dev.langchain4j.model.input.structured.StructuredPromptProcessorTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #35                         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-  super_class: #36                        // java/lang/Object\n+  this_class: #103                        // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-    #1 = Methodref          #36.#62       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #63           // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n-    #3 = Methodref          #2.#62        // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.\"<init>\":()V\n-    #4 = String             #64           // Klaus\n-    #5 = Methodref          #2.#65        // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.access$002:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n-    #6 = Methodref          #66.#67       // dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-    #7 = Methodref          #68.#69       // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-    #8 = Methodref          #70.#71       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #9 = String             #72           // Hello, my name is Klaus\n-   #10 = Methodref          #73.#74       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #11 = Class              #75           // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n-   #12 = Methodref          #11.#62       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.\"<init>\":()V\n-   #13 = String             #76           // salad\n-   #14 = Methodref          #11.#77       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$102:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n-   #15 = Methodref          #11.#78       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$202:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n-   #16 = Class              #79           // java/lang/String\n-   #17 = String             #80           // Tomato\n-   #18 = String             #81           // Cucumber\n-   #19 = String             #82           // Onion\n-   #20 = Methodref          #83.#84       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #21 = Methodref          #11.#85       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$302:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n-   #22 = String             #86           // Suggest tasty salad recipes that can be prepared in 5 minutes.\\nI have only [Tomato, Cucumber, Onion] in my fridge.\n-   #23 = Class              #87           // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n-   #24 = Methodref          #23.#62       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.\"<init>\":()V\n-   #25 = Double             17.15d\n-   #27 = Methodref          #23.#88       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$402:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n-   #28 = Methodref          #23.#89       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$502:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n-   #29 = Methodref          #23.#90       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$602:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n-   #30 = Methodref          #23.#91       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$702:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n-   #31 = Long               12l\n-   #33 = Methodref          #23.#92       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$802:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n-   #34 = String             #93           // Example of numbers with floating point: 17.15, 1.0 and whole numbers: 2, 10, 12\n-   #35 = Class              #94           // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-   #36 = Class              #95           // java/lang/Object\n-   #37 = Utf8               VariousNumbers\n-   #38 = Utf8               InnerClasses\n-   #39 = Utf8               SuggestRecipes\n-   #40 = Utf8               Greeting\n-   #41 = Utf8               <init>\n-   #42 = Utf8               ()V\n-   #43 = Utf8               Code\n-   #44 = Utf8               LineNumberTable\n-   #45 = Utf8               LocalVariableTable\n-   #46 = Utf8               this\n-   #47 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest;\n-   #48 = Utf8               test_prompt_with_single_variable\n-   #49 = Utf8               structuredPrompt\n-   #50 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n-   #51 = Utf8               prompt\n-   #52 = Utf8               Ldev/langchain4j/model/input/Prompt;\n-   #53 = Utf8               RuntimeVisibleAnnotations\n-   #54 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #55 = Utf8               test_prompt_with_multiple_variables\n-   #56 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n-   #57 = Utf8               test_prompt_with_various_number_types\n-   #58 = Utf8               numbers\n-   #59 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n-   #60 = Utf8               SourceFile\n-   #61 = Utf8               StructuredPromptProcessorTest.java\n-   #62 = NameAndType        #41:#42       // \"<init>\":()V\n-   #63 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n-   #64 = Utf8               Klaus\n-   #65 = NameAndType        #96:#97       // access$002:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n-   #66 = Class              #98           // dev/langchain4j/model/input/structured/StructuredPromptProcessor\n-   #67 = NameAndType        #99:#100      // toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-   #68 = Class              #101          // dev/langchain4j/model/input/Prompt\n-   #69 = NameAndType        #102:#103     // text:()Ljava/lang/String;\n-   #70 = Class              #104          // org/assertj/core/api/Assertions\n-   #71 = NameAndType        #105:#106     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #72 = Utf8               Hello, my name is Klaus\n-   #73 = Class              #107          // org/assertj/core/api/AbstractStringAssert\n-   #74 = NameAndType        #108:#106     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #75 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n-   #76 = Utf8               salad\n-   #77 = NameAndType        #109:#110     // access$102:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n-   #78 = NameAndType        #111:#112     // access$202:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n-   #79 = Utf8               java/lang/String\n-   #80 = Utf8               Tomato\n-   #81 = Utf8               Cucumber\n-   #82 = Utf8               Onion\n-   #83 = Class              #113          // java/util/Arrays\n-   #84 = NameAndType        #114:#115     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #85 = NameAndType        #116:#117     // access$302:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n-   #86 = Utf8               Suggest tasty salad recipes that can be prepared in 5 minutes.\\nI have only [Tomato, Cucumber, Onion] in my fridge.\n-   #87 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n-   #88 = NameAndType        #118:#119     // access$402:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n-   #89 = NameAndType        #120:#121     // access$502:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n-   #90 = NameAndType        #122:#123     // access$602:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n-   #91 = NameAndType        #124:#125     // access$702:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n-   #92 = NameAndType        #126:#127     // access$802:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n-   #93 = Utf8               Example of numbers with floating point: 17.15, 1.0 and whole numbers: 2, 10, 12\n-   #94 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-   #95 = Utf8               java/lang/Object\n-   #96 = Utf8               access$002\n-   #97 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n-   #98 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessor\n-   #99 = Utf8               toPrompt\n-  #100 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n-  #101 = Utf8               dev/langchain4j/model/input/Prompt\n-  #102 = Utf8               text\n-  #103 = Utf8               ()Ljava/lang/String;\n-  #104 = Utf8               org/assertj/core/api/Assertions\n-  #105 = Utf8               assertThat\n-  #106 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #107 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #108 = Utf8               isEqualTo\n-  #109 = Utf8               access$102\n-  #110 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n-  #111 = Utf8               access$202\n-  #112 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n-  #113 = Utf8               java/util/Arrays\n-  #114 = Utf8               asList\n-  #115 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #116 = Utf8               access$302\n-  #117 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n-  #118 = Utf8               access$402\n-  #119 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n-  #120 = Utf8               access$502\n-  #121 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n-  #122 = Utf8               access$602\n-  #123 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n-  #124 = Utf8               access$702\n-  #125 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n-  #126 = Utf8               access$802\n-  #127 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n+    #8 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.\"<init>\":()V\n+   #10 = String             #11           // Klaus\n+   #11 = Utf8               Klaus\n+   #12 = Methodref          #7.#13        // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.access$002:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n+   #13 = NameAndType        #14:#15       // access$002:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n+   #14 = Utf8               access$002\n+   #15 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n+   #16 = Methodref          #17.#18       // dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #17 = Class              #19           // dev/langchain4j/model/input/structured/StructuredPromptProcessor\n+   #18 = NameAndType        #20:#21       // toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #19 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessor\n+   #20 = Utf8               toPrompt\n+   #21 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+   #22 = Methodref          #23.#24       // dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+   #23 = Class              #25           // dev/langchain4j/model/input/Prompt\n+   #24 = NameAndType        #26:#27       // text:()Ljava/lang/String;\n+   #25 = Utf8               dev/langchain4j/model/input/Prompt\n+   #26 = Utf8               text\n+   #27 = Utf8               ()Ljava/lang/String;\n+   #28 = Methodref          #29.#30       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #29 = Class              #31           // org/assertj/core/api/Assertions\n+   #30 = NameAndType        #32:#33       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #31 = Utf8               org/assertj/core/api/Assertions\n+   #32 = Utf8               assertThat\n+   #33 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #34 = String             #35           // Hello, my name is Klaus\n+   #35 = Utf8               Hello, my name is Klaus\n+   #36 = Methodref          #37.#38       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #37 = Class              #39           // org/assertj/core/api/AbstractStringAssert\n+   #38 = NameAndType        #40:#33       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #39 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #40 = Utf8               isEqualTo\n+   #41 = Class              #42           // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n+   #42 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n+   #43 = Methodref          #41.#3        // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.\"<init>\":()V\n+   #44 = String             #45           // salad\n+   #45 = Utf8               salad\n+   #46 = Methodref          #41.#47       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$102:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n+   #47 = NameAndType        #48:#49       // access$102:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n+   #48 = Utf8               access$102\n+   #49 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n+   #50 = Methodref          #41.#51       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$202:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n+   #51 = NameAndType        #52:#53       // access$202:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n+   #52 = Utf8               access$202\n+   #53 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n+   #54 = Class              #55           // java/lang/String\n+   #55 = Utf8               java/lang/String\n+   #56 = String             #57           // Tomato\n+   #57 = Utf8               Tomato\n+   #58 = String             #59           // Cucumber\n+   #59 = Utf8               Cucumber\n+   #60 = String             #61           // Onion\n+   #61 = Utf8               Onion\n+   #62 = Methodref          #63.#64       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #63 = Class              #65           // java/util/Arrays\n+   #64 = NameAndType        #66:#67       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #65 = Utf8               java/util/Arrays\n+   #66 = Utf8               asList\n+   #67 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #68 = Methodref          #41.#69       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$302:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n+   #69 = NameAndType        #70:#71       // access$302:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n+   #70 = Utf8               access$302\n+   #71 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n+   #72 = String             #73           // Suggest tasty salad recipes that can be prepared in 5 minutes.\\nI have only [Tomato, Cucumber, Onion] in my fridge.\n+   #73 = Utf8               Suggest tasty salad recipes that can be prepared in 5 minutes.\\nI have only [Tomato, Cucumber, Onion] in my fridge.\n+   #74 = Class              #75           // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n+   #75 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n+   #76 = Methodref          #74.#3        // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.\"<init>\":()V\n+   #77 = Double             17.15d\n+   #79 = Methodref          #74.#80       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$402:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n+   #80 = NameAndType        #81:#82       // access$402:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n+   #81 = Utf8               access$402\n+   #82 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n+   #83 = Methodref          #74.#84       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$502:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n+   #84 = NameAndType        #85:#86       // access$502:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n+   #85 = Utf8               access$502\n+   #86 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n+   #87 = Methodref          #74.#88       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$602:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n+   #88 = NameAndType        #89:#90       // access$602:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n+   #89 = Utf8               access$602\n+   #90 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n+   #91 = Methodref          #74.#92       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$702:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n+   #92 = NameAndType        #93:#94       // access$702:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n+   #93 = Utf8               access$702\n+   #94 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n+   #95 = Long               12l\n+   #97 = Methodref          #74.#98       // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$802:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n+   #98 = NameAndType        #99:#100      // access$802:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n+   #99 = Utf8               access$802\n+  #100 = Utf8               (Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n+  #101 = String             #102          // Example of numbers with floating point: 17.15, 1.0 and whole numbers: 2, 10, 12\n+  #102 = Utf8               Example of numbers with floating point: 17.15, 1.0 and whole numbers: 2, 10, 12\n+  #103 = Class              #104          // dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #104 = Utf8               dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  #105 = Utf8               Code\n+  #106 = Utf8               LineNumberTable\n+  #107 = Utf8               LocalVariableTable\n+  #108 = Utf8               this\n+  #109 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest;\n+  #110 = Utf8               test_prompt_with_single_variable\n+  #111 = Utf8               structuredPrompt\n+  #112 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n+  #113 = Utf8               prompt\n+  #114 = Utf8               Ldev/langchain4j/model/input/Prompt;\n+  #115 = Utf8               RuntimeVisibleAnnotations\n+  #116 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #117 = Utf8               test_prompt_with_multiple_variables\n+  #118 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n+  #119 = Utf8               test_prompt_with_various_number_types\n+  #120 = Utf8               numbers\n+  #121 = Utf8               Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n+  #122 = Utf8               SourceFile\n+  #123 = Utf8               StructuredPromptProcessorTest.java\n+  #124 = Utf8               InnerClasses\n+  #125 = Utf8               Greeting\n+  #126 = Utf8               SuggestRecipes\n+  #127 = Utf8               VariousNumbers\n {\n   dev.langchain4j.model.input.structured.StructuredPromptProcessorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -149,90 +149,90 @@\n             0       5     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest;\n \n   void test_prompt_with_single_variable();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n+         0: new           #7                  // class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String Klaus\n-        11: invokestatic  #5                  // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.access$002:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n+         9: ldc           #10                 // String Klaus\n+        11: invokestatic  #12                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting.access$002:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;Ljava/lang/String;)Ljava/lang/String;\n         14: pop\n         15: aload_1\n-        16: invokestatic  #6                  // Method dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+        16: invokestatic  #16                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         19: astore_2\n         20: aload_2\n-        21: invokevirtual #7                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        24: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        27: ldc           #9                  // String Hello, my name is Klaus\n-        29: invokevirtual #10                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        21: invokevirtual #22                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        24: invokestatic  #28                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        27: ldc           #34                 // String Hello, my name is Klaus\n+        29: invokevirtual #36                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         32: pop\n         33: return\n       LineNumberTable:\n         line 21: 0\n         line 22: 8\n         line 24: 15\n         line 26: 20\n         line 27: 33\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      34     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest;\n             8      26     1 structuredPrompt   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting;\n            20      14     2 prompt   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #54()\n+      0: #116()\n         org.junit.jupiter.api.Test\n \n   void test_prompt_with_multiple_variables();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=3, args_size=1\n-         0: new           #11                 // class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n+         0: new           #41                 // class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes\n          3: dup\n-         4: invokespecial #12                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.\"<init>\":()V\n+         4: invokespecial #43                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #13                 // String salad\n-        11: invokestatic  #14                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$102:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n+         9: ldc           #44                 // String salad\n+        11: invokestatic  #46                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$102:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/lang/String;)Ljava/lang/String;\n         14: pop\n         15: aload_1\n         16: iconst_5\n-        17: invokestatic  #15                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$202:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n+        17: invokestatic  #50                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$202:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;I)I\n         20: pop\n         21: aload_1\n         22: iconst_3\n-        23: anewarray     #16                 // class java/lang/String\n+        23: anewarray     #54                 // class java/lang/String\n         26: dup\n         27: iconst_0\n-        28: ldc           #17                 // String Tomato\n+        28: ldc           #56                 // String Tomato\n         30: aastore\n         31: dup\n         32: iconst_1\n-        33: ldc           #18                 // String Cucumber\n+        33: ldc           #58                 // String Cucumber\n         35: aastore\n         36: dup\n         37: iconst_2\n-        38: ldc           #19                 // String Onion\n+        38: ldc           #60                 // String Onion\n         40: aastore\n-        41: invokestatic  #20                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        44: invokestatic  #21                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$302:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n+        41: invokestatic  #62                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        44: invokestatic  #68                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes.access$302:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;Ljava/util/List;)Ljava/util/List;\n         47: pop\n         48: aload_1\n-        49: invokestatic  #6                  // Method dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+        49: invokestatic  #16                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         52: astore_2\n         53: aload_2\n-        54: invokevirtual #7                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        57: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        60: ldc           #22                 // String Suggest tasty salad recipes that can be prepared in 5 minutes.\\nI have only [Tomato, Cucumber, Onion] in my fridge.\n-        62: invokevirtual #10                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        54: invokevirtual #22                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        57: invokestatic  #28                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        60: ldc           #72                 // String Suggest tasty salad recipes that can be prepared in 5 minutes.\\nI have only [Tomato, Cucumber, Onion] in my fridge.\n+        62: invokevirtual #36                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         65: pop\n         66: return\n       LineNumberTable:\n         line 44: 0\n         line 45: 8\n         line 46: 15\n         line 47: 21\n@@ -242,54 +242,54 @@\n         line 55: 66\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      67     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest;\n             8      59     1 structuredPrompt   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes;\n            53      14     2 prompt   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #54()\n+      0: #116()\n         org.junit.jupiter.api.Test\n \n   void test_prompt_with_various_number_types();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=3, args_size=1\n-         0: new           #23                 // class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n+         0: new           #74                 // class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers\n          3: dup\n-         4: invokespecial #24                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.\"<init>\":()V\n+         4: invokespecial #76                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc2_w        #25                 // double 17.15d\n-        12: invokestatic  #27                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$402:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n+         9: ldc2_w        #77                 // double 17.15d\n+        12: invokestatic  #79                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$402:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;D)D\n         15: pop2\n         16: aload_1\n         17: fconst_1\n-        18: invokestatic  #28                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$502:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n+        18: invokestatic  #83                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$502:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;F)F\n         21: pop\n         22: aload_1\n         23: iconst_2\n-        24: invokestatic  #29                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$602:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n+        24: invokestatic  #87                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$602:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;I)I\n         27: pop\n         28: aload_1\n         29: bipush        10\n-        31: invokestatic  #30                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$702:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n+        31: invokestatic  #91                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$702:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;S)S\n         34: pop\n         35: aload_1\n-        36: ldc2_w        #31                 // long 12l\n-        39: invokestatic  #33                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$802:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n+        36: ldc2_w        #95                 // long 12l\n+        39: invokestatic  #97                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers.access$802:(Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;J)J\n         42: pop2\n         43: aload_1\n-        44: invokestatic  #6                  // Method dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n+        44: invokestatic  #16                 // Method dev/langchain4j/model/input/structured/StructuredPromptProcessor.toPrompt:(Ljava/lang/Object;)Ldev/langchain4j/model/input/Prompt;\n         47: astore_2\n         48: aload_2\n-        49: invokevirtual #7                  // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n-        52: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        55: ldc           #34                 // String Example of numbers with floating point: 17.15, 1.0 and whole numbers: 2, 10, 12\n-        57: invokevirtual #10                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        49: invokevirtual #22                 // Method dev/langchain4j/model/input/Prompt.text:()Ljava/lang/String;\n+        52: invokestatic  #28                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        55: ldc           #101                // String Example of numbers with floating point: 17.15, 1.0 and whole numbers: 2, 10, 12\n+        57: invokevirtual #36                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         60: pop\n         61: return\n       LineNumberTable:\n         line 71: 0\n         line 72: 8\n         line 73: 16\n         line 74: 22\n@@ -301,15 +301,15 @@\n         line 82: 61\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      62     0  this   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest;\n             8      54     1 numbers   Ldev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers;\n            48      14     2 prompt   Ldev/langchain4j/model/input/Prompt;\n     RuntimeVisibleAnnotations:\n-      0: #54()\n+      0: #116()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"StructuredPromptProcessorTest.java\"\n InnerClasses:\n-  static #37= #23 of #35;                 // VariousNumbers=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-  static #39= #11 of #35;                 // SuggestRecipes=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n-  static #40= #2 of #35;                  // Greeting=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  static #125= #7 of #103;                // Greeting=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$Greeting of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  static #126= #41 of #103;               // SuggestRecipes=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$SuggestRecipes of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n+  static #127= #74 of #103;               // VariousNumbers=class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest$VariousNumbers of class dev/langchain4j/model/input/structured/StructuredPromptProcessorTest\n"}]}, {"source1": "dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel.class", "source2": "dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,49 +1,49 @@\n-  SHA-256 checksum 6ee09b27db4a82fce39a8bde7cb66f002118c387c80488e597a03304c5c66207\n+  SHA-256 checksum 83f11c2cab4d1bffe8134f7fa4f8fd8a8345b4e3a9a9e7037cf094c29987f4e1\n   Compiled from \"LanguageModelTest.java\"\n public class dev.langchain4j.model.language.LanguageModelTest$EchoLanguageModel implements dev.langchain4j.model.language.LanguageModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n-  super_class: #5                         // java/lang/Object\n+  this_class: #12                         // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #5.#24         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #25            // dev/langchain4j/model/output/Response\n-   #3 = Methodref          #2.#26         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-   #4 = Class              #28            // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n-   #5 = Class              #29            // java/lang/Object\n-   #6 = Class              #30            // dev/langchain4j/model/language/LanguageModel\n-   #7 = Utf8               <init>\n-   #8 = Utf8               ()V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               EchoLanguageModel\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel;\n-  #16 = Utf8               generate\n-  #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #18 = Utf8               prompt\n-  #19 = Utf8               Ljava/lang/String;\n-  #20 = Utf8               Signature\n-  #21 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n-  #22 = Utf8               SourceFile\n-  #23 = Utf8               LanguageModelTest.java\n-  #24 = NameAndType        #7:#8          // \"<init>\":()V\n-  #25 = Utf8               dev/langchain4j/model/output/Response\n-  #26 = NameAndType        #7:#31         // \"<init>\":(Ljava/lang/Object;)V\n-  #27 = Class              #32            // dev/langchain4j/model/language/LanguageModelTest\n-  #28 = Utf8               dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n-  #29 = Utf8               java/lang/Object\n-  #30 = Utf8               dev/langchain4j/model/language/LanguageModel\n-  #31 = Utf8               (Ljava/lang/Object;)V\n-  #32 = Utf8               dev/langchain4j/model/language/LanguageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/output/Response\n+   #8 = Utf8               dev/langchain4j/model/output/Response\n+   #9 = Methodref          #7.#10         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #10 = NameAndType        #5:#11         // \"<init>\":(Ljava/lang/Object;)V\n+  #11 = Utf8               (Ljava/lang/Object;)V\n+  #12 = Class              #13            // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n+  #13 = Utf8               dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n+  #14 = Class              #15            // dev/langchain4j/model/language/LanguageModel\n+  #15 = Utf8               dev/langchain4j/model/language/LanguageModel\n+  #16 = Utf8               Code\n+  #17 = Utf8               LineNumberTable\n+  #18 = Utf8               LocalVariableTable\n+  #19 = Utf8               this\n+  #20 = Utf8               Ldev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel;\n+  #21 = Utf8               generate\n+  #22 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #23 = Utf8               prompt\n+  #24 = Utf8               Ljava/lang/String;\n+  #25 = Utf8               Signature\n+  #26 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n+  #27 = Utf8               SourceFile\n+  #28 = Utf8               LanguageModelTest.java\n+  #29 = Utf8               InnerClasses\n+  #30 = Class              #31            // dev/langchain4j/model/language/LanguageModelTest\n+  #31 = Utf8               dev/langchain4j/model/language/LanguageModelTest\n+  #32 = Utf8               EchoLanguageModel\n {\n   public dev.langchain4j.model.language.LanguageModelTest$EchoLanguageModel();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -56,23 +56,23 @@\n             0       5     0  this   Ldev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel;\n \n   public dev.langchain4j.model.output.Response<java.lang.String> generate(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n-         0: new           #2                  // class dev/langchain4j/model/output/Response\n+         0: new           #7                  // class dev/langchain4j/model/output/Response\n          3: dup\n          4: aload_1\n-         5: invokespecial #3                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+         5: invokespecial #9                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n          8: areturn\n       LineNumberTable:\n         line 12: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       9     0  this   Ldev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel;\n             0       9     1 prompt   Ljava/lang/String;\n-    Signature: #21                          // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n+    Signature: #26                          // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n }\n SourceFile: \"LanguageModelTest.java\"\n InnerClasses:\n-  public static #13= #4 of #27;           // EchoLanguageModel=class dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel of class dev/langchain4j/model/language/LanguageModelTest\n+  public static #32= #12 of #30;          // EchoLanguageModel=class dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel of class dev/langchain4j/model/language/LanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/language/LanguageModelTest.class", "source2": "dev/langchain4j/model/language/LanguageModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,73 +1,73 @@\n-  SHA-256 checksum 0e042716ae98f91041ed2acbac21f3a8fa0434cbae2c556dcf24d857ff9b5677\n+  SHA-256 checksum e7794ec2cf788d1825b2ec957e5536cd1ab9f37cc5328552ffc48192bdbfbca1\n   Compiled from \"LanguageModelTest.java\"\n class dev.langchain4j.model.language.LanguageModelTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #11                         // dev/langchain4j/model/language/LanguageModelTest\n-  super_class: #12                        // java/lang/Object\n+  this_class: #25                         // dev/langchain4j/model/language/LanguageModelTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #12.#30        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #31            // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n-   #3 = Methodref          #2.#30         // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel.\"<init>\":()V\n-   #4 = String             #32            // text\n-   #5 = Methodref          #33.#34        // dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-   #6 = InterfaceMethodref #35.#36        // dev/langchain4j/model/language/LanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-   #7 = Methodref          #11.#37        // dev/langchain4j/model/language/LanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #8 = Class              #38            // dev/langchain4j/model/output/Response\n-   #9 = Methodref          #8.#39         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-  #10 = Methodref          #40.#41        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #11 = Class              #42            // dev/langchain4j/model/language/LanguageModelTest\n-  #12 = Class              #43            // java/lang/Object\n-  #13 = Class              #44            // org/assertj/core/api/WithAssertions\n-  #14 = Utf8               EchoLanguageModel\n-  #15 = Utf8               InnerClasses\n-  #16 = Utf8               <init>\n-  #17 = Utf8               ()V\n-  #18 = Utf8               Code\n-  #19 = Utf8               LineNumberTable\n-  #20 = Utf8               LocalVariableTable\n-  #21 = Utf8               this\n-  #22 = Utf8               Ldev/langchain4j/model/language/LanguageModelTest;\n-  #23 = Utf8               test_generate\n-  #24 = Utf8               model\n-  #25 = Utf8               Ldev/langchain4j/model/language/LanguageModel;\n-  #26 = Utf8               RuntimeVisibleAnnotations\n-  #27 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #28 = Utf8               SourceFile\n-  #29 = Utf8               LanguageModelTest.java\n-  #30 = NameAndType        #16:#17        // \"<init>\":()V\n-  #31 = Utf8               dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n-  #32 = Utf8               text\n-  #33 = Class              #45            // dev/langchain4j/model/input/Prompt\n-  #34 = NameAndType        #46:#47        // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-  #35 = Class              #48            // dev/langchain4j/model/language/LanguageModel\n-  #36 = NameAndType        #49:#50        // generate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-  #37 = NameAndType        #51:#52        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #38 = Utf8               dev/langchain4j/model/output/Response\n-  #39 = NameAndType        #16:#53        // \"<init>\":(Ljava/lang/Object;)V\n-  #40 = Class              #54            // org/assertj/core/api/ObjectAssert\n-  #41 = NameAndType        #55:#56        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #42 = Utf8               dev/langchain4j/model/language/LanguageModelTest\n-  #43 = Utf8               java/lang/Object\n-  #44 = Utf8               org/assertj/core/api/WithAssertions\n-  #45 = Utf8               dev/langchain4j/model/input/Prompt\n-  #46 = Utf8               from\n-  #47 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-  #48 = Utf8               dev/langchain4j/model/language/LanguageModel\n-  #49 = Utf8               generate\n-  #50 = Utf8               (Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-  #51 = Utf8               assertThat\n-  #52 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #53 = Utf8               (Ljava/lang/Object;)V\n-  #54 = Utf8               org/assertj/core/api/ObjectAssert\n-  #55 = Utf8               isEqualTo\n-  #56 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n+   #8 = Utf8               dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel.\"<init>\":()V\n+  #10 = String             #11            // text\n+  #11 = Utf8               text\n+  #12 = Methodref          #13.#14        // dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+  #13 = Class              #15            // dev/langchain4j/model/input/Prompt\n+  #14 = NameAndType        #16:#17        // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+  #15 = Utf8               dev/langchain4j/model/input/Prompt\n+  #16 = Utf8               from\n+  #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+  #18 = InterfaceMethodref #19.#20        // dev/langchain4j/model/language/LanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+  #19 = Class              #21            // dev/langchain4j/model/language/LanguageModel\n+  #20 = NameAndType        #22:#23        // generate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+  #21 = Utf8               dev/langchain4j/model/language/LanguageModel\n+  #22 = Utf8               generate\n+  #23 = Utf8               (Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+  #24 = Methodref          #25.#26        // dev/langchain4j/model/language/LanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #25 = Class              #27            // dev/langchain4j/model/language/LanguageModelTest\n+  #26 = NameAndType        #28:#29        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #27 = Utf8               dev/langchain4j/model/language/LanguageModelTest\n+  #28 = Utf8               assertThat\n+  #29 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #30 = Class              #31            // dev/langchain4j/model/output/Response\n+  #31 = Utf8               dev/langchain4j/model/output/Response\n+  #32 = Methodref          #30.#33        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #33 = NameAndType        #5:#34         // \"<init>\":(Ljava/lang/Object;)V\n+  #34 = Utf8               (Ljava/lang/Object;)V\n+  #35 = Methodref          #36.#37        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #36 = Class              #38            // org/assertj/core/api/ObjectAssert\n+  #37 = NameAndType        #39:#40        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #38 = Utf8               org/assertj/core/api/ObjectAssert\n+  #39 = Utf8               isEqualTo\n+  #40 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #41 = Class              #42            // org/assertj/core/api/WithAssertions\n+  #42 = Utf8               org/assertj/core/api/WithAssertions\n+  #43 = Utf8               Code\n+  #44 = Utf8               LineNumberTable\n+  #45 = Utf8               LocalVariableTable\n+  #46 = Utf8               this\n+  #47 = Utf8               Ldev/langchain4j/model/language/LanguageModelTest;\n+  #48 = Utf8               test_generate\n+  #49 = Utf8               model\n+  #50 = Utf8               Ldev/langchain4j/model/language/LanguageModel;\n+  #51 = Utf8               RuntimeVisibleAnnotations\n+  #52 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #53 = Utf8               SourceFile\n+  #54 = Utf8               LanguageModelTest.java\n+  #55 = Utf8               InnerClasses\n+  #56 = Utf8               EchoLanguageModel\n {\n   dev.langchain4j.model.language.LanguageModelTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -80,40 +80,40 @@\n             0       5     0  this   Ldev/langchain4j/model/language/LanguageModelTest;\n \n   public void test_generate();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n+         0: new           #7                  // class dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String text\n-        12: invokestatic  #5                  // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-        15: invokeinterface #6,  2            // InterfaceMethod dev/langchain4j/model/language/LanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-        20: invokevirtual #7                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        23: new           #8                  // class dev/langchain4j/model/output/Response\n+        10: ldc           #10                 // String text\n+        12: invokestatic  #12                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+        15: invokeinterface #18,  2           // InterfaceMethod dev/langchain4j/model/language/LanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+        20: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        23: new           #30                 // class dev/langchain4j/model/output/Response\n         26: dup\n-        27: ldc           #4                  // String text\n-        29: invokespecial #9                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-        32: invokevirtual #10                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        27: ldc           #10                 // String text\n+        29: invokespecial #32                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+        32: invokevirtual #35                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         35: pop\n         36: return\n       LineNumberTable:\n         line 18: 0\n         line 20: 8\n         line 21: 32\n         line 22: 36\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      37     0  this   Ldev/langchain4j/model/language/LanguageModelTest;\n             8      29     1 model   Ldev/langchain4j/model/language/LanguageModel;\n     RuntimeVisibleAnnotations:\n-      0: #27()\n+      0: #52()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"LanguageModelTest.java\"\n InnerClasses:\n-  public static #14= #2 of #11;           // EchoLanguageModel=class dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel of class dev/langchain4j/model/language/LanguageModelTest\n+  public static #56= #7 of #25;           // EchoLanguageModel=class dev/langchain4j/model/language/LanguageModelTest$EchoLanguageModel of class dev/langchain4j/model/language/LanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.class", "source2": "dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,69 +1,69 @@\n-  SHA-256 checksum 8dd65dabc31f8f05f3c9cfe00419f5961535dc61f79fa740988dd049ff09da1f\n+  SHA-256 checksum 1acc81d570554e65083602d8a60bbf7628543a6afea29feb4c3108cb36b3de5d\n   Compiled from \"StreamingLanguageModelTest.java\"\n public class dev.langchain4j.model.language.StreamingLanguageModelTest$CaptureHandler<T extends java.lang.Object> extends java.lang.Object implements dev.langchain4j.model.StreamingResponseHandler<T>\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #6                          // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n-  super_class: #7                         // java/lang/Object\n+  this_class: #15                         // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 4, attributes: 3\n Constant pool:\n-   #1 = Methodref          #7.#38         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #39            // java/lang/RuntimeException\n-   #3 = String             #40            // Not implemented\n-   #4 = Methodref          #2.#41         // java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n-   #5 = Fieldref           #6.#42         // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.response:Ldev/langchain4j/model/output/Response;\n-   #6 = Class              #44            // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n-   #7 = Class              #45            // java/lang/Object\n-   #8 = Class              #46            // dev/langchain4j/model/StreamingResponseHandler\n-   #9 = Utf8               response\n-  #10 = Utf8               Ldev/langchain4j/model/output/Response;\n-  #11 = Utf8               Signature\n-  #12 = Utf8               Ldev/langchain4j/model/output/Response<TT;>;\n-  #13 = Utf8               <init>\n-  #14 = Utf8               ()V\n-  #15 = Utf8               Code\n-  #16 = Utf8               LineNumberTable\n-  #17 = Utf8               LocalVariableTable\n-  #18 = Utf8               this\n-  #19 = Utf8               CaptureHandler\n-  #20 = Utf8               InnerClasses\n-  #21 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n-  #22 = Utf8               LocalVariableTypeTable\n-  #23 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<TT;>;\n-  #24 = Utf8               onNext\n-  #25 = Utf8               (Ljava/lang/String;)V\n-  #26 = Utf8               token\n-  #27 = Utf8               Ljava/lang/String;\n-  #28 = Utf8               onComplete\n-  #29 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n-  #30 = Utf8               (Ldev/langchain4j/model/output/Response<TT;>;)V\n-  #31 = Utf8               onError\n-  #32 = Utf8               (Ljava/lang/Throwable;)V\n-  #33 = Utf8               error\n-  #34 = Utf8               Ljava/lang/Throwable;\n-  #35 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n-  #36 = Utf8               SourceFile\n-  #37 = Utf8               StreamingLanguageModelTest.java\n-  #38 = NameAndType        #13:#14        // \"<init>\":()V\n-  #39 = Utf8               java/lang/RuntimeException\n-  #40 = Utf8               Not implemented\n-  #41 = NameAndType        #13:#25        // \"<init>\":(Ljava/lang/String;)V\n-  #42 = NameAndType        #9:#10         // response:Ldev/langchain4j/model/output/Response;\n-  #43 = Class              #47            // dev/langchain4j/model/language/StreamingLanguageModelTest\n-  #44 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n-  #45 = Utf8               java/lang/Object\n-  #46 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-  #47 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // java/lang/RuntimeException\n+   #8 = Utf8               java/lang/RuntimeException\n+   #9 = String             #10            // Not implemented\n+  #10 = Utf8               Not implemented\n+  #11 = Methodref          #7.#12         // java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n+  #12 = NameAndType        #5:#13         // \"<init>\":(Ljava/lang/String;)V\n+  #13 = Utf8               (Ljava/lang/String;)V\n+  #14 = Fieldref           #15.#16        // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.response:Ldev/langchain4j/model/output/Response;\n+  #15 = Class              #17            // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n+  #16 = NameAndType        #18:#19        // response:Ldev/langchain4j/model/output/Response;\n+  #17 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n+  #18 = Utf8               response\n+  #19 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #20 = Class              #21            // dev/langchain4j/model/StreamingResponseHandler\n+  #21 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+  #22 = Utf8               Signature\n+  #23 = Utf8               Ldev/langchain4j/model/output/Response<TT;>;\n+  #24 = Utf8               Code\n+  #25 = Utf8               LineNumberTable\n+  #26 = Utf8               LocalVariableTable\n+  #27 = Utf8               this\n+  #28 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n+  #29 = Utf8               LocalVariableTypeTable\n+  #30 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<TT;>;\n+  #31 = Utf8               onNext\n+  #32 = Utf8               token\n+  #33 = Utf8               Ljava/lang/String;\n+  #34 = Utf8               onComplete\n+  #35 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+  #36 = Utf8               (Ldev/langchain4j/model/output/Response<TT;>;)V\n+  #37 = Utf8               onError\n+  #38 = Utf8               (Ljava/lang/Throwable;)V\n+  #39 = Utf8               error\n+  #40 = Utf8               Ljava/lang/Throwable;\n+  #41 = Utf8               <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+  #42 = Utf8               SourceFile\n+  #43 = Utf8               StreamingLanguageModelTest.java\n+  #44 = Utf8               InnerClasses\n+  #45 = Class              #46            // dev/langchain4j/model/language/StreamingLanguageModelTest\n+  #46 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest\n+  #47 = Utf8               CaptureHandler\n {\n   dev.langchain4j.model.output.Response<T> response;\n     descriptor: Ldev/langchain4j/model/output/Response;\n     flags: (0x0000)\n-    Signature: #12                          // Ldev/langchain4j/model/output/Response<TT;>;\n+    Signature: #23                          // Ldev/langchain4j/model/output/Response<TT;>;\n \n   public dev.langchain4j.model.language.StreamingLanguageModelTest$CaptureHandler();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -79,18 +79,18 @@\n             0       5     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<TT;>;\n \n   public void onNext(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n-         0: new           #2                  // class java/lang/RuntimeException\n+         0: new           #7                  // class java/lang/RuntimeException\n          3: dup\n-         4: ldc           #3                  // String Not implemented\n-         6: invokespecial #4                  // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #9                  // String Not implemented\n+         6: invokespecial #11                 // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n          9: athrow\n       LineNumberTable:\n         line 23: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n             0      10     1 token   Ljava/lang/String;\n@@ -101,46 +101,46 @@\n   public void onComplete(dev.langchain4j.model.output.Response<T>);\n     descriptor: (Ldev/langchain4j/model/output/Response;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #5                  // Field response:Ldev/langchain4j/model/output/Response;\n+         2: putfield      #14                 // Field response:Ldev/langchain4j/model/output/Response;\n          5: return\n       LineNumberTable:\n         line 28: 0\n         line 29: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       6     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n             0       6     1 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       6     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<TT;>;\n             0       6     1 response   Ldev/langchain4j/model/output/Response<TT;>;\n-    Signature: #30                          // (Ldev/langchain4j/model/output/Response<TT;>;)V\n+    Signature: #36                          // (Ldev/langchain4j/model/output/Response<TT;>;)V\n \n   public void onError(java.lang.Throwable);\n     descriptor: (Ljava/lang/Throwable;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n-         0: new           #2                  // class java/lang/RuntimeException\n+         0: new           #7                  // class java/lang/RuntimeException\n          3: dup\n-         4: ldc           #3                  // String Not implemented\n-         6: invokespecial #4                  // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #9                  // String Not implemented\n+         6: invokespecial #11                 // Method java/lang/RuntimeException.\"<init>\":(Ljava/lang/String;)V\n          9: athrow\n       LineNumberTable:\n         line 33: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n             0      10     1 error   Ljava/lang/Throwable;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<TT;>;\n }\n-Signature: #35                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n+Signature: #41                          // <T:Ljava/lang/Object;>Ljava/lang/Object;Ldev/langchain4j/model/StreamingResponseHandler<TT;>;\n SourceFile: \"StreamingLanguageModelTest.java\"\n InnerClasses:\n-  public static #19= #6 of #43;           // CaptureHandler=class dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler of class dev/langchain4j/model/language/StreamingLanguageModelTest\n+  public static #47= #15 of #45;          // CaptureHandler=class dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler of class dev/langchain4j/model/language/StreamingLanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel.class", "source2": "dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,59 +1,59 @@\n-  SHA-256 checksum 7e0298ba8cd36d87d316a6621a88ab9c13905565c0c8064a9720417b525a636a\n+  SHA-256 checksum 1ae087f952fd500c74372fd717c327519a6bf632810f0e54a8cc52f3ca489045\n   Compiled from \"StreamingLanguageModelTest.java\"\n public class dev.langchain4j.model.language.StreamingLanguageModelTest$EchoStreamingLanguageModel implements dev.langchain4j.model.language.StreamingLanguageModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #5                          // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n-  super_class: #6                         // java/lang/Object\n+  this_class: #18                         // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #6.#29         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #30            // dev/langchain4j/model/output/Response\n-   #3 = Methodref          #2.#31         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-   #4 = InterfaceMethodref #32.#33        // dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n-   #5 = Class              #35            // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n-   #6 = Class              #36            // java/lang/Object\n-   #7 = Class              #37            // dev/langchain4j/model/language/StreamingLanguageModel\n-   #8 = Utf8               <init>\n-   #9 = Utf8               ()V\n-  #10 = Utf8               Code\n-  #11 = Utf8               LineNumberTable\n-  #12 = Utf8               LocalVariableTable\n-  #13 = Utf8               this\n-  #14 = Utf8               EchoStreamingLanguageModel\n-  #15 = Utf8               InnerClasses\n-  #16 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel;\n-  #17 = Utf8               generate\n-  #18 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #19 = Utf8               prompt\n-  #20 = Utf8               Ljava/lang/String;\n-  #21 = Utf8               handler\n-  #22 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler;\n-  #23 = Utf8               LocalVariableTypeTable\n-  #24 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;\n-  #25 = Utf8               Signature\n-  #26 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;)V\n-  #27 = Utf8               SourceFile\n-  #28 = Utf8               StreamingLanguageModelTest.java\n-  #29 = NameAndType        #8:#9          // \"<init>\":()V\n-  #30 = Utf8               dev/langchain4j/model/output/Response\n-  #31 = NameAndType        #8:#38         // \"<init>\":(Ljava/lang/Object;)V\n-  #32 = Class              #39            // dev/langchain4j/model/StreamingResponseHandler\n-  #33 = NameAndType        #40:#41        // onComplete:(Ldev/langchain4j/model/output/Response;)V\n-  #34 = Class              #42            // dev/langchain4j/model/language/StreamingLanguageModelTest\n-  #35 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n-  #36 = Utf8               java/lang/Object\n-  #37 = Utf8               dev/langchain4j/model/language/StreamingLanguageModel\n-  #38 = Utf8               (Ljava/lang/Object;)V\n-  #39 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n-  #40 = Utf8               onComplete\n-  #41 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n-  #42 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/output/Response\n+   #8 = Utf8               dev/langchain4j/model/output/Response\n+   #9 = Methodref          #7.#10         // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #10 = NameAndType        #5:#11         // \"<init>\":(Ljava/lang/Object;)V\n+  #11 = Utf8               (Ljava/lang/Object;)V\n+  #12 = InterfaceMethodref #13.#14        // dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n+  #13 = Class              #15            // dev/langchain4j/model/StreamingResponseHandler\n+  #14 = NameAndType        #16:#17        // onComplete:(Ldev/langchain4j/model/output/Response;)V\n+  #15 = Utf8               dev/langchain4j/model/StreamingResponseHandler\n+  #16 = Utf8               onComplete\n+  #17 = Utf8               (Ldev/langchain4j/model/output/Response;)V\n+  #18 = Class              #19            // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n+  #19 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n+  #20 = Class              #21            // dev/langchain4j/model/language/StreamingLanguageModel\n+  #21 = Utf8               dev/langchain4j/model/language/StreamingLanguageModel\n+  #22 = Utf8               Code\n+  #23 = Utf8               LineNumberTable\n+  #24 = Utf8               LocalVariableTable\n+  #25 = Utf8               this\n+  #26 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel;\n+  #27 = Utf8               generate\n+  #28 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #29 = Utf8               prompt\n+  #30 = Utf8               Ljava/lang/String;\n+  #31 = Utf8               handler\n+  #32 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler;\n+  #33 = Utf8               LocalVariableTypeTable\n+  #34 = Utf8               Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;\n+  #35 = Utf8               Signature\n+  #36 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;)V\n+  #37 = Utf8               SourceFile\n+  #38 = Utf8               StreamingLanguageModelTest.java\n+  #39 = Utf8               InnerClasses\n+  #40 = Class              #41            // dev/langchain4j/model/language/StreamingLanguageModelTest\n+  #41 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest\n+  #42 = Utf8               EchoStreamingLanguageModel\n {\n   public dev.langchain4j.model.language.StreamingLanguageModelTest$EchoStreamingLanguageModel();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -67,29 +67,29 @@\n \n   public void generate(java.lang.String, dev.langchain4j.model.StreamingResponseHandler<java.lang.String>);\n     descriptor: (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=3\n          0: aload_2\n-         1: new           #2                  // class dev/langchain4j/model/output/Response\n+         1: new           #7                  // class dev/langchain4j/model/output/Response\n          4: dup\n          5: aload_1\n-         6: invokespecial #3                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-         9: invokeinterface #4,  2            // InterfaceMethod dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n+         6: invokespecial #9                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+         9: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/StreamingResponseHandler.onComplete:(Ldev/langchain4j/model/output/Response;)V\n         14: return\n       LineNumberTable:\n         line 14: 0\n         line 15: 14\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      15     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel;\n             0      15     1 prompt   Ljava/lang/String;\n             0      15     2 handler   Ldev/langchain4j/model/StreamingResponseHandler;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      15     2 handler   Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;\n-    Signature: #26                          // (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;)V\n+    Signature: #36                          // (Ljava/lang/String;Ldev/langchain4j/model/StreamingResponseHandler<Ljava/lang/String;>;)V\n }\n SourceFile: \"StreamingLanguageModelTest.java\"\n InnerClasses:\n-  public static #14= #5 of #34;           // EchoStreamingLanguageModel=class dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel of class dev/langchain4j/model/language/StreamingLanguageModelTest\n+  public static #42= #18 of #40;          // EchoStreamingLanguageModel=class dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel of class dev/langchain4j/model/language/StreamingLanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/language/StreamingLanguageModelTest.class", "source2": "dev/langchain4j/model/language/StreamingLanguageModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,84 +1,84 @@\n-  SHA-256 checksum eeede61d3eaec07b56bfda792b19b5a7592302a05f9ad3329d72eb76e78755cf\n+  SHA-256 checksum 6c194b0d0a470608371130817019979051e7fa22377f7caa9beb5b2b4840ab31\n   Compiled from \"StreamingLanguageModelTest.java\"\n class dev.langchain4j.model.language.StreamingLanguageModelTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #15                         // dev/langchain4j/model/language/StreamingLanguageModelTest\n-  super_class: #16                        // java/lang/Object\n+  this_class: #31                         // dev/langchain4j/model/language/StreamingLanguageModelTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #16.#39        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #40            // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n-   #3 = Methodref          #2.#39         // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel.\"<init>\":()V\n-   #4 = Class              #41            // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n-   #5 = Methodref          #4.#39         // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.\"<init>\":()V\n-   #6 = Class              #42            // dev/langchain4j/model/input/Prompt\n-   #7 = String             #43            // text\n-   #8 = Methodref          #6.#44         // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n-   #9 = InterfaceMethodref #45.#46        // dev/langchain4j/model/language/StreamingLanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #10 = Fieldref           #4.#47         // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.response:Ldev/langchain4j/model/output/Response;\n-  #11 = Methodref          #15.#48        // dev/langchain4j/model/language/StreamingLanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #12 = Class              #49            // dev/langchain4j/model/output/Response\n-  #13 = Methodref          #12.#50        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-  #14 = Methodref          #51.#52        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #15 = Class              #53            // dev/langchain4j/model/language/StreamingLanguageModelTest\n-  #16 = Class              #54            // java/lang/Object\n-  #17 = Class              #55            // org/assertj/core/api/WithAssertions\n-  #18 = Utf8               CaptureHandler\n-  #19 = Utf8               InnerClasses\n-  #20 = Utf8               EchoStreamingLanguageModel\n-  #21 = Utf8               <init>\n-  #22 = Utf8               ()V\n-  #23 = Utf8               Code\n-  #24 = Utf8               LineNumberTable\n-  #25 = Utf8               LocalVariableTable\n-  #26 = Utf8               this\n-  #27 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest;\n-  #28 = Utf8               test_generate\n-  #29 = Utf8               model\n-  #30 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModel;\n-  #31 = Utf8               handler\n-  #32 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n-  #33 = Utf8               LocalVariableTypeTable\n-  #34 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<Ljava/lang/String;>;\n-  #35 = Utf8               RuntimeVisibleAnnotations\n-  #36 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #37 = Utf8               SourceFile\n-  #38 = Utf8               StreamingLanguageModelTest.java\n-  #39 = NameAndType        #21:#22        // \"<init>\":()V\n-  #40 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n-  #41 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n-  #42 = Utf8               dev/langchain4j/model/input/Prompt\n-  #43 = Utf8               text\n-  #44 = NameAndType        #21:#56        // \"<init>\":(Ljava/lang/String;)V\n-  #45 = Class              #57            // dev/langchain4j/model/language/StreamingLanguageModel\n-  #46 = NameAndType        #58:#59        // generate:(Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #47 = NameAndType        #60:#61        // response:Ldev/langchain4j/model/output/Response;\n-  #48 = NameAndType        #62:#63        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #49 = Utf8               dev/langchain4j/model/output/Response\n-  #50 = NameAndType        #21:#64        // \"<init>\":(Ljava/lang/Object;)V\n-  #51 = Class              #65            // org/assertj/core/api/ObjectAssert\n-  #52 = NameAndType        #66:#67        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #53 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest\n-  #54 = Utf8               java/lang/Object\n-  #55 = Utf8               org/assertj/core/api/WithAssertions\n-  #56 = Utf8               (Ljava/lang/String;)V\n-  #57 = Utf8               dev/langchain4j/model/language/StreamingLanguageModel\n-  #58 = Utf8               generate\n-  #59 = Utf8               (Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n-  #60 = Utf8               response\n-  #61 = Utf8               Ldev/langchain4j/model/output/Response;\n-  #62 = Utf8               assertThat\n-  #63 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #64 = Utf8               (Ljava/lang/Object;)V\n-  #65 = Utf8               org/assertj/core/api/ObjectAssert\n-  #66 = Utf8               isEqualTo\n-  #67 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n+   #8 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel.\"<init>\":()V\n+  #10 = Class              #11            // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n+  #11 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n+  #12 = Methodref          #10.#3         // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.\"<init>\":()V\n+  #13 = Class              #14            // dev/langchain4j/model/input/Prompt\n+  #14 = Utf8               dev/langchain4j/model/input/Prompt\n+  #15 = String             #16            // text\n+  #16 = Utf8               text\n+  #17 = Methodref          #13.#18        // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+  #18 = NameAndType        #5:#19         // \"<init>\":(Ljava/lang/String;)V\n+  #19 = Utf8               (Ljava/lang/String;)V\n+  #20 = InterfaceMethodref #21.#22        // dev/langchain4j/model/language/StreamingLanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #21 = Class              #23            // dev/langchain4j/model/language/StreamingLanguageModel\n+  #22 = NameAndType        #24:#25        // generate:(Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #23 = Utf8               dev/langchain4j/model/language/StreamingLanguageModel\n+  #24 = Utf8               generate\n+  #25 = Utf8               (Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+  #26 = Fieldref           #10.#27        // dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.response:Ldev/langchain4j/model/output/Response;\n+  #27 = NameAndType        #28:#29        // response:Ldev/langchain4j/model/output/Response;\n+  #28 = Utf8               response\n+  #29 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #30 = Methodref          #31.#32        // dev/langchain4j/model/language/StreamingLanguageModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #31 = Class              #33            // dev/langchain4j/model/language/StreamingLanguageModelTest\n+  #32 = NameAndType        #34:#35        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #33 = Utf8               dev/langchain4j/model/language/StreamingLanguageModelTest\n+  #34 = Utf8               assertThat\n+  #35 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #36 = Class              #37            // dev/langchain4j/model/output/Response\n+  #37 = Utf8               dev/langchain4j/model/output/Response\n+  #38 = Methodref          #36.#39        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+  #39 = NameAndType        #5:#40         // \"<init>\":(Ljava/lang/Object;)V\n+  #40 = Utf8               (Ljava/lang/Object;)V\n+  #41 = Methodref          #42.#43        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #42 = Class              #44            // org/assertj/core/api/ObjectAssert\n+  #43 = NameAndType        #45:#46        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #44 = Utf8               org/assertj/core/api/ObjectAssert\n+  #45 = Utf8               isEqualTo\n+  #46 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #47 = Class              #48            // org/assertj/core/api/WithAssertions\n+  #48 = Utf8               org/assertj/core/api/WithAssertions\n+  #49 = Utf8               Code\n+  #50 = Utf8               LineNumberTable\n+  #51 = Utf8               LocalVariableTable\n+  #52 = Utf8               this\n+  #53 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest;\n+  #54 = Utf8               test_generate\n+  #55 = Utf8               model\n+  #56 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModel;\n+  #57 = Utf8               handler\n+  #58 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n+  #59 = Utf8               LocalVariableTypeTable\n+  #60 = Utf8               Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<Ljava/lang/String;>;\n+  #61 = Utf8               RuntimeVisibleAnnotations\n+  #62 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #63 = Utf8               SourceFile\n+  #64 = Utf8               StreamingLanguageModelTest.java\n+  #65 = Utf8               InnerClasses\n+  #66 = Utf8               EchoStreamingLanguageModel\n+  #67 = Utf8               CaptureHandler\n {\n   dev.langchain4j.model.language.StreamingLanguageModelTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -91,38 +91,38 @@\n             0       5     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest;\n \n   public void test_generate();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n+         0: new           #7                  // class dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel.\"<init>\":()V\n          7: astore_1\n-         8: new           #4                  // class dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n+         8: new           #10                 // class dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler\n         11: dup\n-        12: invokespecial #5                  // Method dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.\"<init>\":()V\n+        12: invokespecial #12                 // Method dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.\"<init>\":()V\n         15: astore_2\n         16: aload_1\n-        17: new           #6                  // class dev/langchain4j/model/input/Prompt\n+        17: new           #13                 // class dev/langchain4j/model/input/Prompt\n         20: dup\n-        21: ldc           #7                  // String text\n-        23: invokespecial #8                  // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+        21: ldc           #15                 // String text\n+        23: invokespecial #17                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n         26: aload_2\n-        27: invokeinterface #9,  3            // InterfaceMethod dev/langchain4j/model/language/StreamingLanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n+        27: invokeinterface #20,  3           // InterfaceMethod dev/langchain4j/model/language/StreamingLanguageModel.generate:(Ldev/langchain4j/model/input/Prompt;Ldev/langchain4j/model/StreamingResponseHandler;)V\n         32: aload_0\n         33: aload_2\n-        34: getfield      #10                 // Field dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.response:Ldev/langchain4j/model/output/Response;\n-        37: invokevirtual #11                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        40: new           #12                 // class dev/langchain4j/model/output/Response\n+        34: getfield      #26                 // Field dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler.response:Ldev/langchain4j/model/output/Response;\n+        37: invokevirtual #30                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        40: new           #36                 // class dev/langchain4j/model/output/Response\n         43: dup\n-        44: ldc           #7                  // String text\n-        46: invokespecial #13                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-        49: invokevirtual #14                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        44: ldc           #15                 // String text\n+        46: invokespecial #38                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+        49: invokevirtual #41                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         52: pop\n         53: return\n       LineNumberTable:\n         line 39: 0\n         line 41: 8\n         line 42: 16\n         line 44: 32\n@@ -133,14 +133,14 @@\n             0      54     0  this   Ldev/langchain4j/model/language/StreamingLanguageModelTest;\n             8      46     1 model   Ldev/langchain4j/model/language/StreamingLanguageModel;\n            16      38     2 handler   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            16      38     2 handler   Ldev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #62()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"StreamingLanguageModelTest.java\"\n InnerClasses:\n-  public static #18= #4 of #15;           // CaptureHandler=class dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler of class dev/langchain4j/model/language/StreamingLanguageModelTest\n-  public static #20= #2 of #15;           // EchoStreamingLanguageModel=class dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel of class dev/langchain4j/model/language/StreamingLanguageModelTest\n+  public static #66= #7 of #31;           // EchoStreamingLanguageModel=class dev/langchain4j/model/language/StreamingLanguageModelTest$EchoStreamingLanguageModel of class dev/langchain4j/model/language/StreamingLanguageModelTest\n+  public static #67= #10 of #31;          // CaptureHandler=class dev/langchain4j/model/language/StreamingLanguageModelTest$CaptureHandler of class dev/langchain4j/model/language/StreamingLanguageModelTest\n"}]}, {"source1": "dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class", "source2": "dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,50 +1,50 @@\n-  SHA-256 checksum 57e320e8eab881049ad2b57c314044b66332317f8370ef27c5ff27300a43fa60\n+  SHA-256 checksum b301d95d555d2b98933898394dc4bcb2e0cd0e0544a95772914b65fe6bd43a86\n   Compiled from \"TokenCountEstimatorTest.java\"\n public class dev.langchain4j.model.language.TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator implements dev.langchain4j.model.language.TokenCountEstimator\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  super_class: #5                         // java/lang/Object\n+  this_class: #15                         // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #5.#22         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #23            // \\\\s+\n-   #3 = Methodref          #24.#25        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n-   #4 = Class              #27            // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-   #5 = Class              #28            // java/lang/Object\n-   #6 = Class              #29            // dev/langchain4j/model/language/TokenCountEstimator\n-   #7 = Utf8               <init>\n-   #8 = Utf8               ()V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               WhitespaceSplitTokenCountEstimator\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n-  #16 = Utf8               estimateTokenCount\n-  #17 = Utf8               (Ljava/lang/String;)I\n-  #18 = Utf8               text\n-  #19 = Utf8               Ljava/lang/String;\n-  #20 = Utf8               SourceFile\n-  #21 = Utf8               TokenCountEstimatorTest.java\n-  #22 = NameAndType        #7:#8          // \"<init>\":()V\n-  #23 = Utf8               \\\\s+\n-  #24 = Class              #30            // java/lang/String\n-  #25 = NameAndType        #31:#32        // split:(Ljava/lang/String;)[Ljava/lang/String;\n-  #26 = Class              #33            // dev/langchain4j/model/language/TokenCountEstimatorTest\n-  #27 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #28 = Utf8               java/lang/Object\n-  #29 = Utf8               dev/langchain4j/model/language/TokenCountEstimator\n-  #30 = Utf8               java/lang/String\n-  #31 = Utf8               split\n-  #32 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n-  #33 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // \\\\s+\n+   #8 = Utf8               \\\\s+\n+   #9 = Methodref          #10.#11        // java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #10 = Class              #12            // java/lang/String\n+  #11 = NameAndType        #13:#14        // split:(Ljava/lang/String;)[Ljava/lang/String;\n+  #12 = Utf8               java/lang/String\n+  #13 = Utf8               split\n+  #14 = Utf8               (Ljava/lang/String;)[Ljava/lang/String;\n+  #15 = Class              #16            // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  #16 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+  #17 = Class              #18            // dev/langchain4j/model/language/TokenCountEstimator\n+  #18 = Utf8               dev/langchain4j/model/language/TokenCountEstimator\n+  #19 = Utf8               Code\n+  #20 = Utf8               LineNumberTable\n+  #21 = Utf8               LocalVariableTable\n+  #22 = Utf8               this\n+  #23 = Utf8               Ldev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n+  #24 = Utf8               estimateTokenCount\n+  #25 = Utf8               (Ljava/lang/String;)I\n+  #26 = Utf8               text\n+  #27 = Utf8               Ljava/lang/String;\n+  #28 = Utf8               SourceFile\n+  #29 = Utf8               TokenCountEstimatorTest.java\n+  #30 = Utf8               InnerClasses\n+  #31 = Class              #32            // dev/langchain4j/model/language/TokenCountEstimatorTest\n+  #32 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest\n+  #33 = Utf8               WhitespaceSplitTokenCountEstimator\n {\n   public dev.langchain4j.model.language.TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -58,21 +58,21 @@\n \n   public int estimateTokenCount(java.lang.String);\n     descriptor: (Ljava/lang/String;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_1\n-         1: ldc           #2                  // String \\\\s+\n-         3: invokevirtual #3                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n+         1: ldc           #7                  // String \\\\s+\n+         3: invokevirtual #9                  // Method java/lang/String.split:(Ljava/lang/String;)[Ljava/lang/String;\n          6: arraylength\n          7: ireturn\n       LineNumberTable:\n         line 12: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator;\n             0       8     1  text   Ljava/lang/String;\n }\n SourceFile: \"TokenCountEstimatorTest.java\"\n InnerClasses:\n-  public static #13= #4 of #26;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/language/TokenCountEstimatorTest\n+  public static #33= #15 of #31;          // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/language/TokenCountEstimatorTest\n"}]}, {"source1": "dev/langchain4j/model/language/TokenCountEstimatorTest.class", "source2": "dev/langchain4j/model/language/TokenCountEstimatorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,78 +1,78 @@\n-  SHA-256 checksum aac54c29893de452b32af9232a4997e4d1b7f401bb17f656f0e257883afcd932\n+  SHA-256 checksum c9ac7e824cbd90925a99512e40329a8f703caa11e0ae25ad10643bf2ff6343b3\n   Compiled from \"TokenCountEstimatorTest.java\"\n class dev.langchain4j.model.language.TokenCountEstimatorTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #13                         // dev/langchain4j/model/language/TokenCountEstimatorTest\n-  super_class: #14                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/model/language/TokenCountEstimatorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #14.#32        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #33            // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-   #3 = Methodref          #2.#32         // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n-   #4 = String             #34            // foo bar, baz\n-   #5 = InterfaceMethodref #35.#36        // dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n-   #6 = Methodref          #13.#37        // dev/langchain4j/model/language/TokenCountEstimatorTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #7 = Methodref          #38.#39        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-   #8 = Class              #40            // dev/langchain4j/model/input/Prompt\n-   #9 = Methodref          #8.#41         // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n-  #10 = InterfaceMethodref #35.#42        // dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n-  #11 = Methodref          #43.#44        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #12 = InterfaceMethodref #35.#45        // dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #13 = Class              #46            // dev/langchain4j/model/language/TokenCountEstimatorTest\n-  #14 = Class              #47            // java/lang/Object\n-  #15 = Class              #48            // org/assertj/core/api/WithAssertions\n-  #16 = Utf8               WhitespaceSplitTokenCountEstimator\n-  #17 = Utf8               InnerClasses\n-  #18 = Utf8               <init>\n-  #19 = Utf8               ()V\n-  #20 = Utf8               Code\n-  #21 = Utf8               LineNumberTable\n-  #22 = Utf8               LocalVariableTable\n-  #23 = Utf8               this\n-  #24 = Utf8               Ldev/langchain4j/model/language/TokenCountEstimatorTest;\n-  #25 = Utf8               test\n-  #26 = Utf8               estimator\n-  #27 = Utf8               Ldev/langchain4j/model/language/TokenCountEstimator;\n-  #28 = Utf8               RuntimeVisibleAnnotations\n-  #29 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #30 = Utf8               SourceFile\n-  #31 = Utf8               TokenCountEstimatorTest.java\n-  #32 = NameAndType        #18:#19        // \"<init>\":()V\n-  #33 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n-  #34 = Utf8               foo bar, baz\n-  #35 = Class              #49            // dev/langchain4j/model/language/TokenCountEstimator\n-  #36 = NameAndType        #50:#51        // estimateTokenCount:(Ljava/lang/String;)I\n-  #37 = NameAndType        #52:#53        // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #38 = Class              #54            // org/assertj/core/api/AbstractIntegerAssert\n-  #39 = NameAndType        #55:#53        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #40 = Utf8               dev/langchain4j/model/input/Prompt\n-  #41 = NameAndType        #18:#56        // \"<init>\":(Ljava/lang/String;)V\n-  #42 = NameAndType        #50:#57        // estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n-  #43 = Class              #58            // dev/langchain4j/data/segment/TextSegment\n-  #44 = NameAndType        #59:#60        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #45 = NameAndType        #50:#61        // estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-  #46 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest\n-  #47 = Utf8               java/lang/Object\n-  #48 = Utf8               org/assertj/core/api/WithAssertions\n-  #49 = Utf8               dev/langchain4j/model/language/TokenCountEstimator\n-  #50 = Utf8               estimateTokenCount\n-  #51 = Utf8               (Ljava/lang/String;)I\n-  #52 = Utf8               assertThat\n-  #53 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #54 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n-  #55 = Utf8               isEqualTo\n-  #56 = Utf8               (Ljava/lang/String;)V\n-  #57 = Utf8               (Ldev/langchain4j/model/input/Prompt;)I\n-  #58 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #59 = Utf8               from\n-  #60 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #61 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+   #8 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n+  #10 = String             #11            // foo bar, baz\n+  #11 = Utf8               foo bar, baz\n+  #12 = InterfaceMethodref #13.#14        // dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n+  #13 = Class              #15            // dev/langchain4j/model/language/TokenCountEstimator\n+  #14 = NameAndType        #16:#17        // estimateTokenCount:(Ljava/lang/String;)I\n+  #15 = Utf8               dev/langchain4j/model/language/TokenCountEstimator\n+  #16 = Utf8               estimateTokenCount\n+  #17 = Utf8               (Ljava/lang/String;)I\n+  #18 = Methodref          #19.#20        // dev/langchain4j/model/language/TokenCountEstimatorTest.assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #19 = Class              #21            // dev/langchain4j/model/language/TokenCountEstimatorTest\n+  #20 = NameAndType        #22:#23        // assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #21 = Utf8               dev/langchain4j/model/language/TokenCountEstimatorTest\n+  #22 = Utf8               assertThat\n+  #23 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #24 = Methodref          #25.#26        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #25 = Class              #27            // org/assertj/core/api/AbstractIntegerAssert\n+  #26 = NameAndType        #28:#23        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #27 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n+  #28 = Utf8               isEqualTo\n+  #29 = Class              #30            // dev/langchain4j/model/input/Prompt\n+  #30 = Utf8               dev/langchain4j/model/input/Prompt\n+  #31 = Methodref          #29.#32        // dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+  #32 = NameAndType        #5:#33         // \"<init>\":(Ljava/lang/String;)V\n+  #33 = Utf8               (Ljava/lang/String;)V\n+  #34 = InterfaceMethodref #13.#35        // dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n+  #35 = NameAndType        #16:#36        // estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n+  #36 = Utf8               (Ldev/langchain4j/model/input/Prompt;)I\n+  #37 = Methodref          #38.#39        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #38 = Class              #40            // dev/langchain4j/data/segment/TextSegment\n+  #39 = NameAndType        #41:#42        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #40 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #41 = Utf8               from\n+  #42 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #43 = InterfaceMethodref #13.#44        // dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #44 = NameAndType        #16:#45        // estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+  #45 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)I\n+  #46 = Class              #47            // org/assertj/core/api/WithAssertions\n+  #47 = Utf8               org/assertj/core/api/WithAssertions\n+  #48 = Utf8               Code\n+  #49 = Utf8               LineNumberTable\n+  #50 = Utf8               LocalVariableTable\n+  #51 = Utf8               this\n+  #52 = Utf8               Ldev/langchain4j/model/language/TokenCountEstimatorTest;\n+  #53 = Utf8               test\n+  #54 = Utf8               estimator\n+  #55 = Utf8               Ldev/langchain4j/model/language/TokenCountEstimator;\n+  #56 = Utf8               RuntimeVisibleAnnotations\n+  #57 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #58 = Utf8               SourceFile\n+  #59 = Utf8               TokenCountEstimatorTest.java\n+  #60 = Utf8               InnerClasses\n+  #61 = Utf8               WhitespaceSplitTokenCountEstimator\n {\n   dev.langchain4j.model.language.TokenCountEstimatorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -85,57 +85,57 @@\n             0       5     0  this   Ldev/langchain4j/model/language/TokenCountEstimatorTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n+         0: new           #7                  // class dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String foo bar, baz\n-        12: invokeinterface #5,  2            // InterfaceMethod dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n-        17: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        10: ldc           #10                 // String foo bar, baz\n+        12: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ljava/lang/String;)I\n+        17: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         20: iconst_3\n-        21: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        21: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         24: pop\n         25: aload_0\n         26: aload_1\n-        27: new           #8                  // class dev/langchain4j/model/input/Prompt\n+        27: new           #29                 // class dev/langchain4j/model/input/Prompt\n         30: dup\n-        31: ldc           #4                  // String foo bar, baz\n-        33: invokespecial #9                  // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n-        36: invokeinterface #10,  2           // InterfaceMethod dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n-        41: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        31: ldc           #10                 // String foo bar, baz\n+        33: invokespecial #31                 // Method dev/langchain4j/model/input/Prompt.\"<init>\":(Ljava/lang/String;)V\n+        36: invokeinterface #34,  2           // InterfaceMethod dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/model/input/Prompt;)I\n+        41: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         44: iconst_3\n-        45: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        45: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         48: pop\n         49: aload_0\n         50: aload_1\n-        51: ldc           #4                  // String foo bar, baz\n-        53: invokestatic  #11                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        56: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n-        61: invokevirtual #6                  // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        51: ldc           #10                 // String foo bar, baz\n+        53: invokestatic  #37                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        56: invokeinterface #43,  2           // InterfaceMethod dev/langchain4j/model/language/TokenCountEstimator.estimateTokenCount:(Ldev/langchain4j/data/segment/TextSegment;)I\n+        61: invokevirtual #18                 // Method assertThat:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         64: iconst_3\n-        65: invokevirtual #7                  // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        65: invokevirtual #24                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         68: pop\n         69: return\n       LineNumberTable:\n         line 18: 0\n         line 20: 8\n         line 21: 25\n         line 22: 49\n         line 23: 69\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      70     0  this   Ldev/langchain4j/model/language/TokenCountEstimatorTest;\n             8      62     1 estimator   Ldev/langchain4j/model/language/TokenCountEstimator;\n     RuntimeVisibleAnnotations:\n-      0: #29()\n+      0: #57()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TokenCountEstimatorTest.java\"\n InnerClasses:\n-  public static #16= #2 of #13;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/language/TokenCountEstimatorTest\n+  public static #61= #7 of #19;           // WhitespaceSplitTokenCountEstimator=class dev/langchain4j/model/language/TokenCountEstimatorTest$WhitespaceSplitTokenCountEstimator of class dev/langchain4j/model/language/TokenCountEstimatorTest\n"}]}, {"source1": "dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.class", "source2": "dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,73 +1,73 @@\n-  SHA-256 checksum cf3b1a3ff9fa09079ce5f5e48d3ac4cabd44c8562f642d55aca67cfb206ab2a5\n+  SHA-256 checksum 27821536da941f75be6d8c480b6f4bf5f64b75c3282649c78df18fbd1609bd29\n   Compiled from \"ModerationModelTest.java\"\n public class dev.langchain4j.model.moderation.ModerationModelTest$FlagEverythingModel implements dev.langchain4j.model.moderation.ModerationModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #7                          // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n-  super_class: #8                         // java/lang/Object\n+  this_class: #31                         // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 2\n Constant pool:\n-   #1 = Methodref          #8.#33         // java/lang/Object.\"<init>\":()V\n-   #2 = Methodref          #34.#35        // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-   #3 = Methodref          #36.#37        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #4 = InterfaceMethodref #38.#39        // java/util/List.get:(I)Ljava/lang/Object;\n-   #5 = Class              #40            // dev/langchain4j/data/message/ChatMessage\n-   #6 = InterfaceMethodref #5.#41         // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-   #7 = Class              #43            // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n-   #8 = Class              #44            // java/lang/Object\n-   #9 = Class              #45            // dev/langchain4j/model/moderation/ModerationModel\n-  #10 = Utf8               <init>\n-  #11 = Utf8               ()V\n-  #12 = Utf8               Code\n-  #13 = Utf8               LineNumberTable\n-  #14 = Utf8               LocalVariableTable\n-  #15 = Utf8               this\n-  #16 = Utf8               FlagEverythingModel\n-  #17 = Utf8               InnerClasses\n-  #18 = Utf8               Ldev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel;\n-  #19 = Utf8               moderate\n-  #20 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #21 = Utf8               text\n-  #22 = Utf8               Ljava/lang/String;\n-  #23 = Utf8               Signature\n-  #24 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n-  #25 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #26 = Utf8               messages\n-  #27 = Utf8               Ljava/util/List;\n-  #28 = Utf8               LocalVariableTypeTable\n-  #29 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #30 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n-  #31 = Utf8               SourceFile\n-  #32 = Utf8               ModerationModelTest.java\n-  #33 = NameAndType        #10:#11        // \"<init>\":()V\n-  #34 = Class              #46            // dev/langchain4j/model/moderation/Moderation\n-  #35 = NameAndType        #47:#48        // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-  #36 = Class              #49            // dev/langchain4j/model/output/Response\n-  #37 = NameAndType        #50:#51        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #38 = Class              #52            // java/util/List\n-  #39 = NameAndType        #53:#54        // get:(I)Ljava/lang/Object;\n-  #40 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #41 = NameAndType        #21:#55        // text:()Ljava/lang/String;\n-  #42 = Class              #56            // dev/langchain4j/model/moderation/ModerationModelTest\n-  #43 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n-  #44 = Utf8               java/lang/Object\n-  #45 = Utf8               dev/langchain4j/model/moderation/ModerationModel\n-  #46 = Utf8               dev/langchain4j/model/moderation/Moderation\n-  #47 = Utf8               flagged\n-  #48 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-  #49 = Utf8               dev/langchain4j/model/output/Response\n-  #50 = Utf8               from\n-  #51 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #52 = Utf8               java/util/List\n-  #53 = Utf8               get\n-  #54 = Utf8               (I)Ljava/lang/Object;\n-  #55 = Utf8               ()Ljava/lang/String;\n-  #56 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Methodref          #8.#9          // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+   #8 = Class              #10            // dev/langchain4j/model/moderation/Moderation\n+   #9 = NameAndType        #11:#12        // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #10 = Utf8               dev/langchain4j/model/moderation/Moderation\n+  #11 = Utf8               flagged\n+  #12 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #13 = Methodref          #14.#15        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #14 = Class              #16            // dev/langchain4j/model/output/Response\n+  #15 = NameAndType        #17:#18        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #16 = Utf8               dev/langchain4j/model/output/Response\n+  #17 = Utf8               from\n+  #18 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #19 = InterfaceMethodref #20.#21        // java/util/List.get:(I)Ljava/lang/Object;\n+  #20 = Class              #22            // java/util/List\n+  #21 = NameAndType        #23:#24        // get:(I)Ljava/lang/Object;\n+  #22 = Utf8               java/util/List\n+  #23 = Utf8               get\n+  #24 = Utf8               (I)Ljava/lang/Object;\n+  #25 = Class              #26            // dev/langchain4j/data/message/ChatMessage\n+  #26 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #27 = InterfaceMethodref #25.#28        // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+  #28 = NameAndType        #29:#30        // text:()Ljava/lang/String;\n+  #29 = Utf8               text\n+  #30 = Utf8               ()Ljava/lang/String;\n+  #31 = Class              #32            // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+  #32 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+  #33 = Class              #34            // dev/langchain4j/model/moderation/ModerationModel\n+  #34 = Utf8               dev/langchain4j/model/moderation/ModerationModel\n+  #35 = Utf8               Code\n+  #36 = Utf8               LineNumberTable\n+  #37 = Utf8               LocalVariableTable\n+  #38 = Utf8               this\n+  #39 = Utf8               Ldev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel;\n+  #40 = Utf8               moderate\n+  #41 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #42 = Utf8               Ljava/lang/String;\n+  #43 = Utf8               Signature\n+  #44 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+  #45 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #46 = Utf8               messages\n+  #47 = Utf8               Ljava/util/List;\n+  #48 = Utf8               LocalVariableTypeTable\n+  #49 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #50 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+  #51 = Utf8               SourceFile\n+  #52 = Utf8               ModerationModelTest.java\n+  #53 = Utf8               InnerClasses\n+  #54 = Class              #55            // dev/langchain4j/model/moderation/ModerationModelTest\n+  #55 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest\n+  #56 = Utf8               FlagEverythingModel\n {\n   public dev.langchain4j.model.moderation.ModerationModelTest$FlagEverythingModel();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -81,45 +81,45 @@\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.model.moderation.Moderation> moderate(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=2, args_size=2\n          0: aload_1\n-         1: invokestatic  #2                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-         4: invokestatic  #3                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+         1: invokestatic  #7                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+         4: invokestatic  #13                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n          7: areturn\n       LineNumberTable:\n         line 18: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel;\n             0       8     1  text   Ljava/lang/String;\n-    Signature: #24                          // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+    Signature: #44                          // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.model.moderation.Moderation> moderate(java.util.List<dev.langchain4j.data.message.ChatMessage>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_1\n          1: iconst_0\n-         2: invokeinterface #4,  2            // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-         7: checkcast     #5                  // class dev/langchain4j/data/message/ChatMessage\n-        10: invokeinterface #6,  1            // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-        15: invokestatic  #2                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-        18: invokestatic  #3                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+         2: invokeinterface #19,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+         7: checkcast     #25                 // class dev/langchain4j/data/message/ChatMessage\n+        10: invokeinterface #27,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+        15: invokestatic  #7                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+        18: invokestatic  #13                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n         21: areturn\n       LineNumberTable:\n         line 23: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      22     0  this   Ldev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel;\n             0      22     1 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      22     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-    Signature: #30                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+    Signature: #50                          // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n }\n SourceFile: \"ModerationModelTest.java\"\n InnerClasses:\n-  public static #16= #7 of #42;           // FlagEverythingModel=class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel of class dev/langchain4j/model/moderation/ModerationModelTest\n+  public static #56= #31 of #54;          // FlagEverythingModel=class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel of class dev/langchain4j/model/moderation/ModerationModelTest\n"}]}, {"source1": "dev/langchain4j/model/moderation/ModerationModelTest.class", "source2": "dev/langchain4j/model/moderation/ModerationModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,101 +1,101 @@\n-  SHA-256 checksum ff3454b98b678dc1d7544ea84604213c18457caf8e14e7a668ed05a59f4a583b\n+  SHA-256 checksum 2c64ff573c0c9230cad21c3b35d0ec5d180b1457ef591a8eeb9c0f61b840e6d5\n   Compiled from \"ModerationModelTest.java\"\n class dev.langchain4j.model.moderation.ModerationModelTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #15                         // dev/langchain4j/model/moderation/ModerationModelTest\n-  super_class: #16                        // java/lang/Object\n+  this_class: #25                         // dev/langchain4j/model/moderation/ModerationModelTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 2\n Constant pool:\n-   #1 = Methodref          #16.#40        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #41            // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n-   #3 = Methodref          #2.#40         // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n-   #4 = String             #42            // Hello, world!\n-   #5 = Methodref          #43.#44        // dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-   #6 = InterfaceMethodref #45.#46        // dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-   #7 = Methodref          #15.#47        // dev/langchain4j/model/moderation/ModerationModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #8 = Methodref          #48.#49        // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-   #9 = Methodref          #50.#51        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #10 = Methodref          #52.#53        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #11 = Methodref          #54.#55        // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #12 = InterfaceMethodref #45.#56        // dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n-  #13 = Methodref          #57.#58        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #14 = InterfaceMethodref #45.#59        // dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n-  #15 = Class              #60            // dev/langchain4j/model/moderation/ModerationModelTest\n-  #16 = Class              #61            // java/lang/Object\n-  #17 = Class              #62            // org/assertj/core/api/WithAssertions\n-  #18 = Utf8               FlagEverythingModel\n-  #19 = Utf8               InnerClasses\n-  #20 = Utf8               <init>\n-  #21 = Utf8               ()V\n-  #22 = Utf8               Code\n-  #23 = Utf8               LineNumberTable\n-  #24 = Utf8               LocalVariableTable\n-  #25 = Utf8               this\n-  #26 = Utf8               Ldev/langchain4j/model/moderation/ModerationModelTest;\n-  #27 = Utf8               test_moderate_prompt\n-  #28 = Utf8               model\n-  #29 = Utf8               Ldev/langchain4j/model/moderation/ModerationModel;\n-  #30 = Utf8               response\n-  #31 = Utf8               Ldev/langchain4j/model/output/Response;\n-  #32 = Utf8               LocalVariableTypeTable\n-  #33 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n-  #34 = Utf8               RuntimeVisibleAnnotations\n-  #35 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #36 = Utf8               test_moderate_chat_message\n-  #37 = Utf8               test_moderate_TextSegment\n-  #38 = Utf8               SourceFile\n-  #39 = Utf8               ModerationModelTest.java\n-  #40 = NameAndType        #20:#21        // \"<init>\":()V\n-  #41 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n-  #42 = Utf8               Hello, world!\n-  #43 = Class              #63            // dev/langchain4j/model/input/Prompt\n-  #44 = NameAndType        #64:#65        // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-  #45 = Class              #66            // dev/langchain4j/model/moderation/ModerationModel\n-  #46 = NameAndType        #67:#68        // moderate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-  #47 = NameAndType        #69:#70        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #48 = Class              #71            // dev/langchain4j/model/moderation/Moderation\n-  #49 = NameAndType        #72:#73        // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-  #50 = Class              #74            // dev/langchain4j/model/output/Response\n-  #51 = NameAndType        #64:#75        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #52 = Class              #76            // org/assertj/core/api/ObjectAssert\n-  #53 = NameAndType        #77:#78        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #54 = Class              #79            // dev/langchain4j/data/message/UserMessage\n-  #55 = NameAndType        #64:#80        // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #56 = NameAndType        #67:#81        // moderate:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n-  #57 = Class              #82            // dev/langchain4j/data/segment/TextSegment\n-  #58 = NameAndType        #64:#83        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #59 = NameAndType        #67:#84        // moderate:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n-  #60 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest\n-  #61 = Utf8               java/lang/Object\n-  #62 = Utf8               org/assertj/core/api/WithAssertions\n-  #63 = Utf8               dev/langchain4j/model/input/Prompt\n-  #64 = Utf8               from\n-  #65 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-  #66 = Utf8               dev/langchain4j/model/moderation/ModerationModel\n-  #67 = Utf8               moderate\n-  #68 = Utf8               (Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n-  #69 = Utf8               assertThat\n-  #70 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #71 = Utf8               dev/langchain4j/model/moderation/Moderation\n-  #72 = Utf8               flagged\n-  #73 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-  #74 = Utf8               dev/langchain4j/model/output/Response\n-  #75 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #76 = Utf8               org/assertj/core/api/ObjectAssert\n-  #77 = Utf8               isEqualTo\n-  #78 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #79 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #80 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #81 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n-  #82 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #83 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #84 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+   #8 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n+  #10 = String             #11            // Hello, world!\n+  #11 = Utf8               Hello, world!\n+  #12 = Methodref          #13.#14        // dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+  #13 = Class              #15            // dev/langchain4j/model/input/Prompt\n+  #14 = NameAndType        #16:#17        // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+  #15 = Utf8               dev/langchain4j/model/input/Prompt\n+  #16 = Utf8               from\n+  #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+  #18 = InterfaceMethodref #19.#20        // dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+  #19 = Class              #21            // dev/langchain4j/model/moderation/ModerationModel\n+  #20 = NameAndType        #22:#23        // moderate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+  #21 = Utf8               dev/langchain4j/model/moderation/ModerationModel\n+  #22 = Utf8               moderate\n+  #23 = Utf8               (Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+  #24 = Methodref          #25.#26        // dev/langchain4j/model/moderation/ModerationModelTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #25 = Class              #27            // dev/langchain4j/model/moderation/ModerationModelTest\n+  #26 = NameAndType        #28:#29        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #27 = Utf8               dev/langchain4j/model/moderation/ModerationModelTest\n+  #28 = Utf8               assertThat\n+  #29 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #30 = Methodref          #31.#32        // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #31 = Class              #33            // dev/langchain4j/model/moderation/Moderation\n+  #32 = NameAndType        #34:#35        // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #33 = Utf8               dev/langchain4j/model/moderation/Moderation\n+  #34 = Utf8               flagged\n+  #35 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #36 = Methodref          #37.#38        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #37 = Class              #39            // dev/langchain4j/model/output/Response\n+  #38 = NameAndType        #16:#40        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #39 = Utf8               dev/langchain4j/model/output/Response\n+  #40 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #41 = Methodref          #42.#43        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #42 = Class              #44            // org/assertj/core/api/ObjectAssert\n+  #43 = NameAndType        #45:#46        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #44 = Utf8               org/assertj/core/api/ObjectAssert\n+  #45 = Utf8               isEqualTo\n+  #46 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #47 = Methodref          #48.#49        // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #48 = Class              #50            // dev/langchain4j/data/message/UserMessage\n+  #49 = NameAndType        #16:#51        // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #50 = Utf8               dev/langchain4j/data/message/UserMessage\n+  #51 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #52 = InterfaceMethodref #19.#53        // dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+  #53 = NameAndType        #22:#54        // moderate:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+  #54 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+  #55 = Methodref          #56.#57        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #56 = Class              #58            // dev/langchain4j/data/segment/TextSegment\n+  #57 = NameAndType        #16:#59        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #58 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #59 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #60 = InterfaceMethodref #19.#61        // dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n+  #61 = NameAndType        #22:#62        // moderate:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n+  #62 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n+  #63 = Class              #64            // org/assertj/core/api/WithAssertions\n+  #64 = Utf8               org/assertj/core/api/WithAssertions\n+  #65 = Utf8               Code\n+  #66 = Utf8               LineNumberTable\n+  #67 = Utf8               LocalVariableTable\n+  #68 = Utf8               this\n+  #69 = Utf8               Ldev/langchain4j/model/moderation/ModerationModelTest;\n+  #70 = Utf8               test_moderate_prompt\n+  #71 = Utf8               model\n+  #72 = Utf8               Ldev/langchain4j/model/moderation/ModerationModel;\n+  #73 = Utf8               response\n+  #74 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #75 = Utf8               LocalVariableTypeTable\n+  #76 = Utf8               Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+  #77 = Utf8               RuntimeVisibleAnnotations\n+  #78 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #79 = Utf8               test_moderate_chat_message\n+  #80 = Utf8               test_moderate_TextSegment\n+  #81 = Utf8               SourceFile\n+  #82 = Utf8               ModerationModelTest.java\n+  #83 = Utf8               InnerClasses\n+  #84 = Utf8               FlagEverythingModel\n {\n   dev.langchain4j.model.moderation.ModerationModelTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -108,30 +108,30 @@\n             0       5     0  this   Ldev/langchain4j/model/moderation/ModerationModelTest;\n \n   public void test_moderate_prompt();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+         0: new           #7                  // class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String Hello, world!\n-        11: invokestatic  #5                  // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n-        14: invokeinterface #6,  2            // InterfaceMethod dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n+         9: ldc           #10                 // String Hello, world!\n+        11: invokestatic  #12                 // Method dev/langchain4j/model/input/Prompt.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/Prompt;\n+        14: invokeinterface #18,  2           // InterfaceMethod dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/model/input/Prompt;)Ldev/langchain4j/model/output/Response;\n         19: astore_2\n         20: aload_0\n         21: aload_2\n-        22: invokevirtual #7                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        25: ldc           #4                  // String Hello, world!\n-        27: invokestatic  #8                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-        30: invokestatic  #9                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-        33: invokevirtual #10                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        22: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        25: ldc           #10                 // String Hello, world!\n+        27: invokestatic  #30                 // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+        30: invokestatic  #36                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+        33: invokevirtual #41                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         36: pop\n         37: return\n       LineNumberTable:\n         line 29: 0\n         line 30: 8\n         line 31: 20\n         line 32: 37\n@@ -140,38 +140,38 @@\n             0      38     0  this   Ldev/langchain4j/model/moderation/ModerationModelTest;\n             8      30     1 model   Ldev/langchain4j/model/moderation/ModerationModel;\n            20      18     2 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            20      18     2 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #78()\n         org.junit.jupiter.api.Test\n \n   public void test_moderate_chat_message();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+         0: new           #7                  // class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String Hello, world!\n-        11: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-        14: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n+         9: ldc           #10                 // String Hello, world!\n+        11: invokestatic  #47                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        14: invokeinterface #52,  2           // InterfaceMethod dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/langchain4j/model/output/Response;\n         19: astore_2\n         20: aload_0\n         21: aload_2\n-        22: invokevirtual #7                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        25: ldc           #4                  // String Hello, world!\n-        27: invokestatic  #8                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-        30: invokestatic  #9                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-        33: invokevirtual #10                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        22: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        25: ldc           #10                 // String Hello, world!\n+        27: invokestatic  #30                 // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+        30: invokestatic  #36                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+        33: invokevirtual #41                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         36: pop\n         37: return\n       LineNumberTable:\n         line 36: 0\n         line 37: 8\n         line 38: 11\n         line 37: 14\n@@ -182,38 +182,38 @@\n             0      38     0  this   Ldev/langchain4j/model/moderation/ModerationModelTest;\n             8      30     1 model   Ldev/langchain4j/model/moderation/ModerationModel;\n            20      18     2 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            20      18     2 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #78()\n         org.junit.jupiter.api.Test\n \n   public void test_moderate_TextSegment();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n+         0: new           #7                  // class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #4                  // String Hello, world!\n-        11: invokestatic  #13                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        14: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n+         9: ldc           #10                 // String Hello, world!\n+        11: invokestatic  #55                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        14: invokeinterface #60,  2           // InterfaceMethod dev/langchain4j/model/moderation/ModerationModel.moderate:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/model/output/Response;\n         19: astore_2\n         20: aload_0\n         21: aload_2\n-        22: invokevirtual #7                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        25: ldc           #4                  // String Hello, world!\n-        27: invokestatic  #8                  // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-        30: invokestatic  #9                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-        33: invokevirtual #10                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        22: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        25: ldc           #10                 // String Hello, world!\n+        27: invokestatic  #30                 // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+        30: invokestatic  #36                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+        33: invokevirtual #41                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         36: pop\n         37: return\n       LineNumberTable:\n         line 44: 0\n         line 45: 8\n         line 46: 11\n         line 45: 14\n@@ -224,13 +224,13 @@\n             0      38     0  this   Ldev/langchain4j/model/moderation/ModerationModelTest;\n             8      30     1 model   Ldev/langchain4j/model/moderation/ModerationModel;\n            20      18     2 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            20      18     2 response   Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #78()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ModerationModelTest.java\"\n InnerClasses:\n-  public static #18= #2 of #15;           // FlagEverythingModel=class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel of class dev/langchain4j/model/moderation/ModerationModelTest\n+  public static #84= #7 of #25;           // FlagEverythingModel=class dev/langchain4j/model/moderation/ModerationModelTest$FlagEverythingModel of class dev/langchain4j/model/moderation/ModerationModelTest\n"}]}, {"source1": "dev/langchain4j/model/moderation/ModerationTest.class", "source2": "dev/langchain4j/model/moderation/ModerationTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,120 +1,120 @@\n-  SHA-256 checksum 9253515e3405cb0ca4e6fec169a76ba50105cdd386f8e24fded58584b69b4621\n+  SHA-256 checksum 67b264bcc84002573edea2d135a3a8633b90c8cc0365f3f63ce99ab39c5c1b49\n   Compiled from \"ModerationTest.java\"\n class dev.langchain4j.model.moderation.ModerationTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #27                         // dev/langchain4j/model/moderation/ModerationTest\n-  super_class: #22                        // java/lang/Object\n+  this_class: #15                         // dev/langchain4j/model/moderation/ModerationTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 1\n Constant pool:\n-    #1 = Methodref          #22.#51       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #52           // dev/langchain4j/model/moderation/Moderation\n-    #3 = Methodref          #2.#51        // dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n-    #4 = Methodref          #2.#53        // dev/langchain4j/model/moderation/Moderation.flagged:()Z\n-    #5 = Methodref          #27.#54       // dev/langchain4j/model/moderation/ModerationTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-    #6 = Methodref          #55.#56       // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-    #7 = Methodref          #2.#57        // dev/langchain4j/model/moderation/Moderation.flaggedText:()Ljava/lang/String;\n-    #8 = Methodref          #27.#58       // dev/langchain4j/model/moderation/ModerationTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #9 = Methodref          #59.#60       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n-   #10 = Methodref          #27.#61       // dev/langchain4j/model/moderation/ModerationTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #11 = String             #62           // Moderation { flagged = false, flaggedText = null }\n-   #12 = Methodref          #20.#63       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #13 = String             #64           // flaggedText\n-   #14 = Methodref          #2.#65        // dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n-   #15 = Methodref          #55.#66       // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #16 = Methodref          #59.#67       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #17 = String             #68           // Moderation { flagged = true, flaggedText = \\\"flaggedText\\\" }\n-   #18 = String             #69           // other text\n-   #19 = Methodref          #20.#70       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #20 = Class              #71           // org/assertj/core/api/ObjectAssert\n-   #21 = Methodref          #20.#72       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #22 = Class              #73           // java/lang/Object\n-   #23 = Methodref          #20.#74       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #24 = Methodref          #20.#75       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #25 = Methodref          #2.#76        // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-   #26 = Methodref          #2.#77        // dev/langchain4j/model/moderation/Moderation.notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n-   #27 = Class              #78           // dev/langchain4j/model/moderation/ModerationTest\n-   #28 = Class              #79           // org/assertj/core/api/WithAssertions\n-   #29 = Utf8               <init>\n-   #30 = Utf8               ()V\n-   #31 = Utf8               Code\n-   #32 = Utf8               LineNumberTable\n-   #33 = Utf8               LocalVariableTable\n-   #34 = Utf8               this\n-   #35 = Utf8               Ldev/langchain4j/model/moderation/ModerationTest;\n-   #36 = Utf8               test_methods\n-   #37 = Utf8               moderation\n-   #38 = Utf8               Ldev/langchain4j/model/moderation/Moderation;\n-   #39 = Utf8               RuntimeVisibleAnnotations\n-   #40 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #41 = Utf8               test_equals_hashCode\n-   #42 = Utf8               flagged1\n-   #43 = Utf8               flagged2\n-   #44 = Utf8               unflagged1\n-   #45 = Utf8               unflagged2\n-   #46 = Utf8               flagged3\n-   #47 = Utf8               flagged4\n-   #48 = Utf8               test_builders\n-   #49 = Utf8               SourceFile\n-   #50 = Utf8               ModerationTest.java\n-   #51 = NameAndType        #29:#30       // \"<init>\":()V\n-   #52 = Utf8               dev/langchain4j/model/moderation/Moderation\n-   #53 = NameAndType        #80:#81       // flagged:()Z\n-   #54 = NameAndType        #82:#83       // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #55 = Class              #84           // org/assertj/core/api/AbstractBooleanAssert\n-   #56 = NameAndType        #85:#86       // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #57 = NameAndType        #64:#87       // flaggedText:()Ljava/lang/String;\n-   #58 = NameAndType        #82:#88       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #59 = Class              #89           // org/assertj/core/api/AbstractStringAssert\n-   #60 = NameAndType        #90:#30       // isNull:()V\n-   #61 = NameAndType        #82:#91       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #62 = Utf8               Moderation { flagged = false, flaggedText = null }\n-   #63 = NameAndType        #92:#93       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #64 = Utf8               flaggedText\n-   #65 = NameAndType        #29:#94       // \"<init>\":(Ljava/lang/String;)V\n-   #66 = NameAndType        #95:#86       // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #67 = NameAndType        #96:#88       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #68 = Utf8               Moderation { flagged = true, flaggedText = \\\"flaggedText\\\" }\n-   #69 = Utf8               other text\n-   #70 = NameAndType        #96:#97       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #71 = Utf8               org/assertj/core/api/ObjectAssert\n-   #72 = NameAndType        #98:#97       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #73 = Utf8               java/lang/Object\n-   #74 = NameAndType        #99:#97       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #75 = NameAndType        #100:#97      // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #76 = NameAndType        #80:#101      // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-   #77 = NameAndType        #102:#103     // notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n-   #78 = Utf8               dev/langchain4j/model/moderation/ModerationTest\n-   #79 = Utf8               org/assertj/core/api/WithAssertions\n-   #80 = Utf8               flagged\n-   #81 = Utf8               ()Z\n-   #82 = Utf8               assertThat\n-   #83 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #84 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n-   #85 = Utf8               isFalse\n-   #86 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n-   #87 = Utf8               ()Ljava/lang/String;\n-   #88 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #89 = Utf8               org/assertj/core/api/AbstractStringAssert\n-   #90 = Utf8               isNull\n-   #91 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #92 = Utf8               hasToString\n-   #93 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #94 = Utf8               (Ljava/lang/String;)V\n-   #95 = Utf8               isTrue\n-   #96 = Utf8               isEqualTo\n-   #97 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #98 = Utf8               isNotEqualTo\n-   #99 = Utf8               hasSameHashCodeAs\n-  #100 = Utf8               doesNotHaveSameHashCodeAs\n-  #101 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-  #102 = Utf8               notFlagged\n-  #103 = Utf8               ()Ldev/langchain4j/model/moderation/Moderation;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/moderation/Moderation\n+    #8 = Utf8               dev/langchain4j/model/moderation/Moderation\n+    #9 = Methodref          #7.#3         // dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n+   #10 = Methodref          #7.#11        // dev/langchain4j/model/moderation/Moderation.flagged:()Z\n+   #11 = NameAndType        #12:#13       // flagged:()Z\n+   #12 = Utf8               flagged\n+   #13 = Utf8               ()Z\n+   #14 = Methodref          #15.#16       // dev/langchain4j/model/moderation/ModerationTest.assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #15 = Class              #17           // dev/langchain4j/model/moderation/ModerationTest\n+   #16 = NameAndType        #18:#19       // assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #17 = Utf8               dev/langchain4j/model/moderation/ModerationTest\n+   #18 = Utf8               assertThat\n+   #19 = Utf8               (Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #20 = Methodref          #21.#22       // org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #21 = Class              #23           // org/assertj/core/api/AbstractBooleanAssert\n+   #22 = NameAndType        #24:#25       // isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #23 = Utf8               org/assertj/core/api/AbstractBooleanAssert\n+   #24 = Utf8               isFalse\n+   #25 = Utf8               ()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #26 = Methodref          #7.#27        // dev/langchain4j/model/moderation/Moderation.flaggedText:()Ljava/lang/String;\n+   #27 = NameAndType        #28:#29       // flaggedText:()Ljava/lang/String;\n+   #28 = Utf8               flaggedText\n+   #29 = Utf8               ()Ljava/lang/String;\n+   #30 = Methodref          #15.#31       // dev/langchain4j/model/moderation/ModerationTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #31 = NameAndType        #18:#32       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #32 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #33 = Methodref          #34.#35       // org/assertj/core/api/AbstractStringAssert.isNull:()V\n+   #34 = Class              #36           // org/assertj/core/api/AbstractStringAssert\n+   #35 = NameAndType        #37:#6        // isNull:()V\n+   #36 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #37 = Utf8               isNull\n+   #38 = Methodref          #15.#39       // dev/langchain4j/model/moderation/ModerationTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #39 = NameAndType        #18:#40       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #40 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #41 = String             #42           // Moderation { flagged = false, flaggedText = null }\n+   #42 = Utf8               Moderation { flagged = false, flaggedText = null }\n+   #43 = Methodref          #44.#45       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #44 = Class              #46           // org/assertj/core/api/ObjectAssert\n+   #45 = NameAndType        #47:#48       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #46 = Utf8               org/assertj/core/api/ObjectAssert\n+   #47 = Utf8               hasToString\n+   #48 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #49 = String             #28           // flaggedText\n+   #50 = Methodref          #7.#51        // dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+   #51 = NameAndType        #5:#52        // \"<init>\":(Ljava/lang/String;)V\n+   #52 = Utf8               (Ljava/lang/String;)V\n+   #53 = Methodref          #21.#54       // org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #54 = NameAndType        #55:#25       // isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+   #55 = Utf8               isTrue\n+   #56 = Methodref          #34.#57       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #57 = NameAndType        #58:#32       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #58 = Utf8               isEqualTo\n+   #59 = String             #60           // Moderation { flagged = true, flaggedText = \\\"flaggedText\\\" }\n+   #60 = Utf8               Moderation { flagged = true, flaggedText = \\\"flaggedText\\\" }\n+   #61 = String             #62           // other text\n+   #62 = Utf8               other text\n+   #63 = Methodref          #44.#64       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #64 = NameAndType        #58:#65       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #65 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #66 = Methodref          #44.#67       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #67 = NameAndType        #68:#65       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #68 = Utf8               isNotEqualTo\n+   #69 = Methodref          #44.#70       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #70 = NameAndType        #71:#65       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #71 = Utf8               hasSameHashCodeAs\n+   #72 = Methodref          #44.#73       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #73 = NameAndType        #74:#65       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #74 = Utf8               doesNotHaveSameHashCodeAs\n+   #75 = Methodref          #7.#76        // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+   #76 = NameAndType        #12:#77       // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+   #77 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+   #78 = Methodref          #7.#79        // dev/langchain4j/model/moderation/Moderation.notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n+   #79 = NameAndType        #80:#81       // notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n+   #80 = Utf8               notFlagged\n+   #81 = Utf8               ()Ldev/langchain4j/model/moderation/Moderation;\n+   #82 = Class              #83           // org/assertj/core/api/WithAssertions\n+   #83 = Utf8               org/assertj/core/api/WithAssertions\n+   #84 = Utf8               Code\n+   #85 = Utf8               LineNumberTable\n+   #86 = Utf8               LocalVariableTable\n+   #87 = Utf8               this\n+   #88 = Utf8               Ldev/langchain4j/model/moderation/ModerationTest;\n+   #89 = Utf8               test_methods\n+   #90 = Utf8               moderation\n+   #91 = Utf8               Ldev/langchain4j/model/moderation/Moderation;\n+   #92 = Utf8               RuntimeVisibleAnnotations\n+   #93 = Utf8               Lorg/junit/jupiter/api/Test;\n+   #94 = Utf8               test_equals_hashCode\n+   #95 = Utf8               flagged1\n+   #96 = Utf8               flagged2\n+   #97 = Utf8               unflagged1\n+   #98 = Utf8               unflagged2\n+   #99 = Utf8               flagged3\n+  #100 = Utf8               flagged4\n+  #101 = Utf8               test_builders\n+  #102 = Utf8               SourceFile\n+  #103 = Utf8               ModerationTest.java\n {\n   dev.langchain4j.model.moderation.ModerationTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -127,58 +127,58 @@\n             0       5     0  this   Ldev/langchain4j/model/moderation/ModerationTest;\n \n   public void test_methods();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+         0: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: invokevirtual #4                  // Method dev/langchain4j/model/moderation/Moderation.flagged:()Z\n-        13: invokevirtual #5                  // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        16: invokevirtual #6                  // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        10: invokevirtual #10                 // Method dev/langchain4j/model/moderation/Moderation.flagged:()Z\n+        13: invokevirtual #14                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        16: invokevirtual #20                 // Method org/assertj/core/api/AbstractBooleanAssert.isFalse:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         19: pop\n         20: aload_0\n         21: aload_1\n-        22: invokevirtual #7                  // Method dev/langchain4j/model/moderation/Moderation.flaggedText:()Ljava/lang/String;\n-        25: invokevirtual #8                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        28: invokevirtual #9                  // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n+        22: invokevirtual #26                 // Method dev/langchain4j/model/moderation/Moderation.flaggedText:()Ljava/lang/String;\n+        25: invokevirtual #30                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        28: invokevirtual #33                 // Method org/assertj/core/api/AbstractStringAssert.isNull:()V\n         31: aload_0\n         32: aload_1\n-        33: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        36: ldc           #11                 // String Moderation { flagged = false, flaggedText = null }\n-        38: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        33: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        36: ldc           #41                 // String Moderation { flagged = false, flaggedText = null }\n+        38: invokevirtual #43                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         41: pop\n-        42: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        42: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         45: dup\n-        46: ldc           #13                 // String flaggedText\n-        48: invokespecial #14                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+        46: ldc           #49                 // String flaggedText\n+        48: invokespecial #50                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n         51: astore_1\n         52: aload_0\n         53: aload_1\n-        54: invokevirtual #4                  // Method dev/langchain4j/model/moderation/Moderation.flagged:()Z\n-        57: invokevirtual #5                  // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n-        60: invokevirtual #15                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n+        54: invokevirtual #10                 // Method dev/langchain4j/model/moderation/Moderation.flagged:()Z\n+        57: invokevirtual #14                 // Method assertThat:(Z)Lorg/assertj/core/api/AbstractBooleanAssert;\n+        60: invokevirtual #53                 // Method org/assertj/core/api/AbstractBooleanAssert.isTrue:()Lorg/assertj/core/api/AbstractBooleanAssert;\n         63: pop\n         64: aload_0\n         65: aload_1\n-        66: invokevirtual #7                  // Method dev/langchain4j/model/moderation/Moderation.flaggedText:()Ljava/lang/String;\n-        69: invokevirtual #8                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        72: ldc           #13                 // String flaggedText\n-        74: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        66: invokevirtual #26                 // Method dev/langchain4j/model/moderation/Moderation.flaggedText:()Ljava/lang/String;\n+        69: invokevirtual #30                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        72: ldc           #49                 // String flaggedText\n+        74: invokevirtual #56                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         77: pop\n         78: aload_0\n         79: aload_1\n-        80: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        83: ldc           #17                 // String Moderation { flagged = true, flaggedText = \\\"flaggedText\\\" }\n-        85: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        80: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        83: ldc           #59                 // String Moderation { flagged = true, flaggedText = \\\"flaggedText\\\" }\n+        85: invokevirtual #43                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         88: pop\n         89: return\n       LineNumberTable:\n         line 11: 0\n         line 12: 8\n         line 13: 20\n         line 14: 31\n@@ -191,131 +191,131 @@\n         line 24: 89\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             8      34     1 moderation   Ldev/langchain4j/model/moderation/Moderation;\n            52      37     1 moderation   Ldev/langchain4j/model/moderation/Moderation;\n             0      90     0  this   Ldev/langchain4j/model/moderation/ModerationTest;\n     RuntimeVisibleAnnotations:\n-      0: #40()\n+      0: #93()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=7, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+         0: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n          3: dup\n-         4: ldc           #13                 // String flaggedText\n-         6: invokespecial #14                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+         4: ldc           #49                 // String flaggedText\n+         6: invokespecial #50                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n          9: astore_1\n-        10: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        10: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         13: dup\n-        14: ldc           #13                 // String flaggedText\n-        16: invokespecial #14                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+        14: ldc           #49                 // String flaggedText\n+        16: invokespecial #50                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n         19: astore_2\n-        20: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        20: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         23: dup\n-        24: invokespecial #3                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n+        24: invokespecial #9                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n         27: astore_3\n-        28: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        28: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         31: dup\n-        32: invokespecial #3                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n+        32: invokespecial #9                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n         35: astore        4\n-        37: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        37: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         40: dup\n-        41: ldc           #18                 // String other text\n-        43: invokespecial #14                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+        41: ldc           #61                 // String other text\n+        43: invokespecial #50                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n         46: astore        5\n-        48: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        48: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         51: dup\n-        52: ldc           #18                 // String other text\n-        54: invokespecial #14                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+        52: ldc           #61                 // String other text\n+        54: invokespecial #50                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n         57: astore        6\n         59: aload_0\n         60: aload_3\n-        61: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        61: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         64: aload_3\n-        65: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        68: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+        65: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        68: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n         71: aconst_null\n-        72: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        75: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n-        78: new           #22                 // class java/lang/Object\n+        72: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        75: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n+        78: new           #2                  // class java/lang/Object\n         81: dup\n         82: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        85: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        88: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+        85: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        88: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n         91: aload         4\n-        93: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        96: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+        93: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        96: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n         99: aload         4\n-       101: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       104: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       101: invokevirtual #69                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       104: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        107: aload_1\n-       108: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       111: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       108: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       111: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        114: aload_1\n-       115: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       118: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       115: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       118: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        121: aload_2\n-       122: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       125: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       122: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       125: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        128: aload_2\n-       129: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       129: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        132: pop\n        133: aload_0\n        134: aload_1\n-       135: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       135: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        138: aload_1\n-       139: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       142: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       139: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       142: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        145: aconst_null\n-       146: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       149: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n-       152: new           #22                 // class java/lang/Object\n+       146: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       149: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n+       152: new           #2                  // class java/lang/Object\n        155: dup\n        156: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-       159: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       162: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       159: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       162: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        165: aload_2\n-       166: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       169: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       166: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       169: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        172: aload_2\n-       173: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       176: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       173: invokevirtual #69                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       176: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        179: aload_3\n-       180: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       183: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       180: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       183: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        186: aload_3\n-       187: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       190: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       187: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       190: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        193: aload         4\n-       195: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       198: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       195: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       198: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        201: aload         4\n-       203: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       206: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       203: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       206: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        209: aload         5\n-       211: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       214: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       211: invokevirtual #66                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       214: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        217: aload         5\n-       219: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       219: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        222: pop\n        223: aload_0\n        224: aload         5\n-       226: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       226: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        229: aload         5\n-       231: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       234: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       231: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       234: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        237: aload         6\n-       239: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       242: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+       239: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       242: checkcast     #44                 // class org/assertj/core/api/ObjectAssert\n        245: aload         6\n-       247: invokevirtual #23                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       247: invokevirtual #69                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        250: pop\n        251: return\n       LineNumberTable:\n         line 28: 0\n         line 29: 10\n         line 31: 20\n         line 32: 28\n@@ -354,48 +354,48 @@\n            10     242     1 flagged1   Ldev/langchain4j/model/moderation/Moderation;\n            20     232     2 flagged2   Ldev/langchain4j/model/moderation/Moderation;\n            28     224     3 unflagged1   Ldev/langchain4j/model/moderation/Moderation;\n            37     215     4 unflagged2   Ldev/langchain4j/model/moderation/Moderation;\n            48     204     5 flagged3   Ldev/langchain4j/model/moderation/Moderation;\n            59     193     6 flagged4   Ldev/langchain4j/model/moderation/Moderation;\n     RuntimeVisibleAnnotations:\n-      0: #40()\n+      0: #93()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+         1: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n          4: dup\n-         5: ldc           #13                 // String flaggedText\n-         7: invokespecial #14                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n-        10: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        13: ldc           #13                 // String flaggedText\n-        15: invokestatic  #25                 // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-        18: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         5: ldc           #49                 // String flaggedText\n+         7: invokespecial #50                 // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":(Ljava/lang/String;)V\n+        10: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        13: ldc           #49                 // String flaggedText\n+        15: invokestatic  #75                 // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+        18: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         21: pop\n         22: aload_0\n-        23: new           #2                  // class dev/langchain4j/model/moderation/Moderation\n+        23: new           #7                  // class dev/langchain4j/model/moderation/Moderation\n         26: dup\n-        27: invokespecial #3                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n-        30: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        33: invokestatic  #26                 // Method dev/langchain4j/model/moderation/Moderation.notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n-        36: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        27: invokespecial #9                  // Method dev/langchain4j/model/moderation/Moderation.\"<init>\":()V\n+        30: invokevirtual #38                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        33: invokestatic  #78                 // Method dev/langchain4j/model/moderation/Moderation.notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n+        36: invokevirtual #63                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         39: pop\n         40: return\n       LineNumberTable:\n         line 69: 0\n         line 70: 15\n         line 72: 22\n         line 73: 33\n         line 74: 40\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      41     0  this   Ldev/langchain4j/model/moderation/ModerationTest;\n     RuntimeVisibleAnnotations:\n-      0: #40()\n+      0: #93()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ModerationTest.java\"\n"}]}, {"source1": "dev/langchain4j/model/output/ResponseTest.class", "source2": "dev/langchain4j/model/output/ResponseTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,150 +1,150 @@\n-  SHA-256 checksum 911433d16210ecfc0b1bacec81f3c747aef535a063488b1d194f570374273191\n+  SHA-256 checksum 5b4c273863b0f5ddc6f0be7a53ca7060b61b715e4c598d827f8bd9d79c5e3f33\n   Compiled from \"ResponseTest.java\"\n class dev.langchain4j.model.output.ResponseTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #36                         // dev/langchain4j/model/output/ResponseTest\n-  super_class: #30                        // java/lang/Object\n+  this_class: #20                         // dev/langchain4j/model/output/ResponseTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 1\n Constant pool:\n-    #1 = Methodref          #30.#63       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #64           // dev/langchain4j/model/output/Response\n-    #3 = String             #65           // content\n-    #4 = Methodref          #2.#66        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-    #5 = Methodref          #2.#67        // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-    #6 = Class              #68           // java/lang/String\n-    #7 = Methodref          #36.#69       // dev/langchain4j/model/output/ResponseTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #8 = Methodref          #70.#71       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #9 = Methodref          #2.#72        // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-   #10 = Methodref          #36.#73       // dev/langchain4j/model/output/ResponseTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #11 = Methodref          #27.#74       // org/assertj/core/api/ObjectAssert.isNull:()V\n-   #12 = Methodref          #2.#75        // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-   #13 = Methodref          #36.#76       // dev/langchain4j/model/output/ResponseTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #14 = Methodref          #77.#74       // org/assertj/core/api/AbstractComparableAssert.isNull:()V\n-   #15 = String             #78           // Response { content = content, tokenUsage = null, finishReason = null }\n-   #16 = Methodref          #27.#79       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #17 = Class              #80           // dev/langchain4j/model/output/TokenUsage\n-   #18 = Methodref          #81.#82       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #19 = Methodref          #17.#83       // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-   #20 = Methodref          #2.#84        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-   #21 = Methodref          #27.#85       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #22 = String             #86           // Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = null }\n-   #23 = Fieldref           #87.#88       // dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-   #24 = Methodref          #77.#85       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #25 = String             #89           // Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = LENGTH }\n-   #26 = String             #90           // changed\n-   #27 = Class              #91           // org/assertj/core/api/ObjectAssert\n-   #28 = Methodref          #27.#92       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #29 = Methodref          #27.#93       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #30 = Class              #94           // java/lang/Object\n-   #31 = Methodref          #27.#95       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #32 = Fieldref           #87.#96       // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-   #33 = Methodref          #2.#97        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #34 = Methodref          #2.#98        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n-   #35 = Methodref          #2.#99        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-   #36 = Class              #100          // dev/langchain4j/model/output/ResponseTest\n-   #37 = Class              #101          // org/assertj/core/api/WithAssertions\n-   #38 = Utf8               <init>\n-   #39 = Utf8               ()V\n-   #40 = Utf8               Code\n-   #41 = Utf8               LineNumberTable\n-   #42 = Utf8               LocalVariableTable\n-   #43 = Utf8               this\n-   #44 = Utf8               Ldev/langchain4j/model/output/ResponseTest;\n-   #45 = Utf8               test_methods\n-   #46 = Utf8               response\n-   #47 = Utf8               Ldev/langchain4j/model/output/Response;\n-   #48 = Utf8               tokenUsage\n-   #49 = Utf8               Ldev/langchain4j/model/output/TokenUsage;\n-   #50 = Utf8               LocalVariableTypeTable\n-   #51 = Utf8               Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n-   #52 = Utf8               RuntimeVisibleAnnotations\n-   #53 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #54 = Utf8               test_equals_hashCode\n-   #55 = Utf8               content1\n-   #56 = Utf8               Ljava/lang/String;\n-   #57 = Utf8               content2\n-   #58 = Utf8               tokenUsage1\n-   #59 = Utf8               tokenUsage2\n-   #60 = Utf8               test_builders\n-   #61 = Utf8               SourceFile\n-   #62 = Utf8               ResponseTest.java\n-   #63 = NameAndType        #38:#39       // \"<init>\":()V\n-   #64 = Utf8               dev/langchain4j/model/output/Response\n-   #65 = Utf8               content\n-   #66 = NameAndType        #38:#102      // \"<init>\":(Ljava/lang/Object;)V\n-   #67 = NameAndType        #65:#103      // content:()Ljava/lang/Object;\n-   #68 = Utf8               java/lang/String\n-   #69 = NameAndType        #104:#105     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #70 = Class              #106          // org/assertj/core/api/AbstractStringAssert\n-   #71 = NameAndType        #107:#105     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #72 = NameAndType        #48:#108      // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-   #73 = NameAndType        #104:#109     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #74 = NameAndType        #110:#39      // isNull:()V\n-   #75 = NameAndType        #111:#112     // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-   #76 = NameAndType        #104:#113     // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-   #77 = Class              #114          // org/assertj/core/api/AbstractComparableAssert\n-   #78 = Utf8               Response { content = content, tokenUsage = null, finishReason = null }\n-   #79 = NameAndType        #115:#116     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #80 = Utf8               dev/langchain4j/model/output/TokenUsage\n-   #81 = Class              #117          // java/lang/Integer\n-   #82 = NameAndType        #118:#119     // valueOf:(I)Ljava/lang/Integer;\n-   #83 = NameAndType        #38:#120      // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-   #84 = NameAndType        #38:#121      // \"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-   #85 = NameAndType        #107:#122     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #86 = Utf8               Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = null }\n-   #87 = Class              #123          // dev/langchain4j/model/output/FinishReason\n-   #88 = NameAndType        #124:#125     // LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-   #89 = Utf8               Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = LENGTH }\n-   #90 = Utf8               changed\n-   #91 = Utf8               org/assertj/core/api/ObjectAssert\n-   #92 = NameAndType        #126:#122     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #93 = NameAndType        #127:#122     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #94 = Utf8               java/lang/Object\n-   #95 = NameAndType        #128:#122     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #96 = NameAndType        #129:#125     // STOP:Ldev/langchain4j/model/output/FinishReason;\n-   #97 = NameAndType        #130:#131     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #98 = NameAndType        #130:#132     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n-   #99 = NameAndType        #130:#133     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-  #100 = Utf8               dev/langchain4j/model/output/ResponseTest\n-  #101 = Utf8               org/assertj/core/api/WithAssertions\n-  #102 = Utf8               (Ljava/lang/Object;)V\n-  #103 = Utf8               ()Ljava/lang/Object;\n-  #104 = Utf8               assertThat\n-  #105 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #106 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #107 = Utf8               isEqualTo\n-  #108 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n-  #109 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #110 = Utf8               isNull\n-  #111 = Utf8               finishReason\n-  #112 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n-  #113 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-  #114 = Utf8               org/assertj/core/api/AbstractComparableAssert\n-  #115 = Utf8               hasToString\n-  #116 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #117 = Utf8               java/lang/Integer\n-  #118 = Utf8               valueOf\n-  #119 = Utf8               (I)Ljava/lang/Integer;\n-  #120 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #121 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-  #122 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #123 = Utf8               dev/langchain4j/model/output/FinishReason\n-  #124 = Utf8               LENGTH\n-  #125 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n-  #126 = Utf8               hasSameHashCodeAs\n-  #127 = Utf8               isNotEqualTo\n-  #128 = Utf8               doesNotHaveSameHashCodeAs\n-  #129 = Utf8               STOP\n-  #130 = Utf8               from\n-  #131 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #132 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n-  #133 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/model/output/Response\n+    #8 = Utf8               dev/langchain4j/model/output/Response\n+    #9 = String             #10           // content\n+   #10 = Utf8               content\n+   #11 = Methodref          #7.#12        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+   #12 = NameAndType        #5:#13        // \"<init>\":(Ljava/lang/Object;)V\n+   #13 = Utf8               (Ljava/lang/Object;)V\n+   #14 = Methodref          #7.#15        // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+   #15 = NameAndType        #10:#16       // content:()Ljava/lang/Object;\n+   #16 = Utf8               ()Ljava/lang/Object;\n+   #17 = Class              #18           // java/lang/String\n+   #18 = Utf8               java/lang/String\n+   #19 = Methodref          #20.#21       // dev/langchain4j/model/output/ResponseTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #20 = Class              #22           // dev/langchain4j/model/output/ResponseTest\n+   #21 = NameAndType        #23:#24       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #22 = Utf8               dev/langchain4j/model/output/ResponseTest\n+   #23 = Utf8               assertThat\n+   #24 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #25 = Methodref          #26.#27       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #26 = Class              #28           // org/assertj/core/api/AbstractStringAssert\n+   #27 = NameAndType        #29:#24       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #28 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #29 = Utf8               isEqualTo\n+   #30 = Methodref          #7.#31        // dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #31 = NameAndType        #32:#33       // tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+   #32 = Utf8               tokenUsage\n+   #33 = Utf8               ()Ldev/langchain4j/model/output/TokenUsage;\n+   #34 = Methodref          #20.#35       // dev/langchain4j/model/output/ResponseTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #35 = NameAndType        #23:#36       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #36 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #37 = Methodref          #38.#39       // org/assertj/core/api/ObjectAssert.isNull:()V\n+   #38 = Class              #40           // org/assertj/core/api/ObjectAssert\n+   #39 = NameAndType        #41:#6        // isNull:()V\n+   #40 = Utf8               org/assertj/core/api/ObjectAssert\n+   #41 = Utf8               isNull\n+   #42 = Methodref          #7.#43        // dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+   #43 = NameAndType        #44:#45       // finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+   #44 = Utf8               finishReason\n+   #45 = Utf8               ()Ldev/langchain4j/model/output/FinishReason;\n+   #46 = Methodref          #20.#47       // dev/langchain4j/model/output/ResponseTest.assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #47 = NameAndType        #23:#48       // assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #48 = Utf8               (Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+   #49 = Methodref          #50.#39       // org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+   #50 = Class              #51           // org/assertj/core/api/AbstractComparableAssert\n+   #51 = Utf8               org/assertj/core/api/AbstractComparableAssert\n+   #52 = String             #53           // Response { content = content, tokenUsage = null, finishReason = null }\n+   #53 = Utf8               Response { content = content, tokenUsage = null, finishReason = null }\n+   #54 = Methodref          #38.#55       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #55 = NameAndType        #56:#57       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #56 = Utf8               hasToString\n+   #57 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #58 = Class              #59           // dev/langchain4j/model/output/TokenUsage\n+   #59 = Utf8               dev/langchain4j/model/output/TokenUsage\n+   #60 = Methodref          #61.#62       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #61 = Class              #63           // java/lang/Integer\n+   #62 = NameAndType        #64:#65       // valueOf:(I)Ljava/lang/Integer;\n+   #63 = Utf8               java/lang/Integer\n+   #64 = Utf8               valueOf\n+   #65 = Utf8               (I)Ljava/lang/Integer;\n+   #66 = Methodref          #58.#67       // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+   #67 = NameAndType        #5:#68        // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+   #68 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+   #69 = Methodref          #7.#70        // dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+   #70 = NameAndType        #5:#71        // \"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+   #71 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+   #72 = Methodref          #38.#73       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #73 = NameAndType        #29:#74       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #74 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #75 = String             #76           // Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = null }\n+   #76 = Utf8               Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = null }\n+   #77 = Fieldref           #78.#79       // dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+   #78 = Class              #80           // dev/langchain4j/model/output/FinishReason\n+   #79 = NameAndType        #81:#82       // LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+   #80 = Utf8               dev/langchain4j/model/output/FinishReason\n+   #81 = Utf8               LENGTH\n+   #82 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n+   #83 = Methodref          #50.#73       // org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #84 = String             #85           // Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = LENGTH }\n+   #85 = Utf8               Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = LENGTH }\n+   #86 = String             #87           // changed\n+   #87 = Utf8               changed\n+   #88 = Methodref          #38.#89       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #89 = NameAndType        #90:#74       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #90 = Utf8               hasSameHashCodeAs\n+   #91 = Methodref          #38.#92       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #92 = NameAndType        #93:#74       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #93 = Utf8               isNotEqualTo\n+   #94 = Methodref          #38.#95       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #95 = NameAndType        #96:#74       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #96 = Utf8               doesNotHaveSameHashCodeAs\n+   #97 = Fieldref           #78.#98       // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+   #98 = NameAndType        #99:#82       // STOP:Ldev/langchain4j/model/output/FinishReason;\n+   #99 = Utf8               STOP\n+  #100 = Methodref          #7.#101       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #101 = NameAndType        #102:#103     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #102 = Utf8               from\n+  #103 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #104 = Methodref          #7.#105       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n+  #105 = NameAndType        #102:#106     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n+  #106 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n+  #107 = Methodref          #7.#108       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #108 = NameAndType        #102:#109     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #109 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #110 = Class              #111          // org/assertj/core/api/WithAssertions\n+  #111 = Utf8               org/assertj/core/api/WithAssertions\n+  #112 = Utf8               Code\n+  #113 = Utf8               LineNumberTable\n+  #114 = Utf8               LocalVariableTable\n+  #115 = Utf8               this\n+  #116 = Utf8               Ldev/langchain4j/model/output/ResponseTest;\n+  #117 = Utf8               test_methods\n+  #118 = Utf8               response\n+  #119 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #120 = Utf8               Ldev/langchain4j/model/output/TokenUsage;\n+  #121 = Utf8               LocalVariableTypeTable\n+  #122 = Utf8               Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n+  #123 = Utf8               RuntimeVisibleAnnotations\n+  #124 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #125 = Utf8               test_equals_hashCode\n+  #126 = Utf8               content1\n+  #127 = Utf8               Ljava/lang/String;\n+  #128 = Utf8               content2\n+  #129 = Utf8               tokenUsage1\n+  #130 = Utf8               tokenUsage2\n+  #131 = Utf8               test_builders\n+  #132 = Utf8               SourceFile\n+  #133 = Utf8               ResponseTest.java\n {\n   dev.langchain4j.model.output.ResponseTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -157,130 +157,130 @@\n             0       5     0  this   Ldev/langchain4j/model/output/ResponseTest;\n \n   public void test_methods();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/output/Response\n+         0: new           #7                  // class dev/langchain4j/model/output/Response\n          3: dup\n-         4: ldc           #3                  // String content\n-         6: invokespecial #4                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+         4: ldc           #9                  // String content\n+         6: invokespecial #11                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n          9: astore_1\n         10: aload_0\n         11: aload_1\n-        12: invokevirtual #5                  // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-        15: checkcast     #6                  // class java/lang/String\n-        18: invokevirtual #7                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        21: ldc           #3                  // String content\n-        23: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        12: invokevirtual #14                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+        15: checkcast     #17                 // class java/lang/String\n+        18: invokevirtual #19                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        21: ldc           #9                  // String content\n+        23: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         26: pop\n         27: aload_0\n         28: aload_1\n-        29: invokevirtual #9                  // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-        32: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        35: invokevirtual #11                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n+        29: invokevirtual #30                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+        32: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        35: invokevirtual #37                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n         38: aload_0\n         39: aload_1\n-        40: invokevirtual #12                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-        43: invokevirtual #13                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-        46: invokevirtual #14                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+        40: invokevirtual #42                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+        43: invokevirtual #46                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+        46: invokevirtual #49                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n         49: aload_0\n         50: aload_1\n-        51: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        54: ldc           #15                 // String Response { content = content, tokenUsage = null, finishReason = null }\n-        56: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        51: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        54: ldc           #52                 // String Response { content = content, tokenUsage = null, finishReason = null }\n+        56: invokevirtual #54                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         59: pop\n-        60: new           #17                 // class dev/langchain4j/model/output/TokenUsage\n+        60: new           #58                 // class dev/langchain4j/model/output/TokenUsage\n         63: dup\n         64: iconst_1\n-        65: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        65: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         68: iconst_2\n-        69: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        69: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         72: iconst_3\n-        73: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        76: invokespecial #19                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        73: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        76: invokespecial #66                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         79: astore_1\n-        80: new           #2                  // class dev/langchain4j/model/output/Response\n+        80: new           #7                  // class dev/langchain4j/model/output/Response\n         83: dup\n-        84: ldc           #3                  // String content\n+        84: ldc           #9                  // String content\n         86: aload_1\n         87: aconst_null\n-        88: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+        88: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n         91: astore_2\n         92: aload_0\n         93: aload_2\n-        94: invokevirtual #5                  // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-        97: checkcast     #6                  // class java/lang/String\n-       100: invokevirtual #7                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       103: ldc           #3                  // String content\n-       105: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        94: invokevirtual #14                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+        97: checkcast     #17                 // class java/lang/String\n+       100: invokevirtual #19                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       103: ldc           #9                  // String content\n+       105: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        108: pop\n        109: aload_0\n        110: aload_2\n-       111: invokevirtual #9                  // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-       114: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       111: invokevirtual #30                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+       114: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        117: aload_1\n-       118: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       118: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        121: pop\n        122: aload_0\n        123: aload_2\n-       124: invokevirtual #12                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-       127: invokevirtual #13                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       130: invokevirtual #14                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n+       124: invokevirtual #42                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+       127: invokevirtual #46                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       130: invokevirtual #49                 // Method org/assertj/core/api/AbstractComparableAssert.isNull:()V\n        133: aload_0\n        134: aload_2\n-       135: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       138: ldc           #22                 // String Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = null }\n-       140: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+       135: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       138: ldc           #75                 // String Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = null }\n+       140: invokevirtual #54                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n        143: pop\n-       144: new           #17                 // class dev/langchain4j/model/output/TokenUsage\n+       144: new           #58                 // class dev/langchain4j/model/output/TokenUsage\n        147: dup\n        148: iconst_1\n-       149: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       149: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        152: iconst_2\n-       153: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       153: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        156: iconst_3\n-       157: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       160: invokespecial #19                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       157: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       160: invokespecial #66                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n        163: astore_1\n-       164: new           #2                  // class dev/langchain4j/model/output/Response\n+       164: new           #7                  // class dev/langchain4j/model/output/Response\n        167: dup\n-       168: ldc           #3                  // String content\n+       168: ldc           #9                  // String content\n        170: aload_1\n-       171: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       174: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       171: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       174: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n        177: astore_2\n        178: aload_0\n        179: aload_2\n-       180: invokevirtual #5                  // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-       183: checkcast     #6                  // class java/lang/String\n-       186: invokevirtual #7                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       189: ldc           #3                  // String content\n-       191: invokevirtual #8                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       180: invokevirtual #14                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+       183: checkcast     #17                 // class java/lang/String\n+       186: invokevirtual #19                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       189: ldc           #9                  // String content\n+       191: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        194: pop\n        195: aload_0\n        196: aload_2\n-       197: invokevirtual #9                  // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n-       200: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       197: invokevirtual #30                 // Method dev/langchain4j/model/output/Response.tokenUsage:()Ldev/langchain4j/model/output/TokenUsage;\n+       200: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        203: aload_1\n-       204: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       204: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        207: pop\n        208: aload_0\n        209: aload_2\n-       210: invokevirtual #12                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n-       213: invokevirtual #13                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n-       216: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       219: invokevirtual #24                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       210: invokevirtual #42                 // Method dev/langchain4j/model/output/Response.finishReason:()Ldev/langchain4j/model/output/FinishReason;\n+       213: invokevirtual #46                 // Method assertThat:(Ljava/lang/Comparable;)Lorg/assertj/core/api/AbstractComparableAssert;\n+       216: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       219: invokevirtual #83                 // Method org/assertj/core/api/AbstractComparableAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        222: pop\n        223: aload_0\n        224: aload_2\n-       225: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       228: ldc           #25                 // String Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = LENGTH }\n-       230: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+       225: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       228: ldc           #84                 // String Response { content = content, tokenUsage = TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }, finishReason = LENGTH }\n+       230: invokevirtual #54                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n        233: pop\n        234: return\n       LineNumberTable:\n         line 10: 0\n         line 11: 10\n         line 12: 27\n         line 13: 38\n@@ -310,189 +310,189 @@\n             0     235     0  this   Ldev/langchain4j/model/output/ResponseTest;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            10      50     1 response   Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n            92      52     2 response   Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n           178      56     2 response   Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #53()\n+      0: #124()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=5, args_size=1\n-         0: ldc           #3                  // String content\n+         0: ldc           #9                  // String content\n          2: astore_1\n-         3: ldc           #26                 // String changed\n+         3: ldc           #86                 // String changed\n          5: astore_2\n-         6: new           #17                 // class dev/langchain4j/model/output/TokenUsage\n+         6: new           #58                 // class dev/langchain4j/model/output/TokenUsage\n          9: dup\n         10: iconst_1\n-        11: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        11: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         14: iconst_2\n-        15: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        15: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         18: iconst_3\n-        19: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        22: invokespecial #19                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        19: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        22: invokespecial #66                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         25: astore_3\n-        26: new           #17                 // class dev/langchain4j/model/output/TokenUsage\n+        26: new           #58                 // class dev/langchain4j/model/output/TokenUsage\n         29: dup\n         30: bipush        10\n-        32: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        32: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         35: iconst_2\n-        36: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        36: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         39: iconst_3\n-        40: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        43: invokespecial #19                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        40: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        43: invokespecial #66                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         46: astore        4\n         48: aload_0\n-        49: new           #2                  // class dev/langchain4j/model/output/Response\n+        49: new           #7                  // class dev/langchain4j/model/output/Response\n         52: dup\n         53: aload_1\n         54: aconst_null\n         55: aconst_null\n-        56: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-        59: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        62: new           #2                  // class dev/langchain4j/model/output/Response\n+        56: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+        59: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        62: new           #7                  // class dev/langchain4j/model/output/Response\n         65: dup\n         66: aload_1\n         67: aconst_null\n         68: aconst_null\n-        69: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-        72: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        75: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-        78: new           #2                  // class dev/langchain4j/model/output/Response\n+        69: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+        72: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        75: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+        78: new           #7                  // class dev/langchain4j/model/output/Response\n         81: dup\n         82: aload_1\n         83: aconst_null\n         84: aconst_null\n-        85: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-        88: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        91: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n+        85: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+        88: invokevirtual #88                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        91: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n         94: aconst_null\n-        95: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        98: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       101: new           #30                 // class java/lang/Object\n+        95: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        98: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       101: new           #2                  // class java/lang/Object\n        104: dup\n        105: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-       108: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       111: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       114: new           #2                  // class dev/langchain4j/model/output/Response\n+       108: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       111: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       114: new           #7                  // class dev/langchain4j/model/output/Response\n        117: dup\n        118: aload_2\n        119: aconst_null\n        120: aconst_null\n-       121: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       124: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       127: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       130: new           #2                  // class dev/langchain4j/model/output/Response\n+       121: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       124: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       127: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       130: new           #7                  // class dev/langchain4j/model/output/Response\n        133: dup\n        134: aload_2\n        135: aconst_null\n        136: aconst_null\n-       137: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       140: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       143: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       146: new           #2                  // class dev/langchain4j/model/output/Response\n+       137: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       140: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       143: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       146: new           #7                  // class dev/langchain4j/model/output/Response\n        149: dup\n        150: aload_1\n        151: aload_3\n        152: aconst_null\n-       153: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       156: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       159: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       162: new           #2                  // class dev/langchain4j/model/output/Response\n+       153: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       156: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       159: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       162: new           #7                  // class dev/langchain4j/model/output/Response\n        165: dup\n        166: aload_1\n        167: aload_3\n        168: aconst_null\n-       169: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       172: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       175: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       178: new           #2                  // class dev/langchain4j/model/output/Response\n+       169: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       172: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       175: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       178: new           #7                  // class dev/langchain4j/model/output/Response\n        181: dup\n        182: aload_1\n        183: aconst_null\n-       184: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       187: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       190: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       193: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       196: new           #2                  // class dev/langchain4j/model/output/Response\n+       184: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       187: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       190: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       193: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       196: new           #7                  // class dev/langchain4j/model/output/Response\n        199: dup\n        200: aload_1\n        201: aconst_null\n-       202: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       205: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       208: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       211: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       214: new           #2                  // class dev/langchain4j/model/output/Response\n+       202: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       205: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       208: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       211: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       214: new           #7                  // class dev/langchain4j/model/output/Response\n        217: dup\n        218: aload_1\n        219: aload_3\n-       220: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       223: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       226: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       229: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       232: new           #2                  // class dev/langchain4j/model/output/Response\n+       220: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       223: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       226: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       229: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       232: new           #7                  // class dev/langchain4j/model/output/Response\n        235: dup\n        236: aload_1\n        237: aload_3\n-       238: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       241: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       244: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       238: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       241: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       244: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        247: pop\n        248: aload_0\n-       249: new           #2                  // class dev/langchain4j/model/output/Response\n+       249: new           #7                  // class dev/langchain4j/model/output/Response\n        252: dup\n        253: aload_1\n        254: aload_3\n-       255: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       258: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       261: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       264: new           #2                  // class dev/langchain4j/model/output/Response\n+       255: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       258: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       261: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       264: new           #7                  // class dev/langchain4j/model/output/Response\n        267: dup\n        268: aload_1\n        269: aload_3\n-       270: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       273: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       276: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       279: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       282: new           #2                  // class dev/langchain4j/model/output/Response\n+       270: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       273: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       276: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       279: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       282: new           #7                  // class dev/langchain4j/model/output/Response\n        285: dup\n        286: aload_1\n        287: aload_3\n-       288: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       291: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       294: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       297: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       300: new           #2                  // class dev/langchain4j/model/output/Response\n+       288: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       291: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       294: invokevirtual #88                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       297: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       300: new           #7                  // class dev/langchain4j/model/output/Response\n        303: dup\n        304: aload_2\n        305: aload_3\n-       306: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       309: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       312: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       315: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       318: new           #2                  // class dev/langchain4j/model/output/Response\n+       306: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       309: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       312: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       315: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       318: new           #7                  // class dev/langchain4j/model/output/Response\n        321: dup\n        322: aload_1\n        323: aload         4\n-       325: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       328: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       331: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       334: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-       337: new           #2                  // class dev/langchain4j/model/output/Response\n+       325: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       328: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       331: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       334: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+       337: new           #7                  // class dev/langchain4j/model/output/Response\n        340: dup\n        341: aload_1\n        342: aload_3\n-       343: getstatic     #32                 // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-       346: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-       349: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       343: getstatic     #97                 // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+       346: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+       349: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        352: pop\n        353: return\n       LineNumberTable:\n         line 46: 0\n         line 47: 3\n         line 48: 6\n         line 49: 26\n@@ -520,74 +520,74 @@\n         Start  Length  Slot  Name   Signature\n             0     354     0  this   Ldev/langchain4j/model/output/ResponseTest;\n             3     351     1 content1   Ljava/lang/String;\n             6     348     2 content2   Ljava/lang/String;\n            26     328     3 tokenUsage1   Ldev/langchain4j/model/output/TokenUsage;\n            48     306     4 tokenUsage2   Ldev/langchain4j/model/output/TokenUsage;\n     RuntimeVisibleAnnotations:\n-      0: #53()\n+      0: #124()\n         org.junit.jupiter.api.Test\n \n   public void test_builders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=2, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/model/output/Response\n+         1: new           #7                  // class dev/langchain4j/model/output/Response\n          4: dup\n-         5: ldc           #3                  // String content\n-         7: invokespecial #4                  // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n-        10: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        13: ldc           #3                  // String content\n-        15: invokestatic  #33                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-        18: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+         5: ldc           #9                  // String content\n+         7: invokespecial #11                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;)V\n+        10: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        13: ldc           #9                  // String content\n+        15: invokestatic  #100                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+        18: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         21: pop\n-        22: new           #17                 // class dev/langchain4j/model/output/TokenUsage\n+        22: new           #58                 // class dev/langchain4j/model/output/TokenUsage\n         25: dup\n         26: iconst_1\n-        27: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        27: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         30: iconst_2\n-        31: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        31: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         34: iconst_3\n-        35: invokestatic  #18                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        38: invokespecial #19                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        35: invokestatic  #60                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        38: invokespecial #66                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         41: astore_1\n         42: aload_0\n-        43: new           #2                  // class dev/langchain4j/model/output/Response\n+        43: new           #7                  // class dev/langchain4j/model/output/Response\n         46: dup\n-        47: ldc           #3                  // String content\n+        47: ldc           #9                  // String content\n         49: aload_1\n         50: aconst_null\n-        51: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-        54: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        57: ldc           #3                  // String content\n+        51: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+        54: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        57: ldc           #9                  // String content\n         59: aload_1\n-        60: invokestatic  #34                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n-        63: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        66: checkcast     #27                 // class org/assertj/core/api/ObjectAssert\n-        69: ldc           #3                  // String content\n+        60: invokestatic  #104                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n+        63: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        66: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n+        69: ldc           #9                  // String content\n         71: aload_1\n         72: aconst_null\n-        73: invokestatic  #35                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-        76: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        73: invokestatic  #107                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+        76: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         79: pop\n         80: aload_0\n-        81: new           #2                  // class dev/langchain4j/model/output/Response\n+        81: new           #7                  // class dev/langchain4j/model/output/Response\n         84: dup\n-        85: ldc           #3                  // String content\n+        85: ldc           #9                  // String content\n         87: aload_1\n-        88: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-        91: invokespecial #20                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n-        94: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        97: ldc           #3                  // String content\n+        88: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+        91: invokespecial #69                 // Method dev/langchain4j/model/output/Response.\"<init>\":(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)V\n+        94: invokevirtual #34                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        97: ldc           #9                  // String content\n         99: aload_1\n-       100: getstatic     #23                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-       103: invokestatic  #35                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-       106: invokevirtual #21                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       100: getstatic     #77                 // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       103: invokestatic  #107                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+       106: invokevirtual #72                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        109: pop\n        110: return\n       LineNumberTable:\n         line 75: 0\n         line 76: 15\n         line 78: 22\n         line 80: 42\n@@ -597,11 +597,11 @@\n         line 85: 103\n         line 87: 110\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     111     0  this   Ldev/langchain4j/model/output/ResponseTest;\n            42      69     1 tokenUsage   Ldev/langchain4j/model/output/TokenUsage;\n     RuntimeVisibleAnnotations:\n-      0: #53()\n+      0: #124()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ResponseTest.java\"\n"}]}, {"source1": "dev/langchain4j/model/output/TokenUsageTest.class", "source2": "dev/langchain4j/model/output/TokenUsageTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,115 +1,115 @@\n-  SHA-256 checksum 06f96a9048e600ac04f8425a4c636b98eb5d894d412e2d39b3b8fff4b35ff2aa\n+  SHA-256 checksum e679d6aad891b20fc0b66f567c5a71db75963227b561f2cf924d00d4397d9b58\n   Compiled from \"TokenUsageTest.java\"\n class dev.langchain4j.model.output.TokenUsageTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #25                         // dev/langchain4j/model/output/TokenUsageTest\n-  super_class: #18                        // java/lang/Object\n+  this_class: #11                         // dev/langchain4j/model/output/TokenUsageTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 6, attributes: 1\n Constant pool:\n-   #1 = Methodref          #18.#47        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #48            // dev/langchain4j/model/output/TokenUsage\n-   #3 = Methodref          #2.#47         // dev/langchain4j/model/output/TokenUsage.\"<init>\":()V\n-   #4 = Methodref          #25.#49        // dev/langchain4j/model/output/TokenUsageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #5 = Methodref          #2.#50         // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-   #6 = Methodref          #16.#51        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #7 = Methodref          #52.#53        // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #8 = Methodref          #2.#54         // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n-   #9 = Methodref          #2.#55         // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #10 = Methodref          #2.#56         // dev/langchain4j/model/output/TokenUsage.inputTokenCount:()Ljava/lang/Integer;\n-  #11 = Methodref          #25.#57        // dev/langchain4j/model/output/TokenUsageTest.assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #12 = Methodref          #58.#59        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #13 = Methodref          #2.#60         // dev/langchain4j/model/output/TokenUsage.outputTokenCount:()Ljava/lang/Integer;\n-  #14 = Methodref          #2.#61         // dev/langchain4j/model/output/TokenUsage.totalTokenCount:()Ljava/lang/Integer;\n-  #15 = Methodref          #58.#62        // org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n-  #16 = Class              #63            // org/assertj/core/api/ObjectAssert\n-  #17 = Methodref          #16.#64        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #18 = Class              #65            // java/lang/Object\n-  #19 = Methodref          #16.#66        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #20 = Methodref          #16.#67        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #21 = String             #68            // TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }\n-  #22 = Methodref          #16.#69        // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #23 = String             #70            // TokenUsage { inputTokenCount = null, outputTokenCount = null, totalTokenCount = null }\n-  #24 = Methodref          #2.#71         // dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n-  #25 = Class              #72            // dev/langchain4j/model/output/TokenUsageTest\n-  #26 = Class              #73            // org/assertj/core/api/WithAssertions\n-  #27 = Utf8               <init>\n-  #28 = Utf8               ()V\n-  #29 = Utf8               Code\n-  #30 = Utf8               LineNumberTable\n-  #31 = Utf8               LocalVariableTable\n-  #32 = Utf8               this\n-  #33 = Utf8               Ldev/langchain4j/model/output/TokenUsageTest;\n-  #34 = Utf8               test_constructors\n-  #35 = Utf8               RuntimeVisibleAnnotations\n-  #36 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #37 = Utf8               test_accessors\n-  #38 = Utf8               tu\n-  #39 = Utf8               Ldev/langchain4j/model/output/TokenUsage;\n-  #40 = Utf8               test_equals_hash\n-  #41 = Utf8               tu1\n-  #42 = Utf8               tu2\n-  #43 = Utf8               test_toString\n-  #44 = Utf8               test_sum\n-  #45 = Utf8               SourceFile\n-  #46 = Utf8               TokenUsageTest.java\n-  #47 = NameAndType        #27:#28        // \"<init>\":()V\n-  #48 = Utf8               dev/langchain4j/model/output/TokenUsage\n-  #49 = NameAndType        #74:#75        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #50 = NameAndType        #27:#76        // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #51 = NameAndType        #77:#78        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #52 = Class              #79            // java/lang/Integer\n-  #53 = NameAndType        #80:#81        // valueOf:(I)Ljava/lang/Integer;\n-  #54 = NameAndType        #27:#82        // \"<init>\":(Ljava/lang/Integer;)V\n-  #55 = NameAndType        #27:#83        // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #56 = NameAndType        #84:#85        // inputTokenCount:()Ljava/lang/Integer;\n-  #57 = NameAndType        #74:#86        // assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #58 = Class              #87            // org/assertj/core/api/AbstractIntegerAssert\n-  #59 = NameAndType        #77:#88        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #60 = NameAndType        #89:#85        // outputTokenCount:()Ljava/lang/Integer;\n-  #61 = NameAndType        #90:#85        // totalTokenCount:()Ljava/lang/Integer;\n-  #62 = NameAndType        #91:#28        // isNull:()V\n-  #63 = Utf8               org/assertj/core/api/ObjectAssert\n-  #64 = NameAndType        #92:#78        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #65 = Utf8               java/lang/Object\n-  #66 = NameAndType        #93:#78        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #67 = NameAndType        #94:#78        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/output/TokenUsage\n+   #8 = Utf8               dev/langchain4j/model/output/TokenUsage\n+   #9 = Methodref          #7.#3          // dev/langchain4j/model/output/TokenUsage.\"<init>\":()V\n+  #10 = Methodref          #11.#12        // dev/langchain4j/model/output/TokenUsageTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #11 = Class              #13            // dev/langchain4j/model/output/TokenUsageTest\n+  #12 = NameAndType        #14:#15        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #13 = Utf8               dev/langchain4j/model/output/TokenUsageTest\n+  #14 = Utf8               assertThat\n+  #15 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #16 = Methodref          #7.#17         // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #17 = NameAndType        #5:#18         // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #18 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #19 = Methodref          #20.#21        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #20 = Class              #22            // org/assertj/core/api/ObjectAssert\n+  #21 = NameAndType        #23:#24        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #22 = Utf8               org/assertj/core/api/ObjectAssert\n+  #23 = Utf8               isEqualTo\n+  #24 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #25 = Methodref          #26.#27        // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+  #26 = Class              #28            // java/lang/Integer\n+  #27 = NameAndType        #29:#30        // valueOf:(I)Ljava/lang/Integer;\n+  #28 = Utf8               java/lang/Integer\n+  #29 = Utf8               valueOf\n+  #30 = Utf8               (I)Ljava/lang/Integer;\n+  #31 = Methodref          #7.#32         // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n+  #32 = NameAndType        #5:#33         // \"<init>\":(Ljava/lang/Integer;)V\n+  #33 = Utf8               (Ljava/lang/Integer;)V\n+  #34 = Methodref          #7.#35         // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #35 = NameAndType        #5:#36         // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #36 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #37 = Methodref          #7.#38         // dev/langchain4j/model/output/TokenUsage.inputTokenCount:()Ljava/lang/Integer;\n+  #38 = NameAndType        #39:#40        // inputTokenCount:()Ljava/lang/Integer;\n+  #39 = Utf8               inputTokenCount\n+  #40 = Utf8               ()Ljava/lang/Integer;\n+  #41 = Methodref          #11.#42        // dev/langchain4j/model/output/TokenUsageTest.assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #42 = NameAndType        #14:#43        // assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #43 = Utf8               (Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #44 = Methodref          #45.#46        // org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #45 = Class              #47            // org/assertj/core/api/AbstractIntegerAssert\n+  #46 = NameAndType        #23:#48        // isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #47 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n+  #48 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+  #49 = Methodref          #7.#50         // dev/langchain4j/model/output/TokenUsage.outputTokenCount:()Ljava/lang/Integer;\n+  #50 = NameAndType        #51:#40        // outputTokenCount:()Ljava/lang/Integer;\n+  #51 = Utf8               outputTokenCount\n+  #52 = Methodref          #7.#53         // dev/langchain4j/model/output/TokenUsage.totalTokenCount:()Ljava/lang/Integer;\n+  #53 = NameAndType        #54:#40        // totalTokenCount:()Ljava/lang/Integer;\n+  #54 = Utf8               totalTokenCount\n+  #55 = Methodref          #45.#56        // org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n+  #56 = NameAndType        #57:#6         // isNull:()V\n+  #57 = Utf8               isNull\n+  #58 = Methodref          #20.#59        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #59 = NameAndType        #60:#24        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #60 = Utf8               isNotEqualTo\n+  #61 = Methodref          #20.#62        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #62 = NameAndType        #63:#24        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #63 = Utf8               hasSameHashCodeAs\n+  #64 = Methodref          #20.#65        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #65 = NameAndType        #66:#24        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #66 = Utf8               doesNotHaveSameHashCodeAs\n+  #67 = String             #68            // TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }\n   #68 = Utf8               TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }\n-  #69 = NameAndType        #95:#96        // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #70 = Utf8               TokenUsage { inputTokenCount = null, outputTokenCount = null, totalTokenCount = null }\n-  #71 = NameAndType        #97:#98        // add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n-  #72 = Utf8               dev/langchain4j/model/output/TokenUsageTest\n-  #73 = Utf8               org/assertj/core/api/WithAssertions\n-  #74 = Utf8               assertThat\n-  #75 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #76 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #77 = Utf8               isEqualTo\n-  #78 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #79 = Utf8               java/lang/Integer\n-  #80 = Utf8               valueOf\n-  #81 = Utf8               (I)Ljava/lang/Integer;\n-  #82 = Utf8               (Ljava/lang/Integer;)V\n-  #83 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #84 = Utf8               inputTokenCount\n-  #85 = Utf8               ()Ljava/lang/Integer;\n-  #86 = Utf8               (Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #87 = Utf8               org/assertj/core/api/AbstractIntegerAssert\n-  #88 = Utf8               (I)Lorg/assertj/core/api/AbstractIntegerAssert;\n-  #89 = Utf8               outputTokenCount\n-  #90 = Utf8               totalTokenCount\n-  #91 = Utf8               isNull\n-  #92 = Utf8               isNotEqualTo\n-  #93 = Utf8               hasSameHashCodeAs\n-  #94 = Utf8               doesNotHaveSameHashCodeAs\n-  #95 = Utf8               hasToString\n-  #96 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #97 = Utf8               add\n-  #98 = Utf8               (Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #69 = Methodref          #20.#70        // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #70 = NameAndType        #71:#72        // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #71 = Utf8               hasToString\n+  #72 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+  #73 = String             #74            // TokenUsage { inputTokenCount = null, outputTokenCount = null, totalTokenCount = null }\n+  #74 = Utf8               TokenUsage { inputTokenCount = null, outputTokenCount = null, totalTokenCount = null }\n+  #75 = Methodref          #7.#76         // dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #76 = NameAndType        #77:#78        // add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #77 = Utf8               add\n+  #78 = Utf8               (Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #79 = Class              #80            // org/assertj/core/api/WithAssertions\n+  #80 = Utf8               org/assertj/core/api/WithAssertions\n+  #81 = Utf8               Code\n+  #82 = Utf8               LineNumberTable\n+  #83 = Utf8               LocalVariableTable\n+  #84 = Utf8               this\n+  #85 = Utf8               Ldev/langchain4j/model/output/TokenUsageTest;\n+  #86 = Utf8               test_constructors\n+  #87 = Utf8               RuntimeVisibleAnnotations\n+  #88 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #89 = Utf8               test_accessors\n+  #90 = Utf8               tu\n+  #91 = Utf8               Ldev/langchain4j/model/output/TokenUsage;\n+  #92 = Utf8               test_equals_hash\n+  #93 = Utf8               tu1\n+  #94 = Utf8               tu2\n+  #95 = Utf8               test_toString\n+  #96 = Utf8               test_sum\n+  #97 = Utf8               SourceFile\n+  #98 = Utf8               TokenUsageTest.java\n {\n   dev.langchain4j.model.output.TokenUsageTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -123,84 +123,84 @@\n \n   public void test_constructors();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+         1: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n          4: dup\n-         5: invokespecial #3                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":()V\n-         8: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        11: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+         5: invokespecial #9                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":()V\n+         8: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        11: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         14: dup\n         15: aconst_null\n         16: aconst_null\n         17: aconst_null\n-        18: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        21: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        18: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        21: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         24: pop\n         25: aload_0\n-        26: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        26: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         29: dup\n         30: iconst_1\n-        31: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        34: invokespecial #8                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n-        37: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        40: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        31: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        34: invokespecial #31                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;)V\n+        37: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        40: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         43: dup\n         44: iconst_1\n-        45: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        45: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         48: aconst_null\n         49: iconst_1\n-        50: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        53: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        56: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        50: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        53: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        56: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         59: pop\n         60: aload_0\n-        61: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        61: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         64: dup\n         65: iconst_1\n-        66: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        66: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         69: iconst_2\n-        70: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        73: invokespecial #9                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        76: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        79: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        70: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        73: invokespecial #34                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        76: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        79: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         82: dup\n         83: iconst_1\n-        84: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        84: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         87: iconst_2\n-        88: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        88: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         91: iconst_3\n-        92: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        95: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        98: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        92: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        95: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        98: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        101: pop\n        102: aload_0\n-       103: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       103: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        106: dup\n        107: iconst_1\n-       108: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       108: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        111: iconst_2\n-       112: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       112: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        115: iconst_3\n-       116: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       119: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       122: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       125: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       116: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       119: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       122: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       125: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        128: dup\n        129: iconst_1\n-       130: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       130: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        133: iconst_2\n-       134: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       134: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        137: iconst_3\n-       138: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       141: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       144: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       138: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       141: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       144: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        147: pop\n        148: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 21\n         line 12: 25\n         line 13: 45\n@@ -209,75 +209,75 @@\n         line 18: 102\n         line 19: 130\n         line 20: 148\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     149     0  this   Ldev/langchain4j/model/output/TokenUsageTest;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #88()\n         org.junit.jupiter.api.Test\n \n   public void test_accessors();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+         0: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n          3: dup\n          4: iconst_1\n-         5: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         5: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n          8: iconst_2\n-         9: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         9: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         12: iconst_3\n-        13: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        16: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        13: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        16: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         19: astore_1\n         20: aload_0\n         21: aload_1\n-        22: invokevirtual #10                 // Method dev/langchain4j/model/output/TokenUsage.inputTokenCount:()Ljava/lang/Integer;\n-        25: invokevirtual #11                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        22: invokevirtual #37                 // Method dev/langchain4j/model/output/TokenUsage.inputTokenCount:()Ljava/lang/Integer;\n+        25: invokevirtual #41                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n         28: iconst_1\n-        29: invokevirtual #12                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        29: invokevirtual #44                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         32: pop\n         33: aload_0\n         34: aload_1\n-        35: invokevirtual #13                 // Method dev/langchain4j/model/output/TokenUsage.outputTokenCount:()Ljava/lang/Integer;\n-        38: invokevirtual #11                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        35: invokevirtual #49                 // Method dev/langchain4j/model/output/TokenUsage.outputTokenCount:()Ljava/lang/Integer;\n+        38: invokevirtual #41                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n         41: iconst_2\n-        42: invokevirtual #12                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        42: invokevirtual #44                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         45: pop\n         46: aload_0\n         47: aload_1\n-        48: invokevirtual #14                 // Method dev/langchain4j/model/output/TokenUsage.totalTokenCount:()Ljava/lang/Integer;\n-        51: invokevirtual #11                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        48: invokevirtual #52                 // Method dev/langchain4j/model/output/TokenUsage.totalTokenCount:()Ljava/lang/Integer;\n+        51: invokevirtual #41                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n         54: iconst_3\n-        55: invokevirtual #12                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        55: invokevirtual #44                 // Method org/assertj/core/api/AbstractIntegerAssert.isEqualTo:(I)Lorg/assertj/core/api/AbstractIntegerAssert;\n         58: pop\n-        59: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        59: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         62: dup\n         63: aconst_null\n         64: aconst_null\n         65: aconst_null\n-        66: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        66: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         69: astore_1\n         70: aload_0\n         71: aload_1\n-        72: invokevirtual #10                 // Method dev/langchain4j/model/output/TokenUsage.inputTokenCount:()Ljava/lang/Integer;\n-        75: invokevirtual #11                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n-        78: invokevirtual #15                 // Method org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n+        72: invokevirtual #37                 // Method dev/langchain4j/model/output/TokenUsage.inputTokenCount:()Ljava/lang/Integer;\n+        75: invokevirtual #41                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        78: invokevirtual #55                 // Method org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n         81: aload_0\n         82: aload_1\n-        83: invokevirtual #13                 // Method dev/langchain4j/model/output/TokenUsage.outputTokenCount:()Ljava/lang/Integer;\n-        86: invokevirtual #11                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n-        89: invokevirtual #15                 // Method org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n+        83: invokevirtual #49                 // Method dev/langchain4j/model/output/TokenUsage.outputTokenCount:()Ljava/lang/Integer;\n+        86: invokevirtual #41                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+        89: invokevirtual #55                 // Method org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n         92: aload_0\n         93: aload_1\n-        94: invokevirtual #14                 // Method dev/langchain4j/model/output/TokenUsage.totalTokenCount:()Ljava/lang/Integer;\n-        97: invokevirtual #11                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n-       100: invokevirtual #15                 // Method org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n+        94: invokevirtual #52                 // Method dev/langchain4j/model/output/TokenUsage.totalTokenCount:()Ljava/lang/Integer;\n+        97: invokevirtual #41                 // Method assertThat:(Ljava/lang/Integer;)Lorg/assertj/core/api/AbstractIntegerAssert;\n+       100: invokevirtual #55                 // Method org/assertj/core/api/AbstractIntegerAssert.isNull:()V\n        103: return\n       LineNumberTable:\n         line 25: 0\n         line 26: 20\n         line 27: 33\n         line 28: 46\n         line 31: 59\n@@ -287,109 +287,109 @@\n         line 36: 103\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n            20      39     1    tu   Ldev/langchain4j/model/output/TokenUsage;\n            70      33     1    tu   Ldev/langchain4j/model/output/TokenUsage;\n             0     104     0  this   Ldev/langchain4j/model/output/TokenUsageTest;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #88()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+         0: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n          3: dup\n          4: iconst_1\n-         5: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         5: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n          8: iconst_2\n-         9: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         9: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         12: iconst_3\n-        13: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        16: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        13: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        16: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         19: astore_1\n-        20: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        20: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         23: dup\n         24: iconst_1\n-        25: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        25: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         28: iconst_2\n-        29: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        29: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         32: iconst_3\n-        33: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        36: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        33: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        36: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         39: astore_2\n         40: aload_0\n         41: aload_1\n-        42: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        42: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         45: aload_1\n-        46: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        49: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+        46: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        49: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n         52: aconst_null\n-        53: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        56: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n-        59: new           #18                 // class java/lang/Object\n+        53: invokevirtual #58                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        56: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n+        59: new           #2                  // class java/lang/Object\n         62: dup\n         63: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        66: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        69: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+        66: invokevirtual #58                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        69: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n         72: aload_2\n-        73: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        76: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+        73: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        76: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n         79: aload_2\n-        80: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        80: invokevirtual #61                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         83: pop\n         84: aload_0\n-        85: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        85: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         88: dup\n         89: aconst_null\n         90: iconst_2\n-        91: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        91: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         94: iconst_3\n-        95: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        98: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       101: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        95: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        98: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       101: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        104: aload_1\n-       105: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       108: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       105: invokevirtual #58                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       108: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n        111: aload_1\n-       112: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       112: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        115: pop\n        116: aload_0\n-       117: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       117: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        120: dup\n        121: iconst_1\n-       122: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       122: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        125: aconst_null\n        126: iconst_3\n-       127: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       130: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       133: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       127: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       130: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       133: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        136: aload_1\n-       137: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       140: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       137: invokevirtual #58                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       140: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n        143: aload_1\n-       144: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       144: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        147: pop\n        148: aload_0\n-       149: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       149: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        152: dup\n        153: iconst_1\n-       154: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       154: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        157: iconst_2\n-       158: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       158: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        161: aconst_null\n-       162: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       165: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       162: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       165: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        168: aload_1\n-       169: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       172: checkcast     #16                 // class org/assertj/core/api/ObjectAssert\n+       169: invokevirtual #58                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       172: checkcast     #20                 // class org/assertj/core/api/ObjectAssert\n        175: aload_1\n-       176: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       176: invokevirtual #64                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        179: pop\n        180: return\n       LineNumberTable:\n         line 40: 0\n         line 41: 20\n         line 43: 40\n         line 44: 46\n@@ -409,178 +409,178 @@\n         line 61: 180\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     181     0  this   Ldev/langchain4j/model/output/TokenUsageTest;\n            20     161     1   tu1   Ldev/langchain4j/model/output/TokenUsage;\n            40     141     2   tu2   Ldev/langchain4j/model/output/TokenUsage;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #88()\n         org.junit.jupiter.api.Test\n \n   public void test_toString();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=6, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+         1: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n          4: dup\n          5: iconst_1\n-         6: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         6: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n          9: iconst_2\n-        10: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        10: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         13: iconst_3\n-        14: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        17: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        20: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        23: ldc           #21                 // String TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }\n-        25: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        14: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        17: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        20: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        23: ldc           #67                 // String TokenUsage { inputTokenCount = 1, outputTokenCount = 2, totalTokenCount = 3 }\n+        25: invokevirtual #69                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         28: pop\n         29: aload_0\n-        30: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        30: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         33: dup\n         34: aconst_null\n         35: aconst_null\n         36: aconst_null\n-        37: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        40: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        43: ldc           #23                 // String TokenUsage { inputTokenCount = null, outputTokenCount = null, totalTokenCount = null }\n-        45: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+        37: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        40: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        43: ldc           #73                 // String TokenUsage { inputTokenCount = null, outputTokenCount = null, totalTokenCount = null }\n+        45: invokevirtual #69                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n         48: pop\n         49: return\n       LineNumberTable:\n         line 65: 0\n         line 66: 25\n         line 67: 29\n         line 68: 45\n         line 69: 49\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      50     0  this   Ldev/langchain4j/model/output/TokenUsageTest;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #88()\n         org.junit.jupiter.api.Test\n \n   public void test_sum();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=7, locals=1, args_size=1\n          0: aload_0\n-         1: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+         1: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n          4: dup\n          5: iconst_1\n-         6: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         6: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n          9: iconst_2\n-        10: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        10: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         13: iconst_3\n-        14: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        17: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        20: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        14: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        17: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        20: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         23: dup\n         24: iconst_4\n-        25: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        25: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         28: iconst_5\n-        29: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        29: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         32: bipush        6\n-        34: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        37: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        40: invokevirtual #24                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n-        43: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        46: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        34: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        37: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        40: invokevirtual #75                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+        43: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        46: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         49: dup\n         50: iconst_5\n-        51: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        51: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         54: bipush        7\n-        56: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        56: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         59: bipush        9\n-        61: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        64: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        67: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        61: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        64: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        67: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         70: pop\n         71: aload_0\n-        72: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        72: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         75: dup\n         76: iconst_1\n-        77: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        77: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         80: iconst_2\n-        81: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        81: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         84: iconst_3\n-        85: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        88: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-        91: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        85: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        88: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        91: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n         94: dup\n         95: aconst_null\n         96: aconst_null\n         97: aconst_null\n-        98: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       101: invokevirtual #24                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n-       104: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       107: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+        98: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       101: invokevirtual #75                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+       104: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       107: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        110: dup\n        111: iconst_1\n-       112: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       112: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        115: iconst_2\n-       116: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       116: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        119: iconst_3\n-       120: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       123: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       126: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       120: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       123: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       126: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        129: pop\n        130: aload_0\n-       131: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       131: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        134: dup\n        135: aconst_null\n        136: aconst_null\n        137: aconst_null\n-       138: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       141: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       138: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       141: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        144: dup\n        145: iconst_4\n-       146: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       146: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        149: iconst_5\n-       150: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       150: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        153: bipush        6\n-       155: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       158: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       161: invokevirtual #24                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n-       164: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       167: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       155: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       158: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       161: invokevirtual #75                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+       164: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       167: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        170: dup\n        171: iconst_4\n-       172: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       172: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        175: iconst_5\n-       176: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       176: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        179: bipush        6\n-       181: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       184: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       187: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       181: invokestatic  #25                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       184: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       187: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        190: pop\n        191: aload_0\n-       192: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       192: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        195: dup\n        196: aconst_null\n        197: aconst_null\n        198: aconst_null\n-       199: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       202: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       199: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       202: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        205: dup\n        206: aconst_null\n        207: aconst_null\n        208: aconst_null\n-       209: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       212: invokevirtual #24                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n-       215: invokevirtual #4                  // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       218: new           #2                  // class dev/langchain4j/model/output/TokenUsage\n+       209: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       212: invokevirtual #75                 // Method dev/langchain4j/model/output/TokenUsage.add:(Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/TokenUsage;\n+       215: invokevirtual #10                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       218: new           #7                  // class dev/langchain4j/model/output/TokenUsage\n        221: dup\n        222: aconst_null\n        223: aconst_null\n        224: aconst_null\n-       225: invokespecial #5                  // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-       228: invokevirtual #6                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       225: invokespecial #16                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+       228: invokevirtual #19                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        231: pop\n        232: return\n       LineNumberTable:\n         line 73: 0\n         line 74: 6\n         line 75: 25\n         line 73: 43\n@@ -599,11 +599,11 @@\n         line 88: 215\n         line 91: 228\n         line 92: 232\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     233     0  this   Ldev/langchain4j/model/output/TokenUsageTest;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #88()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"TokenUsageTest.java\"\n"}]}, {"source1": "dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.class", "source2": "dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,100 +1,100 @@\n-  SHA-256 checksum 2910448427c4376d6a1af83b07fec78e799ee0e349259cc50e15538739216ffb\n+  SHA-256 checksum 80203e7dcee9c6f3ec1a8df5dbbd967560868916f40585cb2071b1f28f1eea5c\n   Compiled from \"ScoringModelTest.java\"\n class dev.langchain4j.model.scoring.ScoringModelTest$TestScoringModel implements dev.langchain4j.model.scoring.ScoringModel\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #8                          // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n-  super_class: #9                         // java/lang/Object\n+  this_class: #29                         // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+  super_class: #4                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Class              #32            // dev/langchain4j/model/scoring/ScoringModelTest\n-   #2 = Methodref          #9.#33         // java/lang/Object.\"<init>\":()V\n-   #3 = Double             0.7d\n-   #5 = Methodref          #34.#35        // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #6 = Methodref          #36.#37        // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #7 = Methodref          #38.#39        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #8 = Class              #40            // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n-   #9 = Class              #41            // java/lang/Object\n-  #10 = Class              #42            // dev/langchain4j/model/scoring/ScoringModel\n-  #11 = Utf8               <init>\n-  #12 = Utf8               ()V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               TestScoringModel\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               Ldev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel;\n-  #20 = Utf8               scoreAll\n-  #21 = Utf8               (Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #22 = Utf8               segments\n-  #23 = Utf8               Ljava/util/List;\n-  #24 = Utf8               query\n-  #25 = Utf8               Ljava/lang/String;\n-  #26 = Utf8               LocalVariableTypeTable\n-  #27 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-  #28 = Utf8               Signature\n-  #29 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ljava/lang/Double;>;>;\n-  #30 = Utf8               SourceFile\n-  #31 = Utf8               ScoringModelTest.java\n-  #32 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest\n-  #33 = NameAndType        #11:#12        // \"<init>\":()V\n-  #34 = Class              #43            // java/lang/Double\n-  #35 = NameAndType        #44:#45        // valueOf:(D)Ljava/lang/Double;\n-  #36 = Class              #46            // java/util/Collections\n-  #37 = NameAndType        #47:#48        // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #38 = Class              #49            // dev/langchain4j/model/output/Response\n-  #39 = NameAndType        #50:#51        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #40 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n-  #41 = Utf8               java/lang/Object\n-  #42 = Utf8               dev/langchain4j/model/scoring/ScoringModel\n-  #43 = Utf8               java/lang/Double\n-  #44 = Utf8               valueOf\n-  #45 = Utf8               (D)Ljava/lang/Double;\n-  #46 = Utf8               java/util/Collections\n-  #47 = Utf8               singletonList\n-  #48 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #49 = Utf8               dev/langchain4j/model/output/Response\n-  #50 = Utf8               from\n-  #51 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #1 = Class              #2             // dev/langchain4j/model/scoring/ScoringModelTest\n+   #2 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest\n+   #3 = Methodref          #4.#5          // java/lang/Object.\"<init>\":()V\n+   #4 = Class              #6             // java/lang/Object\n+   #5 = NameAndType        #7:#8          // \"<init>\":()V\n+   #6 = Utf8               java/lang/Object\n+   #7 = Utf8               <init>\n+   #8 = Utf8               ()V\n+   #9 = Double             0.7d\n+  #11 = Methodref          #12.#13        // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+  #12 = Class              #14            // java/lang/Double\n+  #13 = NameAndType        #15:#16        // valueOf:(D)Ljava/lang/Double;\n+  #14 = Utf8               java/lang/Double\n+  #15 = Utf8               valueOf\n+  #16 = Utf8               (D)Ljava/lang/Double;\n+  #17 = Methodref          #18.#19        // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #18 = Class              #20            // java/util/Collections\n+  #19 = NameAndType        #21:#22        // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #20 = Utf8               java/util/Collections\n+  #21 = Utf8               singletonList\n+  #22 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #23 = Methodref          #24.#25        // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #24 = Class              #26            // dev/langchain4j/model/output/Response\n+  #25 = NameAndType        #27:#28        // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #26 = Utf8               dev/langchain4j/model/output/Response\n+  #27 = Utf8               from\n+  #28 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #29 = Class              #30            // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+  #30 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+  #31 = Class              #32            // dev/langchain4j/model/scoring/ScoringModel\n+  #32 = Utf8               dev/langchain4j/model/scoring/ScoringModel\n+  #33 = Utf8               Code\n+  #34 = Utf8               LineNumberTable\n+  #35 = Utf8               LocalVariableTable\n+  #36 = Utf8               this\n+  #37 = Utf8               Ldev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel;\n+  #38 = Utf8               scoreAll\n+  #39 = Utf8               (Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #40 = Utf8               segments\n+  #41 = Utf8               Ljava/util/List;\n+  #42 = Utf8               query\n+  #43 = Utf8               Ljava/lang/String;\n+  #44 = Utf8               LocalVariableTypeTable\n+  #45 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #46 = Utf8               Signature\n+  #47 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ljava/lang/Double;>;>;\n+  #48 = Utf8               SourceFile\n+  #49 = Utf8               ScoringModelTest.java\n+  #50 = Utf8               InnerClasses\n+  #51 = Utf8               TestScoringModel\n {\n   dev.langchain4j.model.scoring.ScoringModelTest$TestScoringModel();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokespecial #2                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #3                  // Method java/lang/Object.\"<init>\":()V\n          4: return\n       LineNumberTable:\n         line 16: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel;\n \n   public dev.langchain4j.model.output.Response<java.util.List<java.lang.Double>> scoreAll(java.util.List<dev.langchain4j.data.segment.TextSegment>, java.lang.String);\n     descriptor: (Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=3\n-         0: ldc2_w        #3                  // double 0.7d\n-         3: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-         6: invokestatic  #6                  // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-         9: invokestatic  #7                  // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+         0: ldc2_w        #9                  // double 0.7d\n+         3: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+         6: invokestatic  #17                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         9: invokestatic  #23                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n         12: areturn\n       LineNumberTable:\n         line 20: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0  this   Ldev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel;\n             0      13     1 segments   Ljava/util/List;\n             0      13     2 query   Ljava/lang/String;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      13     1 segments   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-    Signature: #29                          // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ljava/lang/Double;>;>;\n+    Signature: #47                          // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ljava/lang/Double;>;>;\n }\n SourceFile: \"ScoringModelTest.java\"\n InnerClasses:\n-  static #17= #8 of #1;                   // TestScoringModel=class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel of class dev/langchain4j/model/scoring/ScoringModelTest\n+  static #51= #29 of #1;                  // TestScoringModel=class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel of class dev/langchain4j/model/scoring/ScoringModelTest\n"}]}, {"source1": "dev/langchain4j/model/scoring/ScoringModelTest.class", "source2": "dev/langchain4j/model/scoring/ScoringModelTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,93 +1,93 @@\n-  SHA-256 checksum 8d7bf123351a22dbb009f808c0c2ee17323e2f87262466522ac78775e888bf76\n+  SHA-256 checksum 0cfdad24cb3b2c90c9207a84d08ca3a2e2b83992108b85c45853638f20b1741c\n   Compiled from \"ScoringModelTest.java\"\n class dev.langchain4j.model.scoring.ScoringModelTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #10                         // dev/langchain4j/model/scoring/ScoringModelTest\n-  super_class: #16                        // java/lang/Object\n+  this_class: #34                         // dev/langchain4j/model/scoring/ScoringModelTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 1, methods: 3, attributes: 2\n Constant pool:\n-   #1 = Methodref          #16.#45        // java/lang/Object.\"<init>\":()V\n-   #2 = String             #30            // text\n-   #3 = Class              #46            // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n-   #4 = Methodref          #3.#45         // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.\"<init>\":()V\n-   #5 = String             #47            // query\n-   #6 = InterfaceMethodref #48.#49        // dev/langchain4j/model/scoring/ScoringModel.score:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-   #7 = Methodref          #50.#51        // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-   #8 = Class              #52            // java/lang/Double\n-   #9 = Methodref          #53.#54        // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #10 = Class              #55            // dev/langchain4j/model/scoring/ScoringModelTest\n-  #11 = Double             0.7d\n-  #13 = Methodref          #56.#57        // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #14 = Methodref          #58.#59        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #15 = InterfaceMethodref #48.#60        // dev/langchain4j/model/scoring/ScoringModel.score:(Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #16 = Class              #61            // java/lang/Object\n-  #17 = Utf8               TestScoringModel\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               SCORE\n-  #20 = Utf8               D\n-  #21 = Utf8               ConstantValue\n-  #22 = Utf8               <init>\n-  #23 = Utf8               ()V\n-  #24 = Utf8               Code\n-  #25 = Utf8               LineNumberTable\n-  #26 = Utf8               LocalVariableTable\n-  #27 = Utf8               this\n-  #28 = Utf8               Ldev/langchain4j/model/scoring/ScoringModelTest;\n-  #29 = Utf8               should_score_text\n-  #30 = Utf8               text\n-  #31 = Utf8               Ljava/lang/String;\n-  #32 = Utf8               model\n-  #33 = Utf8               Ldev/langchain4j/model/scoring/ScoringModel;\n-  #34 = Utf8               response\n-  #35 = Utf8               Ldev/langchain4j/model/output/Response;\n-  #36 = Utf8               LocalVariableTypeTable\n-  #37 = Utf8               Ldev/langchain4j/model/output/Response<Ljava/lang/Double;>;\n-  #38 = Utf8               RuntimeVisibleAnnotations\n-  #39 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #40 = Utf8               should_score_text_segment\n-  #41 = Utf8               segment\n-  #42 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-  #43 = Utf8               SourceFile\n-  #44 = Utf8               ScoringModelTest.java\n-  #45 = NameAndType        #22:#23        // \"<init>\":()V\n-  #46 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n-  #47 = Utf8               query\n-  #48 = Class              #62            // dev/langchain4j/model/scoring/ScoringModel\n-  #49 = NameAndType        #63:#64        // score:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #50 = Class              #65            // dev/langchain4j/model/output/Response\n-  #51 = NameAndType        #66:#67        // content:()Ljava/lang/Object;\n-  #52 = Utf8               java/lang/Double\n-  #53 = Class              #68            // org/assertj/core/api/Assertions\n-  #54 = NameAndType        #69:#70        // assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #55 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest\n-  #56 = Class              #71            // org/assertj/core/api/AbstractDoubleAssert\n-  #57 = NameAndType        #72:#73        // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #58 = Class              #74            // dev/langchain4j/data/segment/TextSegment\n-  #59 = NameAndType        #75:#76        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #60 = NameAndType        #63:#77        // score:(Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #61 = Utf8               java/lang/Object\n-  #62 = Utf8               dev/langchain4j/model/scoring/ScoringModel\n-  #63 = Utf8               score\n-  #64 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #65 = Utf8               dev/langchain4j/model/output/Response\n-  #66 = Utf8               content\n-  #67 = Utf8               ()Ljava/lang/Object;\n-  #68 = Utf8               org/assertj/core/api/Assertions\n-  #69 = Utf8               assertThat\n-  #70 = Utf8               (Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #71 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n-  #72 = Utf8               isEqualTo\n-  #73 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #74 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #75 = Utf8               from\n-  #76 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #77 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // text\n+   #8 = Utf8               text\n+   #9 = Class              #10            // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+  #10 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+  #11 = Methodref          #9.#3          // dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.\"<init>\":()V\n+  #12 = String             #13            // query\n+  #13 = Utf8               query\n+  #14 = InterfaceMethodref #15.#16        // dev/langchain4j/model/scoring/ScoringModel.score:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #15 = Class              #17            // dev/langchain4j/model/scoring/ScoringModel\n+  #16 = NameAndType        #18:#19        // score:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #17 = Utf8               dev/langchain4j/model/scoring/ScoringModel\n+  #18 = Utf8               score\n+  #19 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #20 = Methodref          #21.#22        // dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+  #21 = Class              #23            // dev/langchain4j/model/output/Response\n+  #22 = NameAndType        #24:#25        // content:()Ljava/lang/Object;\n+  #23 = Utf8               dev/langchain4j/model/output/Response\n+  #24 = Utf8               content\n+  #25 = Utf8               ()Ljava/lang/Object;\n+  #26 = Class              #27            // java/lang/Double\n+  #27 = Utf8               java/lang/Double\n+  #28 = Methodref          #29.#30        // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #29 = Class              #31            // org/assertj/core/api/Assertions\n+  #30 = NameAndType        #32:#33        // assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #31 = Utf8               org/assertj/core/api/Assertions\n+  #32 = Utf8               assertThat\n+  #33 = Utf8               (Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #34 = Class              #35            // dev/langchain4j/model/scoring/ScoringModelTest\n+  #35 = Utf8               dev/langchain4j/model/scoring/ScoringModelTest\n+  #36 = Double             0.7d\n+  #38 = Methodref          #39.#40        // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #39 = Class              #41            // org/assertj/core/api/AbstractDoubleAssert\n+  #40 = NameAndType        #42:#43        // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #41 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n+  #42 = Utf8               isEqualTo\n+  #43 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #44 = Methodref          #45.#46        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #45 = Class              #47            // dev/langchain4j/data/segment/TextSegment\n+  #46 = NameAndType        #48:#49        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #47 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #48 = Utf8               from\n+  #49 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #50 = InterfaceMethodref #15.#51        // dev/langchain4j/model/scoring/ScoringModel.score:(Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #51 = NameAndType        #18:#52        // score:(Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #52 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #53 = Utf8               SCORE\n+  #54 = Utf8               D\n+  #55 = Utf8               ConstantValue\n+  #56 = Utf8               Code\n+  #57 = Utf8               LineNumberTable\n+  #58 = Utf8               LocalVariableTable\n+  #59 = Utf8               this\n+  #60 = Utf8               Ldev/langchain4j/model/scoring/ScoringModelTest;\n+  #61 = Utf8               should_score_text\n+  #62 = Utf8               Ljava/lang/String;\n+  #63 = Utf8               model\n+  #64 = Utf8               Ldev/langchain4j/model/scoring/ScoringModel;\n+  #65 = Utf8               response\n+  #66 = Utf8               Ldev/langchain4j/model/output/Response;\n+  #67 = Utf8               LocalVariableTypeTable\n+  #68 = Utf8               Ldev/langchain4j/model/output/Response<Ljava/lang/Double;>;\n+  #69 = Utf8               RuntimeVisibleAnnotations\n+  #70 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #71 = Utf8               should_score_text_segment\n+  #72 = Utf8               segment\n+  #73 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #74 = Utf8               SourceFile\n+  #75 = Utf8               ScoringModelTest.java\n+  #76 = Utf8               InnerClasses\n+  #77 = Utf8               TestScoringModel\n {\n   private static final double SCORE = 0.7d;\n     descriptor: D\n     flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL\n     ConstantValue: double 0.7d\n \n   dev.langchain4j.model.scoring.ScoringModelTest();\n@@ -105,31 +105,31 @@\n             0       5     0  this   Ldev/langchain4j/model/scoring/ScoringModelTest;\n \n   void should_score_text();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: ldc           #2                  // String text\n+         0: ldc           #7                  // String text\n          2: astore_1\n-         3: new           #3                  // class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+         3: new           #9                  // class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n          6: dup\n-         7: invokespecial #4                  // Method dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.\"<init>\":()V\n+         7: invokespecial #11                 // Method dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.\"<init>\":()V\n         10: astore_2\n         11: aload_2\n         12: aload_1\n-        13: ldc           #5                  // String query\n-        15: invokeinterface #6,  3            // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.score:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+        13: ldc           #12                 // String query\n+        15: invokeinterface #14,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.score:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n         20: astore_3\n         21: aload_3\n-        22: invokevirtual #7                  // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-        25: checkcast     #8                  // class java/lang/Double\n-        28: invokestatic  #9                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-        31: ldc2_w        #11                 // double 0.7d\n-        34: invokevirtual #13                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        22: invokevirtual #20                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+        25: checkcast     #26                 // class java/lang/Double\n+        28: invokestatic  #28                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        31: ldc2_w        #36                 // double 0.7d\n+        34: invokevirtual #38                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         37: pop\n         38: return\n       LineNumberTable:\n         line 28: 0\n         line 30: 3\n         line 33: 11\n         line 36: 21\n@@ -140,40 +140,40 @@\n             3      36     1  text   Ljava/lang/String;\n            11      28     2 model   Ldev/langchain4j/model/scoring/ScoringModel;\n            21      18     3 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            21      18     3 response   Ldev/langchain4j/model/output/Response<Ljava/lang/Double;>;\n     RuntimeVisibleAnnotations:\n-      0: #39()\n+      0: #70()\n         org.junit.jupiter.api.Test\n \n   void should_score_text_segment();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: ldc           #2                  // String text\n-         2: invokestatic  #14                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         0: ldc           #7                  // String text\n+         2: invokestatic  #44                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n          5: astore_1\n-         6: new           #3                  // class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n+         6: new           #9                  // class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel\n          9: dup\n-        10: invokespecial #4                  // Method dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.\"<init>\":()V\n+        10: invokespecial #11                 // Method dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n         15: aload_1\n-        16: ldc           #5                  // String query\n-        18: invokeinterface #15,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.score:(Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+        16: ldc           #12                 // String query\n+        18: invokeinterface #50,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.score:(Ldev/langchain4j/data/segment/TextSegment;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n         23: astore_3\n         24: aload_3\n-        25: invokevirtual #7                  // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n-        28: checkcast     #8                  // class java/lang/Double\n-        31: invokestatic  #9                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-        34: ldc2_w        #11                 // double 0.7d\n-        37: invokevirtual #13                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        25: invokevirtual #20                 // Method dev/langchain4j/model/output/Response.content:()Ljava/lang/Object;\n+        28: checkcast     #26                 // class java/lang/Double\n+        31: invokestatic  #28                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        34: ldc2_w        #36                 // double 0.7d\n+        37: invokevirtual #38                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         40: pop\n         41: return\n       LineNumberTable:\n         line 43: 0\n         line 45: 6\n         line 48: 14\n         line 51: 24\n@@ -184,13 +184,13 @@\n             6      36     1 segment   Ldev/langchain4j/data/segment/TextSegment;\n            14      28     2 model   Ldev/langchain4j/model/scoring/ScoringModel;\n            24      18     3 response   Ldev/langchain4j/model/output/Response;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            24      18     3 response   Ldev/langchain4j/model/output/Response<Ljava/lang/Double;>;\n     RuntimeVisibleAnnotations:\n-      0: #39()\n+      0: #70()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ScoringModelTest.java\"\n InnerClasses:\n-  static #17= #3 of #10;                  // TestScoringModel=class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel of class dev/langchain4j/model/scoring/ScoringModelTest\n+  static #77= #9 of #34;                  // TestScoringModel=class dev/langchain4j/model/scoring/ScoringModelTest$TestScoringModel of class dev/langchain4j/model/scoring/ScoringModelTest\n"}]}, {"source1": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator.class", "source2": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,101 +1,101 @@\n-  SHA-256 checksum d1395f33f834d654ca0301349445497f7d060667df9c9ddded79563fe88a2625\n+  SHA-256 checksum 76a8497ae1d8d3751b285d7ddb0b7fa7546702e3df1fa73158a13e8d5d53bcf4\n   Compiled from \"DefaultRetrievalAugmentorTest.java\"\n class dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestContentAggregator implements dev.langchain4j.rag.content.aggregator.ContentAggregator\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #10                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n-  super_class: #11                        // java/lang/Object\n+  this_class: #42                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 3\n Constant pool:\n-   #1 = Methodref          #11.#32        // java/lang/Object.\"<init>\":()V\n-   #2 = InterfaceMethodref #33.#34        // java/util/Map.values:()Ljava/util/Collection;\n-   #3 = InterfaceMethodref #35.#36        // java/util/Collection.stream:()Ljava/util/stream/Stream;\n-   #4 = InvokeDynamic      #0:#42         // #0:apply:()Ljava/util/function/Function;\n-   #5 = InterfaceMethodref #43.#44        // java/util/stream/Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #6 = InvokeDynamic      #1:#42         // #1:apply:()Ljava/util/function/Function;\n-   #7 = Methodref          #46.#47        // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-   #8 = InterfaceMethodref #43.#48        // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #9 = Class              #49            // java/util/List\n-  #10 = Class              #51            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n-  #11 = Class              #52            // java/lang/Object\n-  #12 = Class              #53            // dev/langchain4j/rag/content/aggregator/ContentAggregator\n-  #13 = Utf8               <init>\n-  #14 = Utf8               ()V\n-  #15 = Utf8               Code\n-  #16 = Utf8               LineNumberTable\n-  #17 = Utf8               LocalVariableTable\n-  #18 = Utf8               this\n-  #19 = Utf8               TestContentAggregator\n-  #20 = Utf8               InnerClasses\n-  #21 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator;\n-  #22 = Utf8               aggregate\n-  #23 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n-  #24 = Utf8               queryToContents\n-  #25 = Utf8               Ljava/util/Map;\n-  #26 = Utf8               LocalVariableTypeTable\n-  #27 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n-  #28 = Utf8               Signature\n-  #29 = Utf8               (Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-  #30 = Utf8               SourceFile\n-  #31 = Utf8               DefaultRetrievalAugmentorTest.java\n-  #32 = NameAndType        #13:#14        // \"<init>\":()V\n-  #33 = Class              #54            // java/util/Map\n-  #34 = NameAndType        #55:#56        // values:()Ljava/util/Collection;\n-  #35 = Class              #57            // java/util/Collection\n-  #36 = NameAndType        #58:#59        // stream:()Ljava/util/stream/Stream;\n-  #37 = Utf8               BootstrapMethods\n-  #38 = MethodHandle       6:#60          // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #39 = MethodType         #61            //  (Ljava/lang/Object;)Ljava/lang/Object;\n-  #40 = MethodHandle       9:#3           // REF_invokeInterface java/util/Collection.stream:()Ljava/util/stream/Stream;\n-  #41 = MethodType         #62            //  (Ljava/util/Collection;)Ljava/util/stream/Stream;\n-  #42 = NameAndType        #63:#64        // apply:()Ljava/util/function/Function;\n-  #43 = Class              #65            // java/util/stream/Stream\n-  #44 = NameAndType        #66:#67        // flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #45 = MethodType         #68            //  (Ljava/util/List;)Ljava/util/stream/Stream;\n-  #46 = Class              #69            // java/util/stream/Collectors\n-  #47 = NameAndType        #70:#71        // toList:()Ljava/util/stream/Collector;\n-  #48 = NameAndType        #72:#73        // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #49 = Utf8               java/util/List\n-  #50 = Class              #74            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  #51 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n-  #52 = Utf8               java/lang/Object\n-  #53 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n-  #54 = Utf8               java/util/Map\n-  #55 = Utf8               values\n-  #56 = Utf8               ()Ljava/util/Collection;\n-  #57 = Utf8               java/util/Collection\n-  #58 = Utf8               stream\n-  #59 = Utf8               ()Ljava/util/stream/Stream;\n-  #60 = Methodref          #75.#76        // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #61 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #62 = Utf8               (Ljava/util/Collection;)Ljava/util/stream/Stream;\n-  #63 = Utf8               apply\n-  #64 = Utf8               ()Ljava/util/function/Function;\n-  #65 = Utf8               java/util/stream/Stream\n-  #66 = Utf8               flatMap\n-  #67 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #68 = Utf8               (Ljava/util/List;)Ljava/util/stream/Stream;\n-  #69 = Utf8               java/util/stream/Collectors\n-  #70 = Utf8               toList\n-  #71 = Utf8               ()Ljava/util/stream/Collector;\n-  #72 = Utf8               collect\n-  #73 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #74 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  #75 = Class              #77            // java/lang/invoke/LambdaMetafactory\n-  #76 = NameAndType        #78:#81        // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #77 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #78 = Utf8               metafactory\n-  #79 = Class              #83            // java/lang/invoke/MethodHandles$Lookup\n-  #80 = Utf8               Lookup\n-  #81 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #82 = Class              #84            // java/lang/invoke/MethodHandles\n-  #83 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #84 = Utf8               java/lang/invoke/MethodHandles\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = InterfaceMethodref #8.#9          // java/util/Map.values:()Ljava/util/Collection;\n+   #8 = Class              #10            // java/util/Map\n+   #9 = NameAndType        #11:#12        // values:()Ljava/util/Collection;\n+  #10 = Utf8               java/util/Map\n+  #11 = Utf8               values\n+  #12 = Utf8               ()Ljava/util/Collection;\n+  #13 = InterfaceMethodref #14.#15        // java/util/Collection.stream:()Ljava/util/stream/Stream;\n+  #14 = Class              #16            // java/util/Collection\n+  #15 = NameAndType        #17:#18        // stream:()Ljava/util/stream/Stream;\n+  #16 = Utf8               java/util/Collection\n+  #17 = Utf8               stream\n+  #18 = Utf8               ()Ljava/util/stream/Stream;\n+  #19 = InvokeDynamic      #0:#20         // #0:apply:()Ljava/util/function/Function;\n+  #20 = NameAndType        #21:#22        // apply:()Ljava/util/function/Function;\n+  #21 = Utf8               apply\n+  #22 = Utf8               ()Ljava/util/function/Function;\n+  #23 = InterfaceMethodref #24.#25        // java/util/stream/Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #24 = Class              #26            // java/util/stream/Stream\n+  #25 = NameAndType        #27:#28        // flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #26 = Utf8               java/util/stream/Stream\n+  #27 = Utf8               flatMap\n+  #28 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #29 = InvokeDynamic      #1:#20         // #1:apply:()Ljava/util/function/Function;\n+  #30 = Methodref          #31.#32        // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+  #31 = Class              #33            // java/util/stream/Collectors\n+  #32 = NameAndType        #34:#35        // toList:()Ljava/util/stream/Collector;\n+  #33 = Utf8               java/util/stream/Collectors\n+  #34 = Utf8               toList\n+  #35 = Utf8               ()Ljava/util/stream/Collector;\n+  #36 = InterfaceMethodref #24.#37        // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #37 = NameAndType        #38:#39        // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #38 = Utf8               collect\n+  #39 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #40 = Class              #41            // java/util/List\n+  #41 = Utf8               java/util/List\n+  #42 = Class              #43            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n+  #43 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n+  #44 = Class              #45            // dev/langchain4j/rag/content/aggregator/ContentAggregator\n+  #45 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n+  #46 = Utf8               Code\n+  #47 = Utf8               LineNumberTable\n+  #48 = Utf8               LocalVariableTable\n+  #49 = Utf8               this\n+  #50 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator;\n+  #51 = Utf8               aggregate\n+  #52 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n+  #53 = Utf8               queryToContents\n+  #54 = Utf8               Ljava/util/Map;\n+  #55 = Utf8               LocalVariableTypeTable\n+  #56 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n+  #57 = Utf8               Signature\n+  #58 = Utf8               (Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #59 = Utf8               SourceFile\n+  #60 = Utf8               DefaultRetrievalAugmentorTest.java\n+  #61 = Utf8               BootstrapMethods\n+  #62 = MethodHandle       6:#63          // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #63 = Methodref          #64.#65        // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #64 = Class              #66            // java/lang/invoke/LambdaMetafactory\n+  #65 = NameAndType        #67:#68        // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #66 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #67 = Utf8               metafactory\n+  #68 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #69 = MethodType         #70            //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #70 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #71 = MethodHandle       9:#13          // REF_invokeInterface java/util/Collection.stream:()Ljava/util/stream/Stream;\n+  #72 = MethodType         #73            //  (Ljava/util/Collection;)Ljava/util/stream/Stream;\n+  #73 = Utf8               (Ljava/util/Collection;)Ljava/util/stream/Stream;\n+  #74 = MethodType         #75            //  (Ljava/util/List;)Ljava/util/stream/Stream;\n+  #75 = Utf8               (Ljava/util/List;)Ljava/util/stream/Stream;\n+  #76 = Utf8               InnerClasses\n+  #77 = Class              #78            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #78 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #79 = Utf8               TestContentAggregator\n+  #80 = Class              #81            // java/lang/invoke/MethodHandles$Lookup\n+  #81 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #82 = Class              #83            // java/lang/invoke/MethodHandles\n+  #83 = Utf8               java/lang/invoke/MethodHandles\n+  #84 = Utf8               Lookup\n {\n   dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestContentAggregator();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -109,23 +109,23 @@\n \n   public java.util.List<dev.langchain4j.rag.content.Content> aggregate(java.util.Map<dev.langchain4j.rag.query.Query, java.util.Collection<java.util.List<dev.langchain4j.rag.content.Content>>>);\n     descriptor: (Ljava/util/Map;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_1\n-         1: invokeinterface #2,  1            // InterfaceMethod java/util/Map.values:()Ljava/util/Collection;\n-         6: invokeinterface #3,  1            // InterfaceMethod java/util/Collection.stream:()Ljava/util/stream/Stream;\n-        11: invokedynamic #4,  0              // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n-        16: invokeinterface #5,  2            // InterfaceMethod java/util/stream/Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        21: invokedynamic #6,  0              // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n-        26: invokeinterface #5,  2            // InterfaceMethod java/util/stream/Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        31: invokestatic  #7                  // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        34: invokeinterface #8,  2            // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        39: checkcast     #9                  // class java/util/List\n+         1: invokeinterface #7,  1            // InterfaceMethod java/util/Map.values:()Ljava/util/Collection;\n+         6: invokeinterface #13,  1           // InterfaceMethod java/util/Collection.stream:()Ljava/util/stream/Stream;\n+        11: invokedynamic #19,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+        16: invokeinterface #23,  2           // InterfaceMethod java/util/stream/Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        21: invokedynamic #29,  0             // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n+        26: invokeinterface #23,  2           // InterfaceMethod java/util/stream/Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        31: invokestatic  #30                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        34: invokeinterface #36,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        39: checkcast     #40                 // class java/util/List\n         42: areturn\n       LineNumberTable:\n         line 162: 0\n         line 163: 6\n         line 164: 16\n         line 165: 26\n         line 166: 31\n@@ -133,24 +133,24 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      43     0  this   Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator;\n             0      43     1 queryToContents   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      43     1 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n-    Signature: #29                          // (Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+    Signature: #58                          // (Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n }\n SourceFile: \"DefaultRetrievalAugmentorTest.java\"\n-InnerClasses:\n-  static #19= #10 of #50;                 // TestContentAggregator=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  public static final #80= #79 of #82;    // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #38 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #62 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #39 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #40 REF_invokeInterface java/util/Collection.stream:()Ljava/util/stream/Stream;\n-      #41 (Ljava/util/Collection;)Ljava/util/stream/Stream;\n-  1: #38 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #69 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #71 REF_invokeInterface java/util/Collection.stream:()Ljava/util/stream/Stream;\n+      #72 (Ljava/util/Collection;)Ljava/util/stream/Stream;\n+  1: #62 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #39 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #40 REF_invokeInterface java/util/Collection.stream:()Ljava/util/stream/Stream;\n-      #45 (Ljava/util/List;)Ljava/util/stream/Stream;\n+      #69 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #71 REF_invokeInterface java/util/Collection.stream:()Ljava/util/stream/Stream;\n+      #74 (Ljava/util/List;)Ljava/util/stream/Stream;\n+InnerClasses:\n+  static #79= #42 of #77;                 // TestContentAggregator=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  public static final #84= #80 of #82;    // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.class", "source2": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,132 +1,132 @@\n-  SHA-256 checksum feedd1fa22aa2e00c9b05baef809007843471e5b782647a203cb393980016b93\n+  SHA-256 checksum 4bcf37bc449e71162aa44ec6bc71150f9398662dada1d215863080b93992e672\n   Compiled from \"DefaultRetrievalAugmentorTest.java\"\n class dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestContentInjector implements dev.langchain4j.rag.content.injector.ContentInjector\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #17                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n-  super_class: #18                        // java/lang/Object\n+  this_class: #66                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 3\n Constant pool:\n-    #1 = Methodref          #18.#47       // java/lang/Object.\"<init>\":()V\n-    #2 = InterfaceMethodref #48.#49       // java/util/List.stream:()Ljava/util/stream/Stream;\n-    #3 = InvokeDynamic      #0:#55        // #0:apply:()Ljava/util/function/Function;\n-    #4 = InterfaceMethodref #56.#57       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-    #5 = String             #58           // \\n\n-    #6 = Methodref          #59.#60       // java/util/stream/Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n-    #7 = InterfaceMethodref #56.#61       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-    #8 = Class              #62           // java/lang/String\n-    #9 = Class              #63           // java/lang/StringBuilder\n-   #10 = Methodref          #9.#47        // java/lang/StringBuilder.\"<init>\":()V\n-   #11 = Methodref          #64.#65       // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-   #12 = Methodref          #9.#66        // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #13 = Methodref          #9.#67        // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #14 = Methodref          #64.#68       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #15 = Methodref          #69.#70       // dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-   #16 = Methodref          #71.#65       // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-   #17 = Class              #73           // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n-   #18 = Class              #74           // java/lang/Object\n-   #19 = Class              #75           // dev/langchain4j/rag/content/injector/ContentInjector\n-   #20 = Utf8               <init>\n-   #21 = Utf8               ()V\n-   #22 = Utf8               Code\n-   #23 = Utf8               LineNumberTable\n-   #24 = Utf8               LocalVariableTable\n-   #25 = Utf8               this\n-   #26 = Utf8               TestContentInjector\n-   #27 = Utf8               InnerClasses\n-   #28 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector;\n-   #29 = Utf8               inject\n-   #30 = Utf8               (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-   #31 = Utf8               contents\n-   #32 = Utf8               Ljava/util/List;\n-   #33 = Utf8               userMessage\n-   #34 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-   #35 = Utf8               joinedContents\n-   #36 = Utf8               Ljava/lang/String;\n-   #37 = Utf8               LocalVariableTypeTable\n-   #38 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-   #39 = Utf8               Signature\n-   #40 = Utf8               (Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-   #41 = Utf8               lambda$inject$0\n-   #42 = Utf8               (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n-   #43 = Utf8               it\n-   #44 = Utf8               Ldev/langchain4j/rag/content/Content;\n-   #45 = Utf8               SourceFile\n-   #46 = Utf8               DefaultRetrievalAugmentorTest.java\n-   #47 = NameAndType        #20:#21       // \"<init>\":()V\n-   #48 = Class              #76           // java/util/List\n-   #49 = NameAndType        #77:#78       // stream:()Ljava/util/stream/Stream;\n-   #50 = Utf8               BootstrapMethods\n-   #51 = MethodHandle       6:#79         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #52 = MethodType         #80           //  (Ljava/lang/Object;)Ljava/lang/Object;\n-   #53 = MethodHandle       6:#81         // REF_invokeStatic dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n-   #54 = MethodType         #42           //  (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n-   #55 = NameAndType        #82:#83       // apply:()Ljava/util/function/Function;\n-   #56 = Class              #84           // java/util/stream/Stream\n-   #57 = NameAndType        #85:#86       // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #58 = Utf8               \\n\n-   #59 = Class              #87           // java/util/stream/Collectors\n-   #60 = NameAndType        #88:#89       // joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n-   #61 = NameAndType        #90:#91       // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #62 = Utf8               java/lang/String\n-   #63 = Utf8               java/lang/StringBuilder\n-   #64 = Class              #92           // dev/langchain4j/data/message/UserMessage\n-   #65 = NameAndType        #93:#94       // text:()Ljava/lang/String;\n-   #66 = NameAndType        #95:#96       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #67 = NameAndType        #97:#94       // toString:()Ljava/lang/String;\n-   #68 = NameAndType        #98:#99       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #69 = Class              #100          // dev/langchain4j/rag/content/Content\n-   #70 = NameAndType        #101:#102     // textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-   #71 = Class              #103          // dev/langchain4j/data/segment/TextSegment\n-   #72 = Class              #104          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-   #73 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n-   #74 = Utf8               java/lang/Object\n-   #75 = Utf8               dev/langchain4j/rag/content/injector/ContentInjector\n-   #76 = Utf8               java/util/List\n-   #77 = Utf8               stream\n-   #78 = Utf8               ()Ljava/util/stream/Stream;\n-   #79 = Methodref          #105.#106     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #80 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-   #81 = Methodref          #17.#107      // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n-   #82 = Utf8               apply\n-   #83 = Utf8               ()Ljava/util/function/Function;\n-   #84 = Utf8               java/util/stream/Stream\n-   #85 = Utf8               map\n-   #86 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #87 = Utf8               java/util/stream/Collectors\n-   #88 = Utf8               joining\n-   #89 = Utf8               (Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n-   #90 = Utf8               collect\n-   #91 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #92 = Utf8               dev/langchain4j/data/message/UserMessage\n-   #93 = Utf8               text\n-   #94 = Utf8               ()Ljava/lang/String;\n-   #95 = Utf8               append\n-   #96 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #97 = Utf8               toString\n-   #98 = Utf8               from\n-   #99 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #100 = Utf8               dev/langchain4j/rag/content/Content\n-  #101 = Utf8               textSegment\n-  #102 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n-  #103 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #104 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  #105 = Class              #108          // java/lang/invoke/LambdaMetafactory\n-  #106 = NameAndType        #109:#112     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #107 = NameAndType        #41:#42       // lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n-  #108 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #109 = Utf8               metafactory\n-  #110 = Class              #114          // java/lang/invoke/MethodHandles$Lookup\n-  #111 = Utf8               Lookup\n-  #112 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #113 = Class              #115          // java/lang/invoke/MethodHandles\n-  #114 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #115 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = InterfaceMethodref #8.#9         // java/util/List.stream:()Ljava/util/stream/Stream;\n+    #8 = Class              #10           // java/util/List\n+    #9 = NameAndType        #11:#12       // stream:()Ljava/util/stream/Stream;\n+   #10 = Utf8               java/util/List\n+   #11 = Utf8               stream\n+   #12 = Utf8               ()Ljava/util/stream/Stream;\n+   #13 = InvokeDynamic      #0:#14        // #0:apply:()Ljava/util/function/Function;\n+   #14 = NameAndType        #15:#16       // apply:()Ljava/util/function/Function;\n+   #15 = Utf8               apply\n+   #16 = Utf8               ()Ljava/util/function/Function;\n+   #17 = InterfaceMethodref #18.#19       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #18 = Class              #20           // java/util/stream/Stream\n+   #19 = NameAndType        #21:#22       // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #20 = Utf8               java/util/stream/Stream\n+   #21 = Utf8               map\n+   #22 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #23 = String             #24           // \\n\n+   #24 = Utf8               \\n\n+   #25 = Methodref          #26.#27       // java/util/stream/Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n+   #26 = Class              #28           // java/util/stream/Collectors\n+   #27 = NameAndType        #29:#30       // joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n+   #28 = Utf8               java/util/stream/Collectors\n+   #29 = Utf8               joining\n+   #30 = Utf8               (Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n+   #31 = InterfaceMethodref #18.#32       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #32 = NameAndType        #33:#34       // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #33 = Utf8               collect\n+   #34 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #35 = Class              #36           // java/lang/String\n+   #36 = Utf8               java/lang/String\n+   #37 = Class              #38           // java/lang/StringBuilder\n+   #38 = Utf8               java/lang/StringBuilder\n+   #39 = Methodref          #37.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #40 = Methodref          #41.#42       // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+   #41 = Class              #43           // dev/langchain4j/data/message/UserMessage\n+   #42 = NameAndType        #44:#45       // text:()Ljava/lang/String;\n+   #43 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #44 = Utf8               text\n+   #45 = Utf8               ()Ljava/lang/String;\n+   #46 = Methodref          #37.#47       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #47 = NameAndType        #48:#49       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #48 = Utf8               append\n+   #49 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #50 = Methodref          #37.#51       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+   #51 = NameAndType        #52:#45       // toString:()Ljava/lang/String;\n+   #52 = Utf8               toString\n+   #53 = Methodref          #41.#54       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #54 = NameAndType        #55:#56       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #55 = Utf8               from\n+   #56 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #57 = Methodref          #58.#59       // dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+   #58 = Class              #60           // dev/langchain4j/rag/content/Content\n+   #59 = NameAndType        #61:#62       // textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+   #60 = Utf8               dev/langchain4j/rag/content/Content\n+   #61 = Utf8               textSegment\n+   #62 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n+   #63 = Methodref          #64.#42       // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+   #64 = Class              #65           // dev/langchain4j/data/segment/TextSegment\n+   #65 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #66 = Class              #67           // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n+   #67 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n+   #68 = Class              #69           // dev/langchain4j/rag/content/injector/ContentInjector\n+   #69 = Utf8               dev/langchain4j/rag/content/injector/ContentInjector\n+   #70 = Utf8               Code\n+   #71 = Utf8               LineNumberTable\n+   #72 = Utf8               LocalVariableTable\n+   #73 = Utf8               this\n+   #74 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector;\n+   #75 = Utf8               inject\n+   #76 = Utf8               (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+   #77 = Utf8               contents\n+   #78 = Utf8               Ljava/util/List;\n+   #79 = Utf8               userMessage\n+   #80 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+   #81 = Utf8               joinedContents\n+   #82 = Utf8               Ljava/lang/String;\n+   #83 = Utf8               LocalVariableTypeTable\n+   #84 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+   #85 = Utf8               Signature\n+   #86 = Utf8               (Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+   #87 = Utf8               lambda$inject$0\n+   #88 = Utf8               (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+   #89 = Utf8               it\n+   #90 = Utf8               Ldev/langchain4j/rag/content/Content;\n+   #91 = Utf8               SourceFile\n+   #92 = Utf8               DefaultRetrievalAugmentorTest.java\n+   #93 = Utf8               BootstrapMethods\n+   #94 = MethodHandle       6:#95         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+   #95 = Methodref          #96.#97       // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+   #96 = Class              #98           // java/lang/invoke/LambdaMetafactory\n+   #97 = NameAndType        #99:#100      // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+   #98 = Utf8               java/lang/invoke/LambdaMetafactory\n+   #99 = Utf8               metafactory\n+  #100 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #101 = MethodType         #102          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #102 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #103 = MethodHandle       6:#104        // REF_invokeStatic dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+  #104 = Methodref          #66.#105      // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+  #105 = NameAndType        #87:#88       // lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+  #106 = MethodType         #88           //  (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+  #107 = Utf8               InnerClasses\n+  #108 = Class              #109          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #109 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #110 = Utf8               TestContentInjector\n+  #111 = Class              #112          // java/lang/invoke/MethodHandles$Lookup\n+  #112 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #113 = Class              #114          // java/lang/invoke/MethodHandles\n+  #114 = Utf8               java/lang/invoke/MethodHandles\n+  #115 = Utf8               Lookup\n {\n   dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestContentInjector();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -140,34 +140,34 @@\n \n   public dev.langchain4j.data.message.UserMessage inject(java.util.List<dev.langchain4j.rag.content.Content>, dev.langchain4j.data.message.UserMessage);\n     descriptor: (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=4, args_size=3\n          0: aload_1\n-         1: invokeinterface #2,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-         6: invokedynamic #3,  0              // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n-        11: invokeinterface #4,  2            // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        16: ldc           #5                  // String \\n\n-        18: invokestatic  #6                  // Method java/util/stream/Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n-        21: invokeinterface #7,  2            // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        26: checkcast     #8                  // class java/lang/String\n+         1: invokeinterface #7,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+         6: invokedynamic #13,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+        11: invokeinterface #17,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        16: ldc           #23                 // String \\n\n+        18: invokestatic  #25                 // Method java/util/stream/Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;\n+        21: invokeinterface #31,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        26: checkcast     #35                 // class java/lang/String\n         29: astore_3\n-        30: new           #9                  // class java/lang/StringBuilder\n+        30: new           #37                 // class java/lang/StringBuilder\n         33: dup\n-        34: invokespecial #10                 // Method java/lang/StringBuilder.\"<init>\":()V\n+        34: invokespecial #39                 // Method java/lang/StringBuilder.\"<init>\":()V\n         37: aload_2\n-        38: invokevirtual #11                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        41: invokevirtual #12                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        44: ldc           #5                  // String \\n\n-        46: invokevirtual #12                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        38: invokevirtual #40                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        41: invokevirtual #46                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        44: ldc           #23                 // String \\n\n+        46: invokevirtual #46                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         49: aload_3\n-        50: invokevirtual #12                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        53: invokevirtual #13                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-        56: invokestatic  #14                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        50: invokevirtual #46                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        53: invokevirtual #50                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        56: invokestatic  #53                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         59: areturn\n       LineNumberTable:\n         line 174: 0\n         line 175: 11\n         line 176: 18\n         line 177: 30\n       LocalVariableTable:\n@@ -175,34 +175,34 @@\n             0      60     0  this   Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector;\n             0      60     1 contents   Ljava/util/List;\n             0      60     2 userMessage   Ldev/langchain4j/data/message/UserMessage;\n            30      30     3 joinedContents   Ljava/lang/String;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      60     1 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-    Signature: #40                          // (Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+    Signature: #86                          // (Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n \n   private static java.lang.String lambda$inject$0(dev.langchain4j.rag.content.Content);\n     descriptor: (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #15                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-         4: invokevirtual #16                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+         1: invokevirtual #57                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+         4: invokevirtual #63                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n          7: areturn\n       LineNumberTable:\n         line 175: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0    it   Ldev/langchain4j/rag/content/Content;\n }\n SourceFile: \"DefaultRetrievalAugmentorTest.java\"\n-InnerClasses:\n-  static #26= #17 of #72;                 // TestContentInjector=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  public static final #111= #110 of #113; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #51 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #94 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #52 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #53 REF_invokeStatic dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n-      #54 (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+      #101 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #103 REF_invokeStatic dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.lambda$inject$0:(Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+      #106 (Ldev/langchain4j/rag/content/Content;)Ljava/lang/String;\n+InnerClasses:\n+  static #110= #66 of #108;               // TestContentInjector=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  public static final #115= #111 of #113; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.class", "source2": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,74 +1,74 @@\n-  SHA-256 checksum 544e418685fa6194e9769fceda2d241cc06ca96312232a4ade900f8b460ceab3\n+  SHA-256 checksum b0734e17a01798a1872152a80ec574ab64abae1dc33c9783f012b743f8349715\n   Compiled from \"DefaultRetrievalAugmentorTest.java\"\n class dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestContentRetriever implements dev.langchain4j.rag.content.retriever.ContentRetriever\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n-  super_class: #5                         // java/lang/Object\n+  this_class: #14                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #5.#28         // java/lang/Object.\"<init>\":()V\n-   #2 = Methodref          #29.#30        // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #3 = Fieldref           #4.#31         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.contents:Ljava/util/List;\n-   #4 = Class              #33            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n-   #5 = Class              #34            // java/lang/Object\n-   #6 = Class              #35            // dev/langchain4j/rag/content/retriever/ContentRetriever\n-   #7 = Utf8               contents\n-   #8 = Utf8               Ljava/util/List;\n-   #9 = Utf8               Signature\n-  #10 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-  #11 = Utf8               <init>\n-  #12 = Utf8               ([Ldev/langchain4j/rag/content/Content;)V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               TestContentRetriever\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever;\n-  #20 = Utf8               [Ldev/langchain4j/rag/content/Content;\n-  #21 = Utf8               retrieve\n-  #22 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-  #23 = Utf8               query\n-  #24 = Utf8               Ldev/langchain4j/rag/query/Query;\n-  #25 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-  #26 = Utf8               SourceFile\n-  #27 = Utf8               DefaultRetrievalAugmentorTest.java\n-  #28 = NameAndType        #11:#36        // \"<init>\":()V\n-  #29 = Class              #37            // java/util/Arrays\n-  #30 = NameAndType        #38:#39        // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #31 = NameAndType        #7:#8          // contents:Ljava/util/List;\n-  #32 = Class              #40            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  #33 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n-  #34 = Utf8               java/lang/Object\n-  #35 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n-  #36 = Utf8               ()V\n-  #37 = Utf8               java/util/Arrays\n-  #38 = Utf8               asList\n-  #39 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #40 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Methodref          #8.#9          // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #8 = Class              #10            // java/util/Arrays\n+   #9 = NameAndType        #11:#12        // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #10 = Utf8               java/util/Arrays\n+  #11 = Utf8               asList\n+  #12 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #13 = Fieldref           #14.#15        // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.contents:Ljava/util/List;\n+  #14 = Class              #16            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+  #15 = NameAndType        #17:#18        // contents:Ljava/util/List;\n+  #16 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+  #17 = Utf8               contents\n+  #18 = Utf8               Ljava/util/List;\n+  #19 = Class              #20            // dev/langchain4j/rag/content/retriever/ContentRetriever\n+  #20 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n+  #21 = Utf8               Signature\n+  #22 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #23 = Utf8               ([Ldev/langchain4j/rag/content/Content;)V\n+  #24 = Utf8               Code\n+  #25 = Utf8               LineNumberTable\n+  #26 = Utf8               LocalVariableTable\n+  #27 = Utf8               this\n+  #28 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever;\n+  #29 = Utf8               [Ldev/langchain4j/rag/content/Content;\n+  #30 = Utf8               retrieve\n+  #31 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #32 = Utf8               query\n+  #33 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #34 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #35 = Utf8               SourceFile\n+  #36 = Utf8               DefaultRetrievalAugmentorTest.java\n+  #37 = Utf8               InnerClasses\n+  #38 = Class              #39            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #39 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #40 = Utf8               TestContentRetriever\n {\n   private final java.util.List<dev.langchain4j.rag.content.Content> contents;\n     descriptor: Ljava/util/List;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #10                          // Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+    Signature: #22                          // Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n \n   dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestContentRetriever(dev.langchain4j.rag.content.Content...);\n     descriptor: ([Ldev/langchain4j/rag/content/Content;)V\n     flags: (0x0080) ACC_VARARGS\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: invokestatic  #2                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-         9: putfield      #3                  // Field contents:Ljava/util/List;\n+         6: invokestatic  #7                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+         9: putfield      #13                 // Field contents:Ljava/util/List;\n         12: return\n       LineNumberTable:\n         line 148: 0\n         line 149: 4\n         line 150: 12\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -77,20 +77,20 @@\n \n   public java.util.List<dev.langchain4j.rag.content.Content> retrieve(dev.langchain4j.rag.query.Query);\n     descriptor: (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #3                  // Field contents:Ljava/util/List;\n+         1: getfield      #13                 // Field contents:Ljava/util/List;\n          4: areturn\n       LineNumberTable:\n         line 154: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever;\n             0       5     1 query   Ldev/langchain4j/rag/query/Query;\n-    Signature: #25                          // (Ldev/langchain4j/rag/query/Query;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+    Signature: #34                          // (Ldev/langchain4j/rag/query/Query;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n }\n SourceFile: \"DefaultRetrievalAugmentorTest.java\"\n InnerClasses:\n-  static #17= #4 of #32;                  // TestContentRetriever=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  static #40= #14 of #38;                 // TestContentRetriever=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n"}]}, {"source1": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.class", "source2": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,74 +1,74 @@\n-  SHA-256 checksum 116864a8c75ef956f85cfd2f3181e408526f91d7db059c2aa2301cc0c14ce79e\n+  SHA-256 checksum ca89c38ed07c95607784c8bd15a0cd855b3a5264953ba0a0c20c156fd36baf5d\n   Compiled from \"DefaultRetrievalAugmentorTest.java\"\n class dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestQueryTransformer implements dev.langchain4j.rag.query.transformer.QueryTransformer\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n-  super_class: #5                         // java/lang/Object\n+  this_class: #14                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 1, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #5.#28         // java/lang/Object.\"<init>\":()V\n-   #2 = Methodref          #29.#30        // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #3 = Fieldref           #4.#31         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.queries:Ljava/util/List;\n-   #4 = Class              #33            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n-   #5 = Class              #34            // java/lang/Object\n-   #6 = Class              #35            // dev/langchain4j/rag/query/transformer/QueryTransformer\n-   #7 = Utf8               queries\n-   #8 = Utf8               Ljava/util/List;\n-   #9 = Utf8               Signature\n-  #10 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/query/Query;>;\n-  #11 = Utf8               <init>\n-  #12 = Utf8               ([Ldev/langchain4j/rag/query/Query;)V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               TestQueryTransformer\n-  #18 = Utf8               InnerClasses\n-  #19 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer;\n-  #20 = Utf8               [Ldev/langchain4j/rag/query/Query;\n-  #21 = Utf8               transform\n-  #22 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #23 = Utf8               query\n-  #24 = Utf8               Ldev/langchain4j/rag/query/Query;\n-  #25 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n-  #26 = Utf8               SourceFile\n-  #27 = Utf8               DefaultRetrievalAugmentorTest.java\n-  #28 = NameAndType        #11:#36        // \"<init>\":()V\n-  #29 = Class              #37            // java/util/Arrays\n-  #30 = NameAndType        #38:#39        // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #31 = NameAndType        #7:#8          // queries:Ljava/util/List;\n-  #32 = Class              #40            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  #33 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n-  #34 = Utf8               java/lang/Object\n-  #35 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n-  #36 = Utf8               ()V\n-  #37 = Utf8               java/util/Arrays\n-  #38 = Utf8               asList\n-  #39 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #40 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Methodref          #8.#9          // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #8 = Class              #10            // java/util/Arrays\n+   #9 = NameAndType        #11:#12        // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #10 = Utf8               java/util/Arrays\n+  #11 = Utf8               asList\n+  #12 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #13 = Fieldref           #14.#15        // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.queries:Ljava/util/List;\n+  #14 = Class              #16            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n+  #15 = NameAndType        #17:#18        // queries:Ljava/util/List;\n+  #16 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n+  #17 = Utf8               queries\n+  #18 = Utf8               Ljava/util/List;\n+  #19 = Class              #20            // dev/langchain4j/rag/query/transformer/QueryTransformer\n+  #20 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n+  #21 = Utf8               Signature\n+  #22 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/query/Query;>;\n+  #23 = Utf8               ([Ldev/langchain4j/rag/query/Query;)V\n+  #24 = Utf8               Code\n+  #25 = Utf8               LineNumberTable\n+  #26 = Utf8               LocalVariableTable\n+  #27 = Utf8               this\n+  #28 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer;\n+  #29 = Utf8               [Ldev/langchain4j/rag/query/Query;\n+  #30 = Utf8               transform\n+  #31 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #32 = Utf8               query\n+  #33 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #34 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n+  #35 = Utf8               SourceFile\n+  #36 = Utf8               DefaultRetrievalAugmentorTest.java\n+  #37 = Utf8               InnerClasses\n+  #38 = Class              #39            // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #39 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #40 = Utf8               TestQueryTransformer\n {\n   private final java.util.List<dev.langchain4j.rag.query.Query> queries;\n     descriptor: Ljava/util/List;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #10                          // Ljava/util/List<Ldev/langchain4j/rag/query/Query;>;\n+    Signature: #22                          // Ljava/util/List<Ldev/langchain4j/rag/query/Query;>;\n \n   dev.langchain4j.rag.DefaultRetrievalAugmentorTest$TestQueryTransformer(dev.langchain4j.rag.query.Query...);\n     descriptor: ([Ldev/langchain4j/rag/query/Query;)V\n     flags: (0x0080) ACC_VARARGS\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: invokestatic  #2                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-         9: putfield      #3                  // Field queries:Ljava/util/List;\n+         6: invokestatic  #7                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+         9: putfield      #13                 // Field queries:Ljava/util/List;\n         12: return\n       LineNumberTable:\n         line 134: 0\n         line 135: 4\n         line 136: 12\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -77,20 +77,20 @@\n \n   public java.util.Collection<dev.langchain4j.rag.query.Query> transform(dev.langchain4j.rag.query.Query);\n     descriptor: (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #3                  // Field queries:Ljava/util/List;\n+         1: getfield      #13                 // Field queries:Ljava/util/List;\n          4: areturn\n       LineNumberTable:\n         line 140: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer;\n             0       5     1 query   Ldev/langchain4j/rag/query/Query;\n-    Signature: #25                          // (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n+    Signature: #34                          // (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n }\n SourceFile: \"DefaultRetrievalAugmentorTest.java\"\n InnerClasses:\n-  static #17= #4 of #32;                  // TestQueryTransformer=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  static #40= #14 of #38;                 // TestQueryTransformer=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n"}]}, {"source1": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest.class", "source2": "dev/langchain4j/rag/DefaultRetrievalAugmentorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,276 +1,276 @@\n-  SHA-256 checksum e6ffa5258073946b905011e60562c6b0f49a4d0481fbe5b9828a0b67a8afd0b7\n+  SHA-256 checksum 408e246d0214b49a6672430d2b1a2db1cc0b929faa0a90bcd9eaf415ebae4f31\n   Compiled from \"DefaultRetrievalAugmentorTest.java\"\n class dev.langchain4j.rag.DefaultRetrievalAugmentorTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #63                         // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  super_class: #46                        // java/lang/Object\n+  this_class: #210                        // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 3, attributes: 2\n Constant pool:\n-    #1 = Methodref          #46.#118      // java/lang/Object.\"<init>\":()V\n-    #2 = String             #119          // query 1\n-    #3 = Methodref          #6.#120       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-    #4 = String             #121          // query 2\n-    #5 = Class              #122          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n-    #6 = Class              #123          // dev/langchain4j/rag/query/Query\n-    #7 = Methodref          #5.#124       // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.\"<init>\":([Ldev/langchain4j/rag/query/Query;)V\n-    #8 = Methodref          #125.#126     // org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-    #9 = Class              #127          // dev/langchain4j/rag/query/transformer/QueryTransformer\n-   #10 = String             #128          // content 1\n-   #11 = Methodref          #14.#129      // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #12 = String             #130          // content 2\n-   #13 = Class              #131          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n-   #14 = Class              #132          // dev/langchain4j/rag/content/Content\n-   #15 = Methodref          #13.#133      // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.\"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n-   #16 = Class              #134          // dev/langchain4j/rag/content/retriever/ContentRetriever\n-   #17 = String             #135          // content 3\n-   #18 = String             #136          // content 4\n-   #19 = Class              #137          // dev/langchain4j/rag/query/router/DefaultQueryRouter\n-   #20 = Methodref          #19.#138      // dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-   #21 = Class              #139          // dev/langchain4j/rag/query/router/QueryRouter\n-   #22 = Class              #140          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n-   #23 = Methodref          #22.#118      // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator.\"<init>\":()V\n-   #24 = Class              #141          // dev/langchain4j/rag/content/aggregator/ContentAggregator\n-   #25 = Class              #142          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n-   #26 = Methodref          #25.#118      // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.\"<init>\":()V\n-   #27 = Class              #143          // dev/langchain4j/rag/content/injector/ContentInjector\n-   #28 = Methodref          #144.#145     // dev/langchain4j/rag/DefaultRetrievalAugmentor.builder:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-   #29 = Methodref          #146.#147     // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryTransformer:(Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-   #30 = Methodref          #146.#148     // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryRouter:(Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-   #31 = Methodref          #146.#149     // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentAggregator:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-   #32 = Methodref          #146.#150     // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentInjector:(Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-   #33 = Methodref          #146.#151     // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.executor:(Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-   #34 = Methodref          #146.#152     // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.build:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n-   #35 = String             #153          // query\n-   #36 = Methodref          #154.#155     // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #37 = Methodref          #156.#157     // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-   #38 = InterfaceMethodref #158.#159     // dev/langchain4j/rag/RetrievalAugmentor.augment:(Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n-   #39 = Methodref          #154.#160     // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-   #40 = Methodref          #161.#162     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #41 = String             #163          // query\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\n-   #42 = Methodref          #164.#165     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #43 = Methodref          #125.#166     // org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #44 = Methodref          #6.#167       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-   #45 = InterfaceMethodref #9.#168       // dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #46 = Class              #169          // java/lang/Object\n-   #47 = Methodref          #125.#170     // org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-   #48 = InterfaceMethodref #21.#171      // dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #49 = InterfaceMethodref #16.#172      // dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-   #50 = Class              #173          // java/util/HashMap\n-   #51 = Methodref          #50.#118      // java/util/HashMap.\"<init>\":()V\n-   #52 = Class              #174          // java/util/List\n-   #53 = Methodref          #175.#176     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #54 = InterfaceMethodref #177.#178     // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #55 = InterfaceMethodref #24.#179      // dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n-   #56 = InterfaceMethodref #27.#180      // dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-   #57 = InterfaceMethodref #181.#182     // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n-   #58 = Methodref          #183.#184     // java/util/concurrent/Executors.newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;\n-   #59 = InterfaceMethodref #185.#186     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #60 = InterfaceMethodref #187.#188     // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-   #61 = Methodref          #183.#189     // java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n-   #62 = InterfaceMethodref #187.#190     // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n-   #63 = Class              #191          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-   #64 = Utf8               TestContentInjector\n-   #65 = Utf8               InnerClasses\n-   #66 = Utf8               TestContentAggregator\n-   #67 = Utf8               TestContentRetriever\n-   #68 = Utf8               TestQueryTransformer\n-   #69 = Utf8               <init>\n-   #70 = Utf8               ()V\n-   #71 = Utf8               Code\n-   #72 = Utf8               LineNumberTable\n-   #73 = Utf8               LocalVariableTable\n-   #74 = Utf8               this\n-   #75 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest;\n-   #76 = Utf8               should_augment_user_message\n-   #77 = Utf8               (Ljava/util/concurrent/Executor;)V\n-   #78 = Utf8               executor\n-   #79 = Utf8               Ljava/util/concurrent/Executor;\n-   #80 = Utf8               query1\n-   #81 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #82 = Utf8               query2\n-   #83 = Utf8               queryTransformer\n-   #84 = Utf8               Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n-   #85 = Utf8               content1\n-   #86 = Utf8               Ldev/langchain4j/rag/content/Content;\n-   #87 = Utf8               content2\n-   #88 = Utf8               contentRetriever1\n-   #89 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #90 = Utf8               content3\n-   #91 = Utf8               content4\n-   #92 = Utf8               contentRetriever2\n-   #93 = Utf8               queryRouter\n-   #94 = Utf8               Ldev/langchain4j/rag/query/router/QueryRouter;\n-   #95 = Utf8               contentAggregator\n-   #96 = Utf8               Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-   #97 = Utf8               contentInjector\n-   #98 = Utf8               Ldev/langchain4j/rag/content/injector/ContentInjector;\n-   #99 = Utf8               retrievalAugmentor\n-  #100 = Utf8               Ldev/langchain4j/rag/RetrievalAugmentor;\n-  #101 = Utf8               userMessage\n-  #102 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-  #103 = Utf8               metadata\n-  #104 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n-  #105 = Utf8               augmented\n-  #106 = Utf8               queryToContents\n-  #107 = Utf8               Ljava/util/Map;\n-  #108 = Utf8               LocalVariableTypeTable\n-  #109 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n-  #110 = Utf8               RuntimeVisibleAnnotations\n-  #111 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-  #112 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n-  #113 = Utf8               ()Ljava/util/stream/Stream;\n-  #114 = Utf8               Signature\n-  #115 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n-  #116 = Utf8               SourceFile\n-  #117 = Utf8               DefaultRetrievalAugmentorTest.java\n-  #118 = NameAndType        #69:#70       // \"<init>\":()V\n-  #119 = Utf8               query 1\n-  #120 = NameAndType        #192:#193     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #121 = Utf8               query 2\n-  #122 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n-  #123 = Utf8               dev/langchain4j/rag/query/Query\n-  #124 = NameAndType        #69:#194      // \"<init>\":([Ldev/langchain4j/rag/query/Query;)V\n-  #125 = Class              #195          // org/mockito/Mockito\n-  #126 = NameAndType        #196:#197     // spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #127 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n-  #128 = Utf8               content 1\n-  #129 = NameAndType        #192:#198     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #130 = Utf8               content 2\n-  #131 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n-  #132 = Utf8               dev/langchain4j/rag/content/Content\n-  #133 = NameAndType        #69:#199      // \"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n-  #134 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n-  #135 = Utf8               content 3\n-  #136 = Utf8               content 4\n-  #137 = Utf8               dev/langchain4j/rag/query/router/DefaultQueryRouter\n-  #138 = NameAndType        #69:#200      // \"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-  #139 = Utf8               dev/langchain4j/rag/query/router/QueryRouter\n-  #140 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n-  #141 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n-  #142 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n-  #143 = Utf8               dev/langchain4j/rag/content/injector/ContentInjector\n-  #144 = Class              #201          // dev/langchain4j/rag/DefaultRetrievalAugmentor\n-  #145 = NameAndType        #202:#204     // builder:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #146 = Class              #205          // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder\n-  #147 = NameAndType        #83:#206      // queryTransformer:(Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #148 = NameAndType        #93:#207      // queryRouter:(Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #149 = NameAndType        #95:#208      // contentAggregator:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #150 = NameAndType        #97:#209      // contentInjector:(Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #151 = NameAndType        #78:#210      // executor:(Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #152 = NameAndType        #211:#212     // build:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n-  #153 = Utf8               query\n-  #154 = Class              #213          // dev/langchain4j/data/message/UserMessage\n-  #155 = NameAndType        #192:#214     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #156 = Class              #215          // dev/langchain4j/rag/query/Metadata\n-  #157 = NameAndType        #192:#216     // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-  #158 = Class              #217          // dev/langchain4j/rag/RetrievalAugmentor\n-  #159 = NameAndType        #218:#219     // augment:(Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n-  #160 = NameAndType        #220:#221     // text:()Ljava/lang/String;\n-  #161 = Class              #222          // org/assertj/core/api/Assertions\n-  #162 = NameAndType        #223:#224     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #163 = Utf8               query\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\n-  #164 = Class              #225          // org/assertj/core/api/AbstractStringAssert\n-  #165 = NameAndType        #226:#224     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #166 = NameAndType        #227:#197     // verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #167 = NameAndType        #192:#228     // from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-  #168 = NameAndType        #229:#230     // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #169 = Utf8               java/lang/Object\n-  #170 = NameAndType        #231:#232     // verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-  #171 = NameAndType        #233:#230     // route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #172 = NameAndType        #234:#235     // retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-  #173 = Utf8               java/util/HashMap\n-  #174 = Utf8               java/util/List\n-  #175 = Class              #236          // java/util/Arrays\n-  #176 = NameAndType        #237:#238     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #177 = Class              #239          // java/util/Map\n-  #178 = NameAndType        #240:#241     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #179 = NameAndType        #242:#243     // aggregate:(Ljava/util/Map;)Ljava/util/List;\n-  #180 = NameAndType        #244:#245     // inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-  #181 = Class              #246          // java/util/stream/Stream\n-  #182 = NameAndType        #202:#248     // builder:()Ljava/util/stream/Stream$Builder;\n-  #183 = Class              #249          // java/util/concurrent/Executors\n-  #184 = NameAndType        #250:#251     // newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;\n-  #185 = Class              #252          // org/junit/jupiter/params/provider/Arguments\n-  #186 = NameAndType        #253:#254     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #187 = Class              #255          // java/util/stream/Stream$Builder\n-  #188 = NameAndType        #256:#257     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #189 = NameAndType        #258:#259     // newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n-  #190 = NameAndType        #211:#113     // build:()Ljava/util/stream/Stream;\n-  #191 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  #192 = Utf8               from\n-  #193 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #194 = Utf8               ([Ldev/langchain4j/rag/query/Query;)V\n-  #195 = Utf8               org/mockito/Mockito\n-  #196 = Utf8               spy\n-  #197 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #198 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #199 = Utf8               ([Ldev/langchain4j/rag/content/Content;)V\n-  #200 = Utf8               ([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-  #201 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentor\n-  #202 = Utf8               builder\n-  #203 = Utf8               DefaultRetrievalAugmentorBuilder\n-  #204 = Utf8               ()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #205 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder\n-  #206 = Utf8               (Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #207 = Utf8               (Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #208 = Utf8               (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #209 = Utf8               (Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #210 = Utf8               (Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-  #211 = Utf8               build\n-  #212 = Utf8               ()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n-  #213 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #214 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #215 = Utf8               dev/langchain4j/rag/query/Metadata\n-  #216 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-  #217 = Utf8               dev/langchain4j/rag/RetrievalAugmentor\n-  #218 = Utf8               augment\n-  #219 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n-  #220 = Utf8               text\n-  #221 = Utf8               ()Ljava/lang/String;\n-  #222 = Utf8               org/assertj/core/api/Assertions\n-  #223 = Utf8               assertThat\n-  #224 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #225 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #226 = Utf8               isEqualTo\n-  #227 = Utf8               verify\n-  #228 = Utf8               (Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-  #229 = Utf8               transform\n-  #230 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #231 = Utf8               verifyNoMoreInteractions\n-  #232 = Utf8               ([Ljava/lang/Object;)V\n-  #233 = Utf8               route\n-  #234 = Utf8               retrieve\n-  #235 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-  #236 = Utf8               java/util/Arrays\n-  #237 = Utf8               asList\n-  #238 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #239 = Utf8               java/util/Map\n-  #240 = Utf8               put\n-  #241 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #242 = Utf8               aggregate\n-  #243 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n-  #244 = Utf8               inject\n-  #245 = Utf8               (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-  #246 = Utf8               java/util/stream/Stream\n-  #247 = Utf8               Builder\n-  #248 = Utf8               ()Ljava/util/stream/Stream$Builder;\n-  #249 = Utf8               java/util/concurrent/Executors\n-  #250 = Utf8               newCachedThreadPool\n-  #251 = Utf8               ()Ljava/util/concurrent/ExecutorService;\n-  #252 = Utf8               org/junit/jupiter/params/provider/Arguments\n-  #253 = Utf8               of\n-  #254 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #255 = Utf8               java/util/stream/Stream$Builder\n-  #256 = Utf8               add\n-  #257 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #258 = Utf8               newFixedThreadPool\n-  #259 = Utf8               (I)Ljava/util/concurrent/ExecutorService;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // query 1\n+    #8 = Utf8               query 1\n+    #9 = Methodref          #10.#11       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #10 = Class              #12           // dev/langchain4j/rag/query/Query\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #12 = Utf8               dev/langchain4j/rag/query/Query\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #15 = String             #16           // query 2\n+   #16 = Utf8               query 2\n+   #17 = Class              #18           // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n+   #18 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n+   #19 = Methodref          #17.#20       // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.\"<init>\":([Ldev/langchain4j/rag/query/Query;)V\n+   #20 = NameAndType        #5:#21        // \"<init>\":([Ldev/langchain4j/rag/query/Query;)V\n+   #21 = Utf8               ([Ldev/langchain4j/rag/query/Query;)V\n+   #22 = Methodref          #23.#24       // org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+   #23 = Class              #25           // org/mockito/Mockito\n+   #24 = NameAndType        #26:#27       // spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+   #25 = Utf8               org/mockito/Mockito\n+   #26 = Utf8               spy\n+   #27 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+   #28 = Class              #29           // dev/langchain4j/rag/query/transformer/QueryTransformer\n+   #29 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n+   #30 = String             #31           // content 1\n+   #31 = Utf8               content 1\n+   #32 = Methodref          #33.#34       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #33 = Class              #35           // dev/langchain4j/rag/content/Content\n+   #34 = NameAndType        #13:#36       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #35 = Utf8               dev/langchain4j/rag/content/Content\n+   #36 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #37 = String             #38           // content 2\n+   #38 = Utf8               content 2\n+   #39 = Class              #40           // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+   #40 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+   #41 = Methodref          #39.#42       // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.\"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n+   #42 = NameAndType        #5:#43        // \"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n+   #43 = Utf8               ([Ldev/langchain4j/rag/content/Content;)V\n+   #44 = Class              #45           // dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #45 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #46 = String             #47           // content 3\n+   #47 = Utf8               content 3\n+   #48 = String             #49           // content 4\n+   #49 = Utf8               content 4\n+   #50 = Class              #51           // dev/langchain4j/rag/query/router/DefaultQueryRouter\n+   #51 = Utf8               dev/langchain4j/rag/query/router/DefaultQueryRouter\n+   #52 = Methodref          #50.#53       // dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+   #53 = NameAndType        #5:#54        // \"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+   #54 = Utf8               ([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+   #55 = Class              #56           // dev/langchain4j/rag/query/router/QueryRouter\n+   #56 = Utf8               dev/langchain4j/rag/query/router/QueryRouter\n+   #57 = Class              #58           // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n+   #58 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n+   #59 = Methodref          #57.#3        // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator.\"<init>\":()V\n+   #60 = Class              #61           // dev/langchain4j/rag/content/aggregator/ContentAggregator\n+   #61 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n+   #62 = Class              #63           // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n+   #63 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n+   #64 = Methodref          #62.#3        // dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.\"<init>\":()V\n+   #65 = Class              #66           // dev/langchain4j/rag/content/injector/ContentInjector\n+   #66 = Utf8               dev/langchain4j/rag/content/injector/ContentInjector\n+   #67 = Methodref          #68.#69       // dev/langchain4j/rag/DefaultRetrievalAugmentor.builder:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #68 = Class              #70           // dev/langchain4j/rag/DefaultRetrievalAugmentor\n+   #69 = NameAndType        #71:#72       // builder:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #70 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentor\n+   #71 = Utf8               builder\n+   #72 = Utf8               ()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #73 = Methodref          #74.#75       // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryTransformer:(Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #74 = Class              #76           // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder\n+   #75 = NameAndType        #77:#78       // queryTransformer:(Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #76 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder\n+   #77 = Utf8               queryTransformer\n+   #78 = Utf8               (Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #79 = Methodref          #74.#80       // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryRouter:(Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #80 = NameAndType        #81:#82       // queryRouter:(Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #81 = Utf8               queryRouter\n+   #82 = Utf8               (Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #83 = Methodref          #74.#84       // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentAggregator:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #84 = NameAndType        #85:#86       // contentAggregator:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #85 = Utf8               contentAggregator\n+   #86 = Utf8               (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #87 = Methodref          #74.#88       // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentInjector:(Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #88 = NameAndType        #89:#90       // contentInjector:(Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #89 = Utf8               contentInjector\n+   #90 = Utf8               (Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #91 = Methodref          #74.#92       // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.executor:(Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #92 = NameAndType        #93:#94       // executor:(Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #93 = Utf8               executor\n+   #94 = Utf8               (Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+   #95 = Methodref          #74.#96       // dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.build:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n+   #96 = NameAndType        #97:#98       // build:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n+   #97 = Utf8               build\n+   #98 = Utf8               ()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n+   #99 = String             #100          // query\n+  #100 = Utf8               query\n+  #101 = Methodref          #102.#103     // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #102 = Class              #104          // dev/langchain4j/data/message/UserMessage\n+  #103 = NameAndType        #13:#105      // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #104 = Utf8               dev/langchain4j/data/message/UserMessage\n+  #105 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+  #106 = Methodref          #107.#108     // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+  #107 = Class              #109          // dev/langchain4j/rag/query/Metadata\n+  #108 = NameAndType        #13:#110      // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+  #109 = Utf8               dev/langchain4j/rag/query/Metadata\n+  #110 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+  #111 = InterfaceMethodref #112.#113     // dev/langchain4j/rag/RetrievalAugmentor.augment:(Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n+  #112 = Class              #114          // dev/langchain4j/rag/RetrievalAugmentor\n+  #113 = NameAndType        #115:#116     // augment:(Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n+  #114 = Utf8               dev/langchain4j/rag/RetrievalAugmentor\n+  #115 = Utf8               augment\n+  #116 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n+  #117 = Methodref          #102.#118     // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+  #118 = NameAndType        #119:#120     // text:()Ljava/lang/String;\n+  #119 = Utf8               text\n+  #120 = Utf8               ()Ljava/lang/String;\n+  #121 = Methodref          #122.#123     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #122 = Class              #124          // org/assertj/core/api/Assertions\n+  #123 = NameAndType        #125:#126     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #124 = Utf8               org/assertj/core/api/Assertions\n+  #125 = Utf8               assertThat\n+  #126 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #127 = String             #128          // query\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\n+  #128 = Utf8               query\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\n+  #129 = Methodref          #130.#131     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #130 = Class              #132          // org/assertj/core/api/AbstractStringAssert\n+  #131 = NameAndType        #133:#126     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #132 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #133 = Utf8               isEqualTo\n+  #134 = Methodref          #23.#135      // org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #135 = NameAndType        #136:#27      // verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #136 = Utf8               verify\n+  #137 = Methodref          #10.#138      // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+  #138 = NameAndType        #13:#139      // from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+  #139 = Utf8               (Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+  #140 = InterfaceMethodref #28.#141      // dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #141 = NameAndType        #142:#143     // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #142 = Utf8               transform\n+  #143 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #144 = Methodref          #23.#145      // org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+  #145 = NameAndType        #146:#147     // verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+  #146 = Utf8               verifyNoMoreInteractions\n+  #147 = Utf8               ([Ljava/lang/Object;)V\n+  #148 = InterfaceMethodref #55.#149      // dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #149 = NameAndType        #150:#143     // route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #150 = Utf8               route\n+  #151 = InterfaceMethodref #44.#152      // dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #152 = NameAndType        #153:#154     // retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #153 = Utf8               retrieve\n+  #154 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #155 = Class              #156          // java/util/HashMap\n+  #156 = Utf8               java/util/HashMap\n+  #157 = Methodref          #155.#3       // java/util/HashMap.\"<init>\":()V\n+  #158 = Class              #159          // java/util/List\n+  #159 = Utf8               java/util/List\n+  #160 = Methodref          #161.#162     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #161 = Class              #163          // java/util/Arrays\n+  #162 = NameAndType        #164:#165     // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #163 = Utf8               java/util/Arrays\n+  #164 = Utf8               asList\n+  #165 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #166 = InterfaceMethodref #167.#168     // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+  #167 = Class              #169          // java/util/Map\n+  #168 = NameAndType        #170:#171     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+  #169 = Utf8               java/util/Map\n+  #170 = Utf8               put\n+  #171 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+  #172 = InterfaceMethodref #60.#173      // dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+  #173 = NameAndType        #174:#175     // aggregate:(Ljava/util/Map;)Ljava/util/List;\n+  #174 = Utf8               aggregate\n+  #175 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n+  #176 = InterfaceMethodref #65.#177      // dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+  #177 = NameAndType        #178:#179     // inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+  #178 = Utf8               inject\n+  #179 = Utf8               (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+  #180 = InterfaceMethodref #181.#182     // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+  #181 = Class              #183          // java/util/stream/Stream\n+  #182 = NameAndType        #71:#184      // builder:()Ljava/util/stream/Stream$Builder;\n+  #183 = Utf8               java/util/stream/Stream\n+  #184 = Utf8               ()Ljava/util/stream/Stream$Builder;\n+  #185 = Methodref          #186.#187     // java/util/concurrent/Executors.newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;\n+  #186 = Class              #188          // java/util/concurrent/Executors\n+  #187 = NameAndType        #189:#190     // newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;\n+  #188 = Utf8               java/util/concurrent/Executors\n+  #189 = Utf8               newCachedThreadPool\n+  #190 = Utf8               ()Ljava/util/concurrent/ExecutorService;\n+  #191 = InterfaceMethodref #192.#193     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #192 = Class              #194          // org/junit/jupiter/params/provider/Arguments\n+  #193 = NameAndType        #195:#196     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #194 = Utf8               org/junit/jupiter/params/provider/Arguments\n+  #195 = Utf8               of\n+  #196 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #197 = InterfaceMethodref #198.#199     // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #198 = Class              #200          // java/util/stream/Stream$Builder\n+  #199 = NameAndType        #201:#202     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #200 = Utf8               java/util/stream/Stream$Builder\n+  #201 = Utf8               add\n+  #202 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #203 = Methodref          #186.#204     // java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n+  #204 = NameAndType        #205:#206     // newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n+  #205 = Utf8               newFixedThreadPool\n+  #206 = Utf8               (I)Ljava/util/concurrent/ExecutorService;\n+  #207 = InterfaceMethodref #198.#208     // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+  #208 = NameAndType        #97:#209      // build:()Ljava/util/stream/Stream;\n+  #209 = Utf8               ()Ljava/util/stream/Stream;\n+  #210 = Class              #211          // dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #211 = Utf8               dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  #212 = Utf8               Code\n+  #213 = Utf8               LineNumberTable\n+  #214 = Utf8               LocalVariableTable\n+  #215 = Utf8               this\n+  #216 = Utf8               Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest;\n+  #217 = Utf8               should_augment_user_message\n+  #218 = Utf8               (Ljava/util/concurrent/Executor;)V\n+  #219 = Utf8               Ljava/util/concurrent/Executor;\n+  #220 = Utf8               query1\n+  #221 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #222 = Utf8               query2\n+  #223 = Utf8               Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n+  #224 = Utf8               content1\n+  #225 = Utf8               Ldev/langchain4j/rag/content/Content;\n+  #226 = Utf8               content2\n+  #227 = Utf8               contentRetriever1\n+  #228 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+  #229 = Utf8               content3\n+  #230 = Utf8               content4\n+  #231 = Utf8               contentRetriever2\n+  #232 = Utf8               Ldev/langchain4j/rag/query/router/QueryRouter;\n+  #233 = Utf8               Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #234 = Utf8               Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #235 = Utf8               retrievalAugmentor\n+  #236 = Utf8               Ldev/langchain4j/rag/RetrievalAugmentor;\n+  #237 = Utf8               userMessage\n+  #238 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+  #239 = Utf8               metadata\n+  #240 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n+  #241 = Utf8               augmented\n+  #242 = Utf8               queryToContents\n+  #243 = Utf8               Ljava/util/Map;\n+  #244 = Utf8               LocalVariableTypeTable\n+  #245 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n+  #246 = Utf8               RuntimeVisibleAnnotations\n+  #247 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #248 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n+  #249 = Utf8               Signature\n+  #250 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+  #251 = Utf8               SourceFile\n+  #252 = Utf8               DefaultRetrievalAugmentorTest.java\n+  #253 = Utf8               InnerClasses\n+  #254 = Utf8               TestQueryTransformer\n+  #255 = Utf8               TestContentRetriever\n+  #256 = Utf8               TestContentAggregator\n+  #257 = Utf8               TestContentInjector\n+  #258 = Utf8               DefaultRetrievalAugmentorBuilder\n+  #259 = Utf8               Builder\n {\n   dev.langchain4j.rag.DefaultRetrievalAugmentorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -283,304 +283,304 @@\n             0       5     0  this   Ldev/langchain4j/rag/DefaultRetrievalAugmentorTest;\n \n   void should_augment_user_message(java.util.concurrent.Executor);\n     descriptor: (Ljava/util/concurrent/Executor;)V\n     flags: (0x0000)\n     Code:\n       stack=9, locals=19, args_size=2\n-         0: ldc           #2                  // String query 1\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #7                  // String query 1\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_2\n-         6: ldc           #4                  // String query 2\n-         8: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         6: ldc           #15                 // String query 2\n+         8: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         11: astore_3\n-        12: new           #5                  // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n+        12: new           #17                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer\n         15: dup\n         16: iconst_2\n-        17: anewarray     #6                  // class dev/langchain4j/rag/query/Query\n+        17: anewarray     #10                 // class dev/langchain4j/rag/query/Query\n         20: dup\n         21: iconst_0\n         22: aload_2\n         23: aastore\n         24: dup\n         25: iconst_1\n         26: aload_3\n         27: aastore\n-        28: invokespecial #7                  // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.\"<init>\":([Ldev/langchain4j/rag/query/Query;)V\n-        31: invokestatic  #8                  // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-        34: checkcast     #9                  // class dev/langchain4j/rag/query/transformer/QueryTransformer\n+        28: invokespecial #19                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer.\"<init>\":([Ldev/langchain4j/rag/query/Query;)V\n+        31: invokestatic  #22                 // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+        34: checkcast     #28                 // class dev/langchain4j/rag/query/transformer/QueryTransformer\n         37: astore        4\n-        39: ldc           #10                 // String content 1\n-        41: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        39: ldc           #30                 // String content 1\n+        41: invokestatic  #32                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         44: astore        5\n-        46: ldc           #12                 // String content 2\n-        48: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        46: ldc           #37                 // String content 2\n+        48: invokestatic  #32                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         51: astore        6\n-        53: new           #13                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+        53: new           #39                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n         56: dup\n         57: iconst_2\n-        58: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+        58: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n         61: dup\n         62: iconst_0\n         63: aload         5\n         65: aastore\n         66: dup\n         67: iconst_1\n         68: aload         6\n         70: aastore\n-        71: invokespecial #15                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.\"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n-        74: invokestatic  #8                  // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-        77: checkcast     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        71: invokespecial #41                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.\"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n+        74: invokestatic  #22                 // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+        77: checkcast     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         80: astore        7\n-        82: ldc           #17                 // String content 3\n-        84: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        82: ldc           #46                 // String content 3\n+        84: invokestatic  #32                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         87: astore        8\n-        89: ldc           #18                 // String content 4\n-        91: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        89: ldc           #48                 // String content 4\n+        91: invokestatic  #32                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         94: astore        9\n-        96: new           #13                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n+        96: new           #39                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever\n         99: dup\n        100: iconst_2\n-       101: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+       101: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        104: dup\n        105: iconst_0\n        106: aload         8\n        108: aastore\n        109: dup\n        110: iconst_1\n        111: aload         9\n        113: aastore\n-       114: invokespecial #15                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.\"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n-       117: invokestatic  #8                  // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-       120: checkcast     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+       114: invokespecial #41                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever.\"<init>\":([Ldev/langchain4j/rag/content/Content;)V\n+       117: invokestatic  #22                 // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+       120: checkcast     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n        123: astore        10\n-       125: new           #19                 // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n+       125: new           #50                 // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n        128: dup\n        129: iconst_2\n-       130: anewarray     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+       130: anewarray     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n        133: dup\n        134: iconst_0\n        135: aload         7\n        137: aastore\n        138: dup\n        139: iconst_1\n        140: aload         10\n        142: aastore\n-       143: invokespecial #20                 // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-       146: invokestatic  #8                  // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-       149: checkcast     #21                 // class dev/langchain4j/rag/query/router/QueryRouter\n+       143: invokespecial #52                 // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+       146: invokestatic  #22                 // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+       149: checkcast     #55                 // class dev/langchain4j/rag/query/router/QueryRouter\n        152: astore        11\n-       154: new           #22                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n+       154: new           #57                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator\n        157: dup\n-       158: invokespecial #23                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator.\"<init>\":()V\n-       161: invokestatic  #8                  // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-       164: checkcast     #24                 // class dev/langchain4j/rag/content/aggregator/ContentAggregator\n+       158: invokespecial #59                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator.\"<init>\":()V\n+       161: invokestatic  #22                 // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+       164: checkcast     #60                 // class dev/langchain4j/rag/content/aggregator/ContentAggregator\n        167: astore        12\n-       169: new           #25                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n+       169: new           #62                 // class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector\n        172: dup\n-       173: invokespecial #26                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.\"<init>\":()V\n-       176: invokestatic  #8                  // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n-       179: checkcast     #27                 // class dev/langchain4j/rag/content/injector/ContentInjector\n+       173: invokespecial #64                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector.\"<init>\":()V\n+       176: invokestatic  #22                 // Method org/mockito/Mockito.spy:(Ljava/lang/Object;)Ljava/lang/Object;\n+       179: checkcast     #65                 // class dev/langchain4j/rag/content/injector/ContentInjector\n        182: astore        13\n-       184: invokestatic  #28                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor.builder:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+       184: invokestatic  #67                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor.builder:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n        187: aload         4\n-       189: invokevirtual #29                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryTransformer:(Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+       189: invokevirtual #73                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryTransformer:(Ldev/langchain4j/rag/query/transformer/QueryTransformer;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n        192: aload         11\n-       194: invokevirtual #30                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryRouter:(Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+       194: invokevirtual #79                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.queryRouter:(Ldev/langchain4j/rag/query/router/QueryRouter;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n        197: aload         12\n-       199: invokevirtual #31                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentAggregator:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+       199: invokevirtual #83                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentAggregator:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n        202: aload         13\n-       204: invokevirtual #32                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentInjector:(Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+       204: invokevirtual #87                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.contentInjector:(Ldev/langchain4j/rag/content/injector/ContentInjector;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n        207: aload_1\n-       208: invokevirtual #33                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.executor:(Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n-       211: invokevirtual #34                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.build:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n+       208: invokevirtual #91                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.executor:(Ljava/util/concurrent/Executor;)Ldev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder;\n+       211: invokevirtual #95                 // Method dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder.build:()Ldev/langchain4j/rag/DefaultRetrievalAugmentor;\n        214: astore        14\n-       216: ldc           #35                 // String query\n-       218: invokestatic  #36                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+       216: ldc           #99                 // String query\n+       218: invokestatic  #101                // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n        221: astore        15\n        223: aload         15\n        225: aconst_null\n        226: aconst_null\n-       227: invokestatic  #37                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+       227: invokestatic  #106                // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n        230: astore        16\n        232: aload         14\n        234: aload         15\n        236: aload         16\n-       238: invokeinterface #38,  3           // InterfaceMethod dev/langchain4j/rag/RetrievalAugmentor.augment:(Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n+       238: invokeinterface #111,  3          // InterfaceMethod dev/langchain4j/rag/RetrievalAugmentor.augment:(Ldev/langchain4j/data/message/UserMessage;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/data/message/UserMessage;\n        243: astore        17\n        245: aload         17\n-       247: invokevirtual #39                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-       250: invokestatic  #40                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       253: ldc           #41                 // String query\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\n-       255: invokevirtual #42                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       247: invokevirtual #117                // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+       250: invokestatic  #121                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       253: ldc           #127                // String query\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\\ncontent 1\\ncontent 2\\ncontent 3\\ncontent 4\n+       255: invokevirtual #129                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        258: pop\n        259: aload         4\n-       261: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       264: checkcast     #9                  // class dev/langchain4j/rag/query/transformer/QueryTransformer\n-       267: ldc           #35                 // String query\n+       261: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       264: checkcast     #28                 // class dev/langchain4j/rag/query/transformer/QueryTransformer\n+       267: ldc           #99                 // String query\n        269: aload         16\n-       271: invokestatic  #44                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-       274: invokeinterface #45,  2           // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+       271: invokestatic  #137                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+       274: invokeinterface #140,  2          // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n        279: pop\n        280: iconst_1\n-       281: anewarray     #46                 // class java/lang/Object\n+       281: anewarray     #2                  // class java/lang/Object\n        284: dup\n        285: iconst_0\n        286: aload         4\n        288: aastore\n-       289: invokestatic  #47                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       289: invokestatic  #144                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        292: aload         11\n-       294: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       297: checkcast     #21                 // class dev/langchain4j/rag/query/router/QueryRouter\n+       294: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       297: checkcast     #55                 // class dev/langchain4j/rag/query/router/QueryRouter\n        300: aload_2\n-       301: invokeinterface #48,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+       301: invokeinterface #148,  2          // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n        306: pop\n        307: aload         11\n-       309: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       312: checkcast     #21                 // class dev/langchain4j/rag/query/router/QueryRouter\n+       309: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       312: checkcast     #55                 // class dev/langchain4j/rag/query/router/QueryRouter\n        315: aload_3\n-       316: invokeinterface #48,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+       316: invokeinterface #148,  2          // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n        321: pop\n        322: iconst_1\n-       323: anewarray     #46                 // class java/lang/Object\n+       323: anewarray     #2                  // class java/lang/Object\n        326: dup\n        327: iconst_0\n        328: aload         11\n        330: aastore\n-       331: invokestatic  #47                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       331: invokestatic  #144                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        334: aload         7\n-       336: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       339: checkcast     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+       336: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       339: checkcast     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n        342: aload_2\n-       343: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       343: invokeinterface #151,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        348: pop\n        349: aload         7\n-       351: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       354: checkcast     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+       351: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       354: checkcast     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n        357: aload_3\n-       358: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       358: invokeinterface #151,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        363: pop\n        364: iconst_1\n-       365: anewarray     #46                 // class java/lang/Object\n+       365: anewarray     #2                  // class java/lang/Object\n        368: dup\n        369: iconst_0\n        370: aload         7\n        372: aastore\n-       373: invokestatic  #47                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       373: invokestatic  #144                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        376: aload         10\n-       378: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       381: checkcast     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+       378: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       381: checkcast     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n        384: aload_2\n-       385: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       385: invokeinterface #151,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        390: pop\n        391: aload         10\n-       393: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       396: checkcast     #16                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+       393: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       396: checkcast     #44                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n        399: aload_3\n-       400: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       400: invokeinterface #151,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        405: pop\n        406: iconst_1\n-       407: anewarray     #46                 // class java/lang/Object\n+       407: anewarray     #2                  // class java/lang/Object\n        410: dup\n        411: iconst_0\n        412: aload         10\n        414: aastore\n-       415: invokestatic  #47                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-       418: new           #50                 // class java/util/HashMap\n+       415: invokestatic  #144                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       418: new           #155                // class java/util/HashMap\n        421: dup\n-       422: invokespecial #51                 // Method java/util/HashMap.\"<init>\":()V\n+       422: invokespecial #157                // Method java/util/HashMap.\"<init>\":()V\n        425: astore        18\n        427: aload         18\n        429: aload_2\n        430: iconst_2\n-       431: anewarray     #52                 // class java/util/List\n+       431: anewarray     #158                // class java/util/List\n        434: dup\n        435: iconst_0\n        436: iconst_2\n-       437: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+       437: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        440: dup\n        441: iconst_0\n        442: aload         5\n        444: aastore\n        445: dup\n        446: iconst_1\n        447: aload         6\n        449: aastore\n-       450: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       450: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        453: aastore\n        454: dup\n        455: iconst_1\n        456: iconst_2\n-       457: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+       457: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        460: dup\n        461: iconst_0\n        462: aload         8\n        464: aastore\n        465: dup\n        466: iconst_1\n        467: aload         9\n        469: aastore\n-       470: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       470: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        473: aastore\n-       474: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       477: invokeinterface #54,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       474: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       477: invokeinterface #166,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        482: pop\n        483: aload         18\n        485: aload_3\n        486: iconst_2\n-       487: anewarray     #52                 // class java/util/List\n+       487: anewarray     #158                // class java/util/List\n        490: dup\n        491: iconst_0\n        492: iconst_2\n-       493: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+       493: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        496: dup\n        497: iconst_0\n        498: aload         5\n        500: aastore\n        501: dup\n        502: iconst_1\n        503: aload         6\n        505: aastore\n-       506: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       506: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        509: aastore\n        510: dup\n        511: iconst_1\n        512: iconst_2\n-       513: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+       513: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        516: dup\n        517: iconst_0\n        518: aload         8\n        520: aastore\n        521: dup\n        522: iconst_1\n        523: aload         9\n        525: aastore\n-       526: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       526: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        529: aastore\n-       530: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       533: invokeinterface #54,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       530: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       533: invokeinterface #166,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        538: pop\n        539: aload         12\n-       541: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       544: checkcast     #24                 // class dev/langchain4j/rag/content/aggregator/ContentAggregator\n+       541: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       544: checkcast     #60                 // class dev/langchain4j/rag/content/aggregator/ContentAggregator\n        547: aload         18\n-       549: invokeinterface #55,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+       549: invokeinterface #172,  2          // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n        554: pop\n        555: iconst_1\n-       556: anewarray     #46                 // class java/lang/Object\n+       556: anewarray     #2                  // class java/lang/Object\n        559: dup\n        560: iconst_0\n        561: aload         12\n        563: aastore\n-       564: invokestatic  #47                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       564: invokestatic  #144                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        567: aload         13\n-       569: invokestatic  #43                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       572: checkcast     #27                 // class dev/langchain4j/rag/content/injector/ContentInjector\n+       569: invokestatic  #134                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       572: checkcast     #65                 // class dev/langchain4j/rag/content/injector/ContentInjector\n        575: bipush        8\n-       577: anewarray     #14                 // class dev/langchain4j/rag/content/Content\n+       577: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        580: dup\n        581: iconst_0\n        582: aload         5\n        584: aastore\n        585: dup\n        586: iconst_1\n        587: aload         6\n@@ -605,25 +605,25 @@\n        611: bipush        6\n        613: aload         8\n        615: aastore\n        616: dup\n        617: bipush        7\n        619: aload         9\n        621: aastore\n-       622: invokestatic  #53                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       622: invokestatic  #160                // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        625: aload         15\n-       627: invokeinterface #56,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+       627: invokeinterface #176,  3          // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n        632: pop\n        633: iconst_1\n-       634: anewarray     #46                 // class java/lang/Object\n+       634: anewarray     #2                  // class java/lang/Object\n        637: dup\n        638: iconst_0\n        639: aload         13\n        641: aastore\n-       642: invokestatic  #47                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       642: invokestatic  #144                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        645: return\n       LineNumberTable:\n         line 38: 0\n         line 39: 6\n         line 40: 12\n         line 42: 39\n         line 43: 46\n@@ -691,83 +691,83 @@\n           232     414    16 metadata   Ldev/langchain4j/rag/query/Metadata;\n           245     401    17 augmented   Ldev/langchain4j/data/message/UserMessage;\n           427     219    18 queryToContents   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n           427     219    18 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n     RuntimeVisibleAnnotations:\n-      0: #111()\n+      0: #247()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #112()\n+      1: #248()\n         org.junit.jupiter.params.provider.MethodSource\n \n   static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> should_augment_user_message();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: invokestatic  #57                 // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+         0: invokestatic  #180                // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n          3: iconst_1\n-         4: anewarray     #46                 // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n-         9: invokestatic  #58                 // Method java/util/concurrent/Executors.newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;\n+         9: invokestatic  #185                // Method java/util/concurrent/Executors.newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;\n         12: aastore\n-        13: invokestatic  #59                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        16: invokeinterface #60,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        13: invokestatic  #191                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        16: invokeinterface #197,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         21: iconst_1\n-        22: anewarray     #46                 // class java/lang/Object\n+        22: anewarray     #2                  // class java/lang/Object\n         25: dup\n         26: iconst_0\n         27: iconst_1\n-        28: invokestatic  #61                 // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n+        28: invokestatic  #203                // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n         31: aastore\n-        32: invokestatic  #59                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        35: invokeinterface #60,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        32: invokestatic  #191                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        35: invokeinterface #197,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         40: iconst_1\n-        41: anewarray     #46                 // class java/lang/Object\n+        41: anewarray     #2                  // class java/lang/Object\n         44: dup\n         45: iconst_0\n         46: iconst_2\n-        47: invokestatic  #61                 // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n+        47: invokestatic  #203                // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n         50: aastore\n-        51: invokestatic  #59                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        54: invokeinterface #60,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        51: invokestatic  #191                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        54: invokeinterface #197,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         59: iconst_1\n-        60: anewarray     #46                 // class java/lang/Object\n+        60: anewarray     #2                  // class java/lang/Object\n         63: dup\n         64: iconst_0\n         65: iconst_3\n-        66: invokestatic  #61                 // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n+        66: invokestatic  #203                // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n         69: aastore\n-        70: invokestatic  #59                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        73: invokeinterface #60,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        70: invokestatic  #191                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        73: invokeinterface #197,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         78: iconst_1\n-        79: anewarray     #46                 // class java/lang/Object\n+        79: anewarray     #2                  // class java/lang/Object\n         82: dup\n         83: iconst_0\n         84: iconst_4\n-        85: invokestatic  #61                 // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n+        85: invokestatic  #203                // Method java/util/concurrent/Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;\n         88: aastore\n-        89: invokestatic  #59                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        92: invokeinterface #60,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-        97: invokeinterface #62,  1           // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+        89: invokestatic  #191                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        92: invokeinterface #197,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        97: invokeinterface #207,  1          // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n        102: areturn\n       LineNumberTable:\n         line 121: 0\n         line 122: 9\n         line 123: 28\n         line 124: 47\n         line 125: 66\n         line 126: 85\n         line 127: 97\n         line 121: 102\n-    Signature: #115                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #250                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n }\n SourceFile: \"DefaultRetrievalAugmentorTest.java\"\n InnerClasses:\n-  static #64= #25 of #63;                 // TestContentInjector=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  static #66= #22 of #63;                 // TestContentAggregator=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  static #67= #13 of #63;                 // TestContentRetriever=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  static #68= #5 of #63;                  // TestQueryTransformer=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n-  public static #203= #146 of #144;       // DefaultRetrievalAugmentorBuilder=class dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder of class dev/langchain4j/rag/DefaultRetrievalAugmentor\n-  public static #247= #187 of #181;       // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n+  static #254= #17 of #210;               // TestQueryTransformer=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestQueryTransformer of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  static #255= #39 of #210;               // TestContentRetriever=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentRetriever of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  static #256= #57 of #210;               // TestContentAggregator=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentAggregator of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  static #257= #62 of #210;               // TestContentInjector=class dev/langchain4j/rag/DefaultRetrievalAugmentorTest$TestContentInjector of class dev/langchain4j/rag/DefaultRetrievalAugmentorTest\n+  public static #258= #74 of #68;         // DefaultRetrievalAugmentorBuilder=class dev/langchain4j/rag/DefaultRetrievalAugmentor$DefaultRetrievalAugmentorBuilder of class dev/langchain4j/rag/DefaultRetrievalAugmentor\n+  public static #259= #198 of #181;       // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n"}]}, {"source1": "dev/langchain4j/rag/content/ContentTest.class", "source2": "dev/langchain4j/rag/content/ContentTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,109 +1,109 @@\n-  SHA-256 checksum 5d42acda6e479056e80e48d8321bc587464a73e7ec53a09a6b58345583ac46ed\n+  SHA-256 checksum 01a9a4552e9225692fa4459520d084fd760550cc89c0848cf164f3b7057d2abd\n   Compiled from \"ContentTest.java\"\n class dev.langchain4j.rag.content.ContentTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #21                         // dev/langchain4j/rag/content/ContentTest\n-  super_class: #22                        // java/lang/Object\n+  this_class: #70                         // dev/langchain4j/rag/content/ContentTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 5, attributes: 1\n Constant pool:\n-   #1 = Methodref          #22.#48        // java/lang/Object.\"<init>\":()V\n-   #2 = String             #33            // content\n-   #3 = Methodref          #49.#50        // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #4 = Methodref          #49.#51        // dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-   #5 = Methodref          #52.#53        // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-   #6 = Methodref          #54.#55        // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #7 = Methodref          #56.#57        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #8 = String             #58            // text\n-   #9 = Methodref          #52.#59        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #10 = Methodref          #49.#60        // dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-  #11 = Methodref          #54.#61        // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #12 = Methodref          #15.#62        // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #13 = String             #63            // content 2\n-  #14 = Methodref          #15.#64        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #15 = Class              #65            // org/assertj/core/api/ObjectAssert\n-  #16 = Methodref          #15.#66        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #17 = Methodref          #15.#67        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #18 = Methodref          #15.#68        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #19 = Methodref          #49.#69        // dev/langchain4j/rag/content/Content.toString:()Ljava/lang/String;\n-  #20 = String             #70            // Content { textSegment = TextSegment { text = \\\"content\\\" metadata = {} } }\n-  #21 = Class              #71            // dev/langchain4j/rag/content/ContentTest\n-  #22 = Class              #72            // java/lang/Object\n-  #23 = Utf8               <init>\n-  #24 = Utf8               ()V\n-  #25 = Utf8               Code\n-  #26 = Utf8               LineNumberTable\n-  #27 = Utf8               LocalVariableTable\n-  #28 = Utf8               this\n-  #29 = Utf8               Ldev/langchain4j/rag/content/ContentTest;\n-  #30 = Utf8               test_create_from_string\n-  #31 = Utf8               contentText\n-  #32 = Utf8               Ljava/lang/String;\n-  #33 = Utf8               content\n-  #34 = Utf8               Ldev/langchain4j/rag/content/Content;\n-  #35 = Utf8               RuntimeVisibleAnnotations\n-  #36 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #37 = Utf8               test_create_from_text_segment\n-  #38 = Utf8               segment\n-  #39 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-  #40 = Utf8               test_equals_hashCode\n-  #41 = Utf8               content1\n-  #42 = Utf8               content2\n-  #43 = Utf8               content3\n-  #44 = Utf8               test_toString\n-  #45 = Utf8               toString\n-  #46 = Utf8               SourceFile\n-  #47 = Utf8               ContentTest.java\n-  #48 = NameAndType        #23:#24        // \"<init>\":()V\n-  #49 = Class              #73            // dev/langchain4j/rag/content/Content\n-  #50 = NameAndType        #74:#75        // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #51 = NameAndType        #76:#77        // textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-  #52 = Class              #78            // dev/langchain4j/data/segment/TextSegment\n-  #53 = NameAndType        #58:#79        // text:()Ljava/lang/String;\n-  #54 = Class              #80            // org/assertj/core/api/Assertions\n-  #55 = NameAndType        #81:#82        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #56 = Class              #83            // org/assertj/core/api/AbstractStringAssert\n-  #57 = NameAndType        #84:#82        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #58 = Utf8               text\n-  #59 = NameAndType        #74:#85        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #60 = NameAndType        #74:#86        // from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-  #61 = NameAndType        #81:#87        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #62 = NameAndType        #88:#89        // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #63 = Utf8               content 2\n-  #64 = NameAndType        #90:#89        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #65 = Utf8               org/assertj/core/api/ObjectAssert\n-  #66 = NameAndType        #91:#89        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #67 = NameAndType        #84:#89        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #68 = NameAndType        #92:#89        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #69 = NameAndType        #45:#79        // toString:()Ljava/lang/String;\n-  #70 = Utf8               Content { textSegment = TextSegment { text = \\\"content\\\" metadata = {} } }\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // content\n+   #8 = Utf8               content\n+   #9 = Methodref          #10.#11        // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+  #10 = Class              #12            // dev/langchain4j/rag/content/Content\n+  #11 = NameAndType        #13:#14        // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+  #12 = Utf8               dev/langchain4j/rag/content/Content\n+  #13 = Utf8               from\n+  #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+  #15 = Methodref          #10.#16        // dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+  #16 = NameAndType        #17:#18        // textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+  #17 = Utf8               textSegment\n+  #18 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n+  #19 = Methodref          #20.#21        // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+  #20 = Class              #22            // dev/langchain4j/data/segment/TextSegment\n+  #21 = NameAndType        #23:#24        // text:()Ljava/lang/String;\n+  #22 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #23 = Utf8               text\n+  #24 = Utf8               ()Ljava/lang/String;\n+  #25 = Methodref          #26.#27        // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #26 = Class              #28            // org/assertj/core/api/Assertions\n+  #27 = NameAndType        #29:#30        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #28 = Utf8               org/assertj/core/api/Assertions\n+  #29 = Utf8               assertThat\n+  #30 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #31 = Methodref          #32.#33        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #32 = Class              #34            // org/assertj/core/api/AbstractStringAssert\n+  #33 = NameAndType        #35:#30        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #34 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #35 = Utf8               isEqualTo\n+  #36 = String             #23            // text\n+  #37 = Methodref          #20.#38        // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #38 = NameAndType        #13:#39        // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #39 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+  #40 = Methodref          #10.#41        // dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+  #41 = NameAndType        #13:#42        // from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+  #42 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+  #43 = Methodref          #26.#44        // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #44 = NameAndType        #29:#45        // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #45 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+  #46 = Methodref          #47.#48        // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #47 = Class              #49            // org/assertj/core/api/ObjectAssert\n+  #48 = NameAndType        #50:#51        // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #49 = Utf8               org/assertj/core/api/ObjectAssert\n+  #50 = Utf8               isSameAs\n+  #51 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #52 = String             #53            // content 2\n+  #53 = Utf8               content 2\n+  #54 = Methodref          #47.#55        // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #55 = NameAndType        #56:#51        // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #56 = Utf8               isNotEqualTo\n+  #57 = Methodref          #47.#58        // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #58 = NameAndType        #59:#51        // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #59 = Utf8               doesNotHaveSameHashCodeAs\n+  #60 = Methodref          #47.#61        // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #61 = NameAndType        #35:#51        // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #62 = Methodref          #47.#63        // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #63 = NameAndType        #64:#51        // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #64 = Utf8               hasSameHashCodeAs\n+  #65 = Methodref          #10.#66        // dev/langchain4j/rag/content/Content.toString:()Ljava/lang/String;\n+  #66 = NameAndType        #67:#24        // toString:()Ljava/lang/String;\n+  #67 = Utf8               toString\n+  #68 = String             #69            // Content { textSegment = TextSegment { text = \\\"content\\\" metadata = {} } }\n+  #69 = Utf8               Content { textSegment = TextSegment { text = \\\"content\\\" metadata = {} } }\n+  #70 = Class              #71            // dev/langchain4j/rag/content/ContentTest\n   #71 = Utf8               dev/langchain4j/rag/content/ContentTest\n-  #72 = Utf8               java/lang/Object\n-  #73 = Utf8               dev/langchain4j/rag/content/Content\n-  #74 = Utf8               from\n-  #75 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #76 = Utf8               textSegment\n-  #77 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n-  #78 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #79 = Utf8               ()Ljava/lang/String;\n-  #80 = Utf8               org/assertj/core/api/Assertions\n-  #81 = Utf8               assertThat\n-  #82 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #83 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #84 = Utf8               isEqualTo\n-  #85 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #86 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-  #87 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #88 = Utf8               isSameAs\n-  #89 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #90 = Utf8               isNotEqualTo\n-  #91 = Utf8               doesNotHaveSameHashCodeAs\n-  #92 = Utf8               hasSameHashCodeAs\n+  #72 = Utf8               Code\n+  #73 = Utf8               LineNumberTable\n+  #74 = Utf8               LocalVariableTable\n+  #75 = Utf8               this\n+  #76 = Utf8               Ldev/langchain4j/rag/content/ContentTest;\n+  #77 = Utf8               test_create_from_string\n+  #78 = Utf8               contentText\n+  #79 = Utf8               Ljava/lang/String;\n+  #80 = Utf8               Ldev/langchain4j/rag/content/Content;\n+  #81 = Utf8               RuntimeVisibleAnnotations\n+  #82 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #83 = Utf8               test_create_from_text_segment\n+  #84 = Utf8               segment\n+  #85 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #86 = Utf8               test_equals_hashCode\n+  #87 = Utf8               content1\n+  #88 = Utf8               content2\n+  #89 = Utf8               content3\n+  #90 = Utf8               test_toString\n+  #91 = Utf8               SourceFile\n+  #92 = Utf8               ContentTest.java\n {\n   dev.langchain4j.rag.content.ContentTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -116,102 +116,102 @@\n             0       5     0  this   Ldev/langchain4j/rag/content/ContentTest;\n \n   void test_create_from_string();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #2                  // String content\n+         0: ldc           #7                  // String content\n          2: astore_1\n          3: aload_1\n-         4: invokestatic  #3                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         4: invokestatic  #9                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n          7: astore_2\n          8: aload_2\n-         9: invokevirtual #4                  // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-        12: invokevirtual #5                  // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-        15: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         9: invokevirtual #15                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+        12: invokevirtual #19                 // Method dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+        15: invokestatic  #25                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         18: aload_1\n-        19: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        19: invokevirtual #31                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         22: pop\n         23: return\n       LineNumberTable:\n         line 14: 0\n         line 17: 3\n         line 20: 8\n         line 21: 23\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      24     0  this   Ldev/langchain4j/rag/content/ContentTest;\n             3      21     1 contentText   Ljava/lang/String;\n             8      16     2 content   Ldev/langchain4j/rag/content/Content;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #82()\n         org.junit.jupiter.api.Test\n \n   void test_create_from_text_segment();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #8                  // String text\n-         2: invokestatic  #9                  // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         0: ldc           #36                 // String text\n+         2: invokestatic  #37                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n          5: astore_1\n          6: aload_1\n-         7: invokestatic  #10                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+         7: invokestatic  #40                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n         10: astore_2\n         11: aload_2\n-        12: invokevirtual #4                  // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-        15: invokestatic  #11                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        12: invokevirtual #15                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+        15: invokestatic  #43                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         18: aload_1\n-        19: invokevirtual #12                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        19: invokevirtual #46                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         22: pop\n         23: return\n       LineNumberTable:\n         line 27: 0\n         line 30: 6\n         line 33: 11\n         line 34: 23\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      24     0  this   Ldev/langchain4j/rag/content/ContentTest;\n             6      18     1 segment   Ldev/langchain4j/data/segment/TextSegment;\n            11      13     2 content   Ldev/langchain4j/rag/content/Content;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #82()\n         org.junit.jupiter.api.Test\n \n   void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=4, args_size=1\n-         0: ldc           #2                  // String content\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         0: ldc           #7                  // String content\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n          5: astore_1\n-         6: ldc           #13                 // String content 2\n-         8: invokestatic  #3                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #52                 // String content 2\n+         8: invokestatic  #9                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #2                  // String content\n-        14: invokestatic  #3                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #7                  // String content\n+        14: invokestatic  #9                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n         18: aload_1\n-        19: invokestatic  #11                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        19: invokestatic  #43                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         22: aload_2\n-        23: invokevirtual #14                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        26: checkcast     #15                 // class org/assertj/core/api/ObjectAssert\n+        23: invokevirtual #54                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        26: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         29: aload_2\n-        30: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        30: invokevirtual #57                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         33: pop\n         34: aload_1\n-        35: invokestatic  #11                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        35: invokestatic  #43                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         38: aload_3\n-        39: invokevirtual #17                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        42: checkcast     #15                 // class org/assertj/core/api/ObjectAssert\n+        39: invokevirtual #60                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        42: checkcast     #47                 // class org/assertj/core/api/ObjectAssert\n         45: aload_3\n-        46: invokevirtual #18                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        46: invokevirtual #62                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         49: pop\n         50: return\n       LineNumberTable:\n         line 40: 0\n         line 41: 6\n         line 42: 12\n         line 45: 18\n@@ -224,43 +224,43 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      51     0  this   Ldev/langchain4j/rag/content/ContentTest;\n             6      45     1 content1   Ldev/langchain4j/rag/content/Content;\n            12      39     2 content2   Ldev/langchain4j/rag/content/Content;\n            18      33     3 content3   Ldev/langchain4j/rag/content/Content;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #82()\n         org.junit.jupiter.api.Test\n \n   void test_toString();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #2                  // String content\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         0: ldc           #7                  // String content\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n          5: astore_1\n          6: aload_1\n-         7: invokevirtual #19                 // Method dev/langchain4j/rag/content/Content.toString:()Ljava/lang/String;\n+         7: invokevirtual #65                 // Method dev/langchain4j/rag/content/Content.toString:()Ljava/lang/String;\n         10: astore_2\n         11: aload_2\n-        12: invokestatic  #6                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        15: ldc           #20                 // String Content { textSegment = TextSegment { text = \\\"content\\\" metadata = {} } }\n-        17: invokevirtual #7                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        12: invokestatic  #25                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        15: ldc           #68                 // String Content { textSegment = TextSegment { text = \\\"content\\\" metadata = {} } }\n+        17: invokevirtual #31                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         20: pop\n         21: return\n       LineNumberTable:\n         line 58: 0\n         line 61: 6\n         line 64: 11\n         line 65: 17\n         line 66: 21\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      22     0  this   Ldev/langchain4j/rag/content/ContentTest;\n             6      16     1 content   Ldev/langchain4j/rag/content/Content;\n            11      11     2 toString   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #36()\n+      0: #82()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ContentTest.java\"\n"}]}, {"source1": "dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest.class", "source2": "dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,217 +1,217 @@\n-  SHA-256 checksum 66aa6e8e1fbdacac66b380c65b2e61e30a36d77715ab6cc4a5a765c1a703374f\n+  SHA-256 checksum 51b454f1e767fd4ad5e65312455256d6be657c8971d11f0fa1d6c3ed2d30480d\n   Compiled from \"DefaultContentAggregatorTest.java\"\n class dev.langchain4j.rag.content.aggregator.DefaultContentAggregatorTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #30                         // dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest\n-  super_class: #31                        // java/lang/Object\n+  this_class: #11                         // dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 1, methods: 6, attributes: 1\n Constant pool:\n-    #1 = Methodref          #31.#70       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #71           // dev/langchain4j/rag/content/aggregator/DefaultContentAggregator\n-    #3 = Methodref          #2.#70        // dev/langchain4j/rag/content/aggregator/DefaultContentAggregator.\"<init>\":()V\n-    #4 = Fieldref           #30.#72       // dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest.aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-    #5 = String             #42           // query\n-    #6 = Methodref          #73.#74       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-    #7 = String             #75           // content 1\n-    #8 = Methodref          #10.#76       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-    #9 = String             #77           // content 2\n-   #10 = Class              #78           // dev/langchain4j/rag/content/Content\n-   #11 = Methodref          #79.#80       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #12 = Methodref          #81.#82       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #13 = Methodref          #81.#83       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #14 = InterfaceMethodref #84.#85       // dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n-   #15 = Methodref          #86.#87       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #16 = Methodref          #88.#89       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #17 = String             #90           // content 3\n-   #18 = String             #91           // content 4\n-   #19 = Class              #92           // java/util/List\n-   #20 = String             #93           // content\n-   #21 = String             #94           // query 1\n-   #22 = String             #95           // query 2\n-   #23 = String             #96           // content 5\n-   #24 = String             #97           // content 6\n-   #25 = String             #98           // content 7\n-   #26 = String             #99           // content 8\n-   #27 = Class              #100          // java/util/LinkedHashMap\n-   #28 = Methodref          #27.#70       // java/util/LinkedHashMap.\"<init>\":()V\n-   #29 = InterfaceMethodref #101.#102     // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #30 = Class              #103          // dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest\n-   #31 = Class              #104          // java/lang/Object\n-   #32 = Utf8               aggregator\n-   #33 = Utf8               Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-   #34 = Utf8               <init>\n-   #35 = Utf8               ()V\n-   #36 = Utf8               Code\n-   #37 = Utf8               LineNumberTable\n-   #38 = Utf8               LocalVariableTable\n-   #39 = Utf8               this\n-   #40 = Utf8               Ldev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest;\n-   #41 = Utf8               should_return_same_contents_when_single_query_and_single_contents\n-   #42 = Utf8               query\n-   #43 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #44 = Utf8               content1\n-   #45 = Utf8               Ldev/langchain4j/rag/content/Content;\n-   #46 = Utf8               content2\n-   #47 = Utf8               queryToContents\n-   #48 = Utf8               Ljava/util/Map;\n-   #49 = Utf8               aggregated\n-   #50 = Utf8               Ljava/util/List;\n-   #51 = Utf8               LocalVariableTypeTable\n-   #52 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n-   #53 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-   #54 = Utf8               RuntimeVisibleAnnotations\n-   #55 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #56 = Utf8               should_fuse_contents_when_single_query_and_multiple_contents\n-   #57 = Utf8               content3\n-   #58 = Utf8               content4\n-   #59 = Utf8               should_fuse_contents_when_single_query_and_multiple_contents_with_repeating_content\n-   #60 = Utf8               should_fuse_contents_when_multiple_queries_and_multiple_contents\n-   #61 = Utf8               query1\n-   #62 = Utf8               query2\n-   #63 = Utf8               content5\n-   #64 = Utf8               content6\n-   #65 = Utf8               content7\n-   #66 = Utf8               content8\n-   #67 = Utf8               should_fuse_contents_when_multiple_queries_and_multiple_contents_with_repeating_content_between_queries\n-   #68 = Utf8               SourceFile\n-   #69 = Utf8               DefaultContentAggregatorTest.java\n-   #70 = NameAndType        #34:#35       // \"<init>\":()V\n-   #71 = Utf8               dev/langchain4j/rag/content/aggregator/DefaultContentAggregator\n-   #72 = NameAndType        #32:#33       // aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-   #73 = Class              #105          // dev/langchain4j/rag/query/Query\n-   #74 = NameAndType        #106:#107     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #75 = Utf8               content 1\n-   #76 = NameAndType        #106:#108     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #77 = Utf8               content 2\n-   #78 = Utf8               dev/langchain4j/rag/content/Content\n-   #79 = Class              #109          // java/util/Arrays\n-   #80 = NameAndType        #110:#111     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #81 = Class              #112          // java/util/Collections\n-   #82 = NameAndType        #113:#114     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #83 = NameAndType        #115:#116     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #84 = Class              #117          // dev/langchain4j/rag/content/aggregator/ContentAggregator\n-   #85 = NameAndType        #118:#119     // aggregate:(Ljava/util/Map;)Ljava/util/List;\n-   #86 = Class              #120          // org/assertj/core/api/Assertions\n-   #87 = NameAndType        #121:#122     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #88 = Class              #123          // org/assertj/core/api/ListAssert\n-   #89 = NameAndType        #124:#125     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #90 = Utf8               content 3\n-   #91 = Utf8               content 4\n-   #92 = Utf8               java/util/List\n-   #93 = Utf8               content\n-   #94 = Utf8               query 1\n-   #95 = Utf8               query 2\n-   #96 = Utf8               content 5\n-   #97 = Utf8               content 6\n-   #98 = Utf8               content 7\n-   #99 = Utf8               content 8\n-  #100 = Utf8               java/util/LinkedHashMap\n-  #101 = Class              #126          // java/util/Map\n-  #102 = NameAndType        #127:#128     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #103 = Utf8               dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest\n-  #104 = Utf8               java/lang/Object\n-  #105 = Utf8               dev/langchain4j/rag/query/Query\n-  #106 = Utf8               from\n-  #107 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #108 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #109 = Utf8               java/util/Arrays\n-  #110 = Utf8               asList\n-  #111 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #112 = Utf8               java/util/Collections\n-  #113 = Utf8               singletonList\n-  #114 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #115 = Utf8               singletonMap\n-  #116 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #117 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n-  #118 = Utf8               aggregate\n-  #119 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n-  #120 = Utf8               org/assertj/core/api/Assertions\n-  #121 = Utf8               assertThat\n-  #122 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #123 = Utf8               org/assertj/core/api/ListAssert\n-  #124 = Utf8               containsExactly\n-  #125 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #126 = Utf8               java/util/Map\n-  #127 = Utf8               put\n-  #128 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/rag/content/aggregator/DefaultContentAggregator\n+    #8 = Utf8               dev/langchain4j/rag/content/aggregator/DefaultContentAggregator\n+    #9 = Methodref          #7.#3         // dev/langchain4j/rag/content/aggregator/DefaultContentAggregator.\"<init>\":()V\n+   #10 = Fieldref           #11.#12       // dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest.aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+   #11 = Class              #13           // dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest\n+   #12 = NameAndType        #14:#15       // aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+   #13 = Utf8               dev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest\n+   #14 = Utf8               aggregator\n+   #15 = Utf8               Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+   #16 = String             #17           // query\n+   #17 = Utf8               query\n+   #18 = Methodref          #19.#20       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #19 = Class              #21           // dev/langchain4j/rag/query/Query\n+   #20 = NameAndType        #22:#23       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #21 = Utf8               dev/langchain4j/rag/query/Query\n+   #22 = Utf8               from\n+   #23 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #24 = String             #25           // content 1\n+   #25 = Utf8               content 1\n+   #26 = Methodref          #27.#28       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #27 = Class              #29           // dev/langchain4j/rag/content/Content\n+   #28 = NameAndType        #22:#30       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #29 = Utf8               dev/langchain4j/rag/content/Content\n+   #30 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #31 = String             #32           // content 2\n+   #32 = Utf8               content 2\n+   #33 = Methodref          #34.#35       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #34 = Class              #36           // java/util/Arrays\n+   #35 = NameAndType        #37:#38       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #36 = Utf8               java/util/Arrays\n+   #37 = Utf8               asList\n+   #38 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #39 = Methodref          #40.#41       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #40 = Class              #42           // java/util/Collections\n+   #41 = NameAndType        #43:#44       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #42 = Utf8               java/util/Collections\n+   #43 = Utf8               singletonList\n+   #44 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #45 = Methodref          #40.#46       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #46 = NameAndType        #47:#48       // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #47 = Utf8               singletonMap\n+   #48 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #49 = InterfaceMethodref #50.#51       // dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+   #50 = Class              #52           // dev/langchain4j/rag/content/aggregator/ContentAggregator\n+   #51 = NameAndType        #53:#54       // aggregate:(Ljava/util/Map;)Ljava/util/List;\n+   #52 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n+   #53 = Utf8               aggregate\n+   #54 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n+   #55 = Methodref          #56.#57       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #56 = Class              #58           // org/assertj/core/api/Assertions\n+   #57 = NameAndType        #59:#60       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #58 = Utf8               org/assertj/core/api/Assertions\n+   #59 = Utf8               assertThat\n+   #60 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #61 = Methodref          #62.#63       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #62 = Class              #64           // org/assertj/core/api/ListAssert\n+   #63 = NameAndType        #65:#66       // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #64 = Utf8               org/assertj/core/api/ListAssert\n+   #65 = Utf8               containsExactly\n+   #66 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #67 = String             #68           // content 3\n+   #68 = Utf8               content 3\n+   #69 = String             #70           // content 4\n+   #70 = Utf8               content 4\n+   #71 = Class              #72           // java/util/List\n+   #72 = Utf8               java/util/List\n+   #73 = String             #74           // content\n+   #74 = Utf8               content\n+   #75 = String             #76           // query 1\n+   #76 = Utf8               query 1\n+   #77 = String             #78           // query 2\n+   #78 = Utf8               query 2\n+   #79 = String             #80           // content 5\n+   #80 = Utf8               content 5\n+   #81 = String             #82           // content 6\n+   #82 = Utf8               content 6\n+   #83 = String             #84           // content 7\n+   #84 = Utf8               content 7\n+   #85 = String             #86           // content 8\n+   #86 = Utf8               content 8\n+   #87 = Class              #88           // java/util/LinkedHashMap\n+   #88 = Utf8               java/util/LinkedHashMap\n+   #89 = Methodref          #87.#3        // java/util/LinkedHashMap.\"<init>\":()V\n+   #90 = InterfaceMethodref #91.#92       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #91 = Class              #93           // java/util/Map\n+   #92 = NameAndType        #94:#95       // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #93 = Utf8               java/util/Map\n+   #94 = Utf8               put\n+   #95 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #96 = Utf8               Code\n+   #97 = Utf8               LineNumberTable\n+   #98 = Utf8               LocalVariableTable\n+   #99 = Utf8               this\n+  #100 = Utf8               Ldev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest;\n+  #101 = Utf8               should_return_same_contents_when_single_query_and_single_contents\n+  #102 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #103 = Utf8               content1\n+  #104 = Utf8               Ldev/langchain4j/rag/content/Content;\n+  #105 = Utf8               content2\n+  #106 = Utf8               queryToContents\n+  #107 = Utf8               Ljava/util/Map;\n+  #108 = Utf8               aggregated\n+  #109 = Utf8               Ljava/util/List;\n+  #110 = Utf8               LocalVariableTypeTable\n+  #111 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n+  #112 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #113 = Utf8               RuntimeVisibleAnnotations\n+  #114 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #115 = Utf8               should_fuse_contents_when_single_query_and_multiple_contents\n+  #116 = Utf8               content3\n+  #117 = Utf8               content4\n+  #118 = Utf8               should_fuse_contents_when_single_query_and_multiple_contents_with_repeating_content\n+  #119 = Utf8               should_fuse_contents_when_multiple_queries_and_multiple_contents\n+  #120 = Utf8               query1\n+  #121 = Utf8               query2\n+  #122 = Utf8               content5\n+  #123 = Utf8               content6\n+  #124 = Utf8               content7\n+  #125 = Utf8               content8\n+  #126 = Utf8               should_fuse_contents_when_multiple_queries_and_multiple_contents_with_repeating_content_between_queries\n+  #127 = Utf8               SourceFile\n+  #128 = Utf8               DefaultContentAggregatorTest.java\n {\n   dev.langchain4j.rag.content.aggregator.ContentAggregator aggregator;\n     descriptor: Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n     flags: (0x0000)\n \n   dev.langchain4j.rag.content.aggregator.DefaultContentAggregatorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n-         5: new           #2                  // class dev/langchain4j/rag/content/aggregator/DefaultContentAggregator\n+         5: new           #7                  // class dev/langchain4j/rag/content/aggregator/DefaultContentAggregator\n          8: dup\n-         9: invokespecial #3                  // Method dev/langchain4j/rag/content/aggregator/DefaultContentAggregator.\"<init>\":()V\n-        12: putfield      #4                  // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+         9: invokespecial #9                  // Method dev/langchain4j/rag/content/aggregator/DefaultContentAggregator.\"<init>\":()V\n+        12: putfield      #10                 // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n         15: return\n       LineNumberTable:\n         line 17: 0\n         line 19: 4\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      16     0  this   Ldev/langchain4j/rag/content/aggregator/DefaultContentAggregatorTest;\n \n   void should_return_same_contents_when_single_query_and_single_contents();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=6, args_size=1\n-         0: ldc           #5                  // String query\n-         2: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #16                 // String query\n+         2: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: ldc           #7                  // String content 1\n-         8: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #24                 // String content 1\n+         8: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #9                  // String content 2\n-        14: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #31                 // String content 2\n+        14: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n         18: aload_1\n         19: iconst_2\n-        20: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        20: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         23: dup\n         24: iconst_0\n         25: aload_2\n         26: aastore\n         27: dup\n         28: iconst_1\n         29: aload_3\n         30: aastore\n-        31: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        34: invokestatic  #12                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        37: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        31: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        34: invokestatic  #39                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        37: invokestatic  #45                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n         40: astore        4\n         42: aload_0\n-        43: getfield      #4                  // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+        43: getfield      #10                 // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n         46: aload         4\n-        48: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+        48: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n         53: astore        5\n         55: aload         5\n-        57: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        57: invokestatic  #55                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         60: iconst_2\n-        61: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        61: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         64: dup\n         65: iconst_0\n         66: aload_2\n         67: aastore\n         68: dup\n         69: iconst_1\n         70: aload_3\n         71: aastore\n-        72: invokevirtual #16                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        72: invokevirtual #61                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         75: pop\n         76: return\n       LineNumberTable:\n         line 25: 0\n         line 26: 6\n         line 27: 12\n         line 29: 18\n@@ -229,80 +229,80 @@\n            42      35     4 queryToContents   Ljava/util/Map;\n            55      22     5 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            42      35     4 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n            55      22     5 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #55()\n+      0: #114()\n         org.junit.jupiter.api.Test\n \n   void should_fuse_contents_when_single_query_and_multiple_contents();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=8, locals=8, args_size=1\n-         0: ldc           #5                  // String query\n-         2: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #16                 // String query\n+         2: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: ldc           #7                  // String content 1\n-         8: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #24                 // String content 1\n+         8: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #9                  // String content 2\n-        14: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #31                 // String content 2\n+        14: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n-        18: ldc           #17                 // String content 3\n-        20: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        18: ldc           #67                 // String content 3\n+        20: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         23: astore        4\n-        25: ldc           #18                 // String content 4\n-        27: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        25: ldc           #69                 // String content 4\n+        27: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         30: astore        5\n         32: aload_1\n         33: iconst_2\n-        34: anewarray     #19                 // class java/util/List\n+        34: anewarray     #71                 // class java/util/List\n         37: dup\n         38: iconst_0\n         39: iconst_2\n-        40: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        40: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         43: dup\n         44: iconst_0\n         45: aload_2\n         46: aastore\n         47: dup\n         48: iconst_1\n         49: aload_3\n         50: aastore\n-        51: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        51: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         54: aastore\n         55: dup\n         56: iconst_1\n         57: iconst_2\n-        58: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        58: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         61: dup\n         62: iconst_0\n         63: aload         4\n         65: aastore\n         66: dup\n         67: iconst_1\n         68: aload         5\n         70: aastore\n-        71: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        71: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         74: aastore\n-        75: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        78: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        75: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        78: invokestatic  #45                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n         81: astore        6\n         83: aload_0\n-        84: getfield      #4                  // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+        84: getfield      #10                 // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n         87: aload         6\n-        89: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+        89: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n         94: astore        7\n         96: aload         7\n-        98: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        98: invokestatic  #55                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        101: iconst_4\n-       102: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       102: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        105: dup\n        106: iconst_0\n        107: aload_2\n        108: aastore\n        109: dup\n        110: iconst_1\n        111: aload         4\n@@ -311,15 +311,15 @@\n        115: iconst_2\n        116: aload_3\n        117: aastore\n        118: dup\n        119: iconst_3\n        120: aload         5\n        122: aastore\n-       123: invokevirtual #16                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       123: invokevirtual #61                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        126: pop\n        127: return\n       LineNumberTable:\n         line 45: 0\n         line 46: 6\n         line 47: 12\n         line 48: 18\n@@ -343,93 +343,93 @@\n            83      45     6 queryToContents   Ljava/util/Map;\n            96      32     7 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            83      45     6 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n            96      32     7 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #55()\n+      0: #114()\n         org.junit.jupiter.api.Test\n \n   void should_fuse_contents_when_single_query_and_multiple_contents_with_repeating_content();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=8, locals=8, args_size=1\n-         0: ldc           #5                  // String query\n-         2: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #16                 // String query\n+         2: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: ldc           #7                  // String content 1\n-         8: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #24                 // String content 1\n+         8: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #20                 // String content\n-        14: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #73                 // String content\n+        14: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n-        18: ldc           #20                 // String content\n-        20: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        18: ldc           #73                 // String content\n+        20: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         23: astore        4\n-        25: ldc           #18                 // String content 4\n-        27: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        25: ldc           #69                 // String content 4\n+        27: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         30: astore        5\n         32: aload_1\n         33: iconst_2\n-        34: anewarray     #19                 // class java/util/List\n+        34: anewarray     #71                 // class java/util/List\n         37: dup\n         38: iconst_0\n         39: iconst_2\n-        40: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        40: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         43: dup\n         44: iconst_0\n         45: aload_2\n         46: aastore\n         47: dup\n         48: iconst_1\n         49: aload_3\n         50: aastore\n-        51: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        51: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         54: aastore\n         55: dup\n         56: iconst_1\n         57: iconst_2\n-        58: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        58: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         61: dup\n         62: iconst_0\n         63: aload         4\n         65: aastore\n         66: dup\n         67: iconst_1\n         68: aload         5\n         70: aastore\n-        71: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        71: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         74: aastore\n-        75: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        78: invokestatic  #13                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        75: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        78: invokestatic  #45                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n         81: astore        6\n         83: aload_0\n-        84: getfield      #4                  // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+        84: getfield      #10                 // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n         87: aload         6\n-        89: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+        89: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n         94: astore        7\n         96: aload         7\n-        98: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        98: invokestatic  #55                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        101: iconst_3\n-       102: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       102: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        105: dup\n        106: iconst_0\n        107: aload_3\n        108: aastore\n        109: dup\n        110: iconst_1\n        111: aload_2\n        112: aastore\n        113: dup\n        114: iconst_2\n        115: aload         5\n        117: aastore\n-       118: invokevirtual #16                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       118: invokevirtual #61                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        121: pop\n        122: return\n       LineNumberTable:\n         line 70: 0\n         line 71: 6\n         line 72: 12\n         line 73: 18\n@@ -454,135 +454,135 @@\n            83      40     6 queryToContents   Ljava/util/Map;\n            96      27     7 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            83      40     6 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n            96      27     7 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #55()\n+      0: #114()\n         org.junit.jupiter.api.Test\n \n   void should_fuse_contents_when_multiple_queries_and_multiple_contents();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=9, locals=13, args_size=1\n-         0: ldc           #21                 // String query 1\n-         2: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #75                 // String query 1\n+         2: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: ldc           #7                  // String content 1\n-         8: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #24                 // String content 1\n+         8: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #9                  // String content 2\n-        14: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #31                 // String content 2\n+        14: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n-        18: ldc           #17                 // String content 3\n-        20: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        18: ldc           #67                 // String content 3\n+        20: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         23: astore        4\n-        25: ldc           #18                 // String content 4\n-        27: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        25: ldc           #69                 // String content 4\n+        27: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         30: astore        5\n-        32: ldc           #22                 // String query 2\n-        34: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        32: ldc           #77                 // String query 2\n+        34: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         37: astore        6\n-        39: ldc           #23                 // String content 5\n-        41: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        39: ldc           #79                 // String content 5\n+        41: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         44: astore        7\n-        46: ldc           #24                 // String content 6\n-        48: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        46: ldc           #81                 // String content 6\n+        48: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         51: astore        8\n-        53: ldc           #25                 // String content 7\n-        55: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        53: ldc           #83                 // String content 7\n+        55: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         58: astore        9\n-        60: ldc           #26                 // String content 8\n-        62: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        60: ldc           #85                 // String content 8\n+        62: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         65: astore        10\n-        67: new           #27                 // class java/util/LinkedHashMap\n+        67: new           #87                 // class java/util/LinkedHashMap\n         70: dup\n-        71: invokespecial #28                 // Method java/util/LinkedHashMap.\"<init>\":()V\n+        71: invokespecial #89                 // Method java/util/LinkedHashMap.\"<init>\":()V\n         74: astore        11\n         76: aload         11\n         78: aload_1\n         79: iconst_2\n-        80: anewarray     #19                 // class java/util/List\n+        80: anewarray     #71                 // class java/util/List\n         83: dup\n         84: iconst_0\n         85: iconst_2\n-        86: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        86: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         89: dup\n         90: iconst_0\n         91: aload_2\n         92: aastore\n         93: dup\n         94: iconst_1\n         95: aload_3\n         96: aastore\n-        97: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        97: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        100: aastore\n        101: dup\n        102: iconst_1\n        103: iconst_2\n-       104: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       104: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        107: dup\n        108: iconst_0\n        109: aload         4\n        111: aastore\n        112: dup\n        113: iconst_1\n        114: aload         5\n        116: aastore\n-       117: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       117: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        120: aastore\n-       121: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       124: invokeinterface #29,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       121: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       124: invokeinterface #90,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        129: pop\n        130: aload         11\n        132: aload         6\n        134: iconst_2\n-       135: anewarray     #19                 // class java/util/List\n+       135: anewarray     #71                 // class java/util/List\n        138: dup\n        139: iconst_0\n        140: iconst_2\n-       141: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       141: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        144: dup\n        145: iconst_0\n        146: aload         7\n        148: aastore\n        149: dup\n        150: iconst_1\n        151: aload         8\n        153: aastore\n-       154: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       154: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        157: aastore\n        158: dup\n        159: iconst_1\n        160: iconst_2\n-       161: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       161: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        164: dup\n        165: iconst_0\n        166: aload         9\n        168: aastore\n        169: dup\n        170: iconst_1\n        171: aload         10\n        173: aastore\n-       174: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       174: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        177: aastore\n-       178: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       181: invokeinterface #29,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       178: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       181: invokeinterface #90,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        186: pop\n        187: aload_0\n-       188: getfield      #4                  // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+       188: getfield      #10                 // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n        191: aload         11\n-       193: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+       193: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n        198: astore        12\n        200: aload         12\n-       202: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       202: invokestatic  #55                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        205: bipush        8\n-       207: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       207: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        210: dup\n        211: iconst_0\n        212: aload_2\n        213: aastore\n        214: dup\n        215: iconst_1\n        216: aload         7\n@@ -607,15 +607,15 @@\n        239: bipush        6\n        241: aload         5\n        243: aastore\n        244: dup\n        245: bipush        7\n        247: aload         10\n        249: aastore\n-       250: invokevirtual #16                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       250: invokevirtual #61                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        253: pop\n        254: return\n       LineNumberTable:\n         line 97: 0\n         line 98: 6\n         line 99: 12\n         line 100: 18\n@@ -656,135 +656,135 @@\n            76     179    11 queryToContents   Ljava/util/Map;\n           200      55    12 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            76     179    11 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n           200      55    12 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #55()\n+      0: #114()\n         org.junit.jupiter.api.Test\n \n   void should_fuse_contents_when_multiple_queries_and_multiple_contents_with_repeating_content_between_queries();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=9, locals=13, args_size=1\n-         0: ldc           #21                 // String query 1\n-         2: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #75                 // String query 1\n+         2: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: ldc           #20                 // String content\n-         8: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #73                 // String content\n+         8: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #9                  // String content 2\n-        14: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #31                 // String content 2\n+        14: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n-        18: ldc           #17                 // String content 3\n-        20: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        18: ldc           #67                 // String content 3\n+        20: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         23: astore        4\n-        25: ldc           #18                 // String content 4\n-        27: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        25: ldc           #69                 // String content 4\n+        27: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         30: astore        5\n-        32: ldc           #22                 // String query 2\n-        34: invokestatic  #6                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        32: ldc           #77                 // String query 2\n+        34: invokestatic  #18                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         37: astore        6\n-        39: ldc           #23                 // String content 5\n-        41: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        39: ldc           #79                 // String content 5\n+        41: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         44: astore        7\n-        46: ldc           #24                 // String content 6\n-        48: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        46: ldc           #81                 // String content 6\n+        48: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         51: astore        8\n-        53: ldc           #20                 // String content\n-        55: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        53: ldc           #73                 // String content\n+        55: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         58: astore        9\n-        60: ldc           #26                 // String content 8\n-        62: invokestatic  #8                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        60: ldc           #85                 // String content 8\n+        62: invokestatic  #26                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         65: astore        10\n-        67: new           #27                 // class java/util/LinkedHashMap\n+        67: new           #87                 // class java/util/LinkedHashMap\n         70: dup\n-        71: invokespecial #28                 // Method java/util/LinkedHashMap.\"<init>\":()V\n+        71: invokespecial #89                 // Method java/util/LinkedHashMap.\"<init>\":()V\n         74: astore        11\n         76: aload         11\n         78: aload_1\n         79: iconst_2\n-        80: anewarray     #19                 // class java/util/List\n+        80: anewarray     #71                 // class java/util/List\n         83: dup\n         84: iconst_0\n         85: iconst_2\n-        86: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+        86: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n         89: dup\n         90: iconst_0\n         91: aload_2\n         92: aastore\n         93: dup\n         94: iconst_1\n         95: aload_3\n         96: aastore\n-        97: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        97: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        100: aastore\n        101: dup\n        102: iconst_1\n        103: iconst_2\n-       104: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       104: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        107: dup\n        108: iconst_0\n        109: aload         4\n        111: aastore\n        112: dup\n        113: iconst_1\n        114: aload         5\n        116: aastore\n-       117: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       117: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        120: aastore\n-       121: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       124: invokeinterface #29,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       121: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       124: invokeinterface #90,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        129: pop\n        130: aload         11\n        132: aload         6\n        134: iconst_2\n-       135: anewarray     #19                 // class java/util/List\n+       135: anewarray     #71                 // class java/util/List\n        138: dup\n        139: iconst_0\n        140: iconst_2\n-       141: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       141: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        144: dup\n        145: iconst_0\n        146: aload         7\n        148: aastore\n        149: dup\n        150: iconst_1\n        151: aload         8\n        153: aastore\n-       154: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       154: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        157: aastore\n        158: dup\n        159: iconst_1\n        160: iconst_2\n-       161: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       161: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        164: dup\n        165: iconst_0\n        166: aload         9\n        168: aastore\n        169: dup\n        170: iconst_1\n        171: aload         10\n        173: aastore\n-       174: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       174: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        177: aastore\n-       178: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       181: invokeinterface #29,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       178: invokestatic  #33                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       181: invokeinterface #90,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        186: pop\n        187: aload_0\n-       188: getfield      #4                  // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+       188: getfield      #10                 // Field aggregator:Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n        191: aload         11\n-       193: invokeinterface #14,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+       193: invokeinterface #49,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n        198: astore        12\n        200: aload         12\n-       202: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       202: invokestatic  #55                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        205: bipush        7\n-       207: anewarray     #10                 // class dev/langchain4j/rag/content/Content\n+       207: anewarray     #27                 // class dev/langchain4j/rag/content/Content\n        210: dup\n        211: iconst_0\n        212: aload_2\n        213: aastore\n        214: dup\n        215: iconst_1\n        216: aload         7\n@@ -805,15 +805,15 @@\n        234: iconst_5\n        235: aload         5\n        237: aastore\n        238: dup\n        239: bipush        6\n        241: aload         10\n        243: aastore\n-       244: invokevirtual #16                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       244: invokevirtual #61                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        247: pop\n        248: return\n       LineNumberTable:\n         line 138: 0\n         line 139: 6\n         line 140: 12\n         line 141: 18\n@@ -854,11 +854,11 @@\n            76     173    11 queryToContents   Ljava/util/Map;\n           200      49    12 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            76     173    11 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n           200      49    12 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #55()\n+      0: #114()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"DefaultContentAggregatorTest.java\"\n"}]}, {"source1": "dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.class", "source2": "dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,344 +1,344 @@\n-  SHA-256 checksum 14a7aa258f330c81f37335084cfa9c7070b2601914c98e619d854b4e2720935c\n+  SHA-256 checksum 1b368fee53ab9986cbdd63d8e7f83039c371e552a965d31f3a25f0e956a287c4\n   Compiled from \"ReRankingContentAggregatorTest.java\"\n class dev.langchain4j.rag.content.aggregator.ReRankingContentAggregatorTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #81                         // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest\n-  super_class: #32                        // java/lang/Object\n+  this_class: #240                        // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 9, attributes: 3\n Constant pool:\n-    #1 = Methodref          #32.#144      // java/lang/Object.\"<init>\":()V\n-    #2 = String             #93           // query\n-    #3 = Methodref          #77.#145      // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-    #4 = String             #146          // content 1\n-    #5 = Methodref          #7.#147       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-    #6 = String             #148          // content 2\n-    #7 = Class              #149          // dev/langchain4j/rag/content/Content\n-    #8 = Methodref          #150.#151     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-    #9 = Methodref          #152.#153     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #10 = Methodref          #152.#154     // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-   #11 = Class              #155          // dev/langchain4j/model/scoring/ScoringModel\n-   #12 = Methodref          #156.#157     // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-   #13 = Methodref          #158.#159     // org/mockito/ArgumentMatchers.any:()Ljava/lang/Object;\n-   #14 = Class              #160          // java/util/List\n-   #15 = Class              #161          // java/lang/String\n-   #16 = InterfaceMethodref #11.#162      // dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-   #17 = Methodref          #156.#163     // org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-   #18 = Class              #164          // java/lang/Double\n-   #19 = Double             0.5d\n-   #21 = Methodref          #18.#165      // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #22 = Double             0.7d\n-   #24 = Methodref          #166.#167     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #25 = InterfaceMethodref #168.#169     // org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-   #26 = InterfaceMethodref #170.#171     // java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #27 = Class              #172          // dev/langchain4j/rag/content/aggregator/ContentAggregator\n-   #28 = InterfaceMethodref #27.#173      // dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n-   #29 = Methodref          #174.#175     // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #30 = Methodref          #176.#177     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #31 = InterfaceMethodref #178.#179     // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n-   #32 = Class              #180          // java/lang/Object\n-   #33 = InvokeDynamic      #0:#186       // #0:apply:()Ljava/util/function/Function;\n-   #34 = InterfaceMethodref #187.#188     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #35 = InterfaceMethodref #189.#190     // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-   #36 = InvokeDynamic      #1:#186       // #1:apply:()Ljava/util/function/Function;\n-   #37 = InterfaceMethodref #189.#192     // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n-   #38 = String             #193          // content\n-   #39 = String             #194          // content 4\n-   #40 = Class              #195          // dev/langchain4j/data/segment/TextSegment\n-   #41 = Methodref          #7.#196       // dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-   #42 = Methodref          #77.#197      // dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-   #43 = Double             0.9d\n-   #45 = Class              #198          // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n-   #46 = Methodref          #45.#199      // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n-   #47 = Class              #200          // java/util/HashMap\n-   #48 = Methodref          #47.#144      // java/util/HashMap.\"<init>\":()V\n-   #49 = String             #201          // query 1\n-   #50 = InterfaceMethodref #202.#203     // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #51 = String             #204          // query 2\n-   #52 = InvokeDynamic      #2:#207       // #2:call:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #53 = Methodref          #174.#208     // org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-   #54 = Class              #209          // java/lang/IllegalArgumentException\n-   #55 = Methodref          #56.#210      // org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-   #56 = Class              #211          // org/assertj/core/api/AbstractThrowableAssert\n-   #57 = String             #212          // The \\'queryToContents\\' contains 2 queries, making the re-ranking ambiguous. Because there are multiple queries, it is unclear which one should be used for re-ranking. Please provide a \\'querySelector\\' in the constructor/builder.\n-   #58 = Methodref          #56.#213      // org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-   #59 = InvokeDynamic      #3:#186       // #3:apply:()Ljava/util/function/Function;\n-   #60 = Double             0.4d\n-   #62 = String             #216          // content 3\n-   #63 = String             #217          // content 5\n-   #64 = String             #218          // content 8\n-   #65 = Class              #219          // java/util/LinkedHashMap\n-   #66 = Methodref          #65.#144      // java/util/LinkedHashMap.\"<init>\":()V\n-   #67 = Double             0.6d\n-   #69 = Double             0.2d\n-   #71 = Double             0.3d\n-   #73 = Methodref          #45.#220      // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n-   #74 = InterfaceMethodref #202.#221     // java/util/Map.keySet:()Ljava/util/Set;\n-   #75 = InterfaceMethodref #222.#223     // java/util/Set.iterator:()Ljava/util/Iterator;\n-   #76 = InterfaceMethodref #224.#225     // java/util/Iterator.next:()Ljava/lang/Object;\n-   #77 = Class              #226          // dev/langchain4j/rag/query/Query\n-   #78 = Methodref          #45.#227      // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.builder:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-   #79 = Methodref          #228.#229     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.scoringModel:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-   #80 = Methodref          #228.#230     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.build:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n-   #81 = Class              #231          // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest\n-   #82 = Utf8               <init>\n-   #83 = Utf8               ()V\n-   #84 = Utf8               Code\n-   #85 = Utf8               LineNumberTable\n-   #86 = Utf8               LocalVariableTable\n-   #87 = Utf8               this\n-   #88 = Utf8               Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest;\n-   #89 = Utf8               should_rerank_when_single_query_and_single_contents\n-   #90 = Utf8               (Ljava/util/function/Function;)V\n-   #91 = Utf8               contentAggregatorProvider\n-   #92 = Utf8               Ljava/util/function/Function;\n-   #93 = Utf8               query\n-   #94 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #95 = Utf8               content1\n-   #96 = Utf8               Ldev/langchain4j/rag/content/Content;\n-   #97 = Utf8               content2\n-   #98 = Utf8               queryToContents\n-   #99 = Utf8               Ljava/util/Map;\n-  #100 = Utf8               scoringModel\n-  #101 = Utf8               Ldev/langchain4j/model/scoring/ScoringModel;\n-  #102 = Utf8               aggregator\n-  #103 = Utf8               Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  #104 = Utf8               aggregated\n-  #105 = Utf8               Ljava/util/List;\n-  #106 = Utf8               LocalVariableTypeTable\n-  #107 = Utf8               Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;\n-  #108 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n-  #109 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-  #110 = Utf8               Signature\n-  #111 = Utf8               (Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;)V\n-  #112 = Utf8               RuntimeVisibleAnnotations\n-  #113 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-  #114 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n-  #115 = Utf8               ()Ljava/util/stream/Stream;\n-  #116 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n-  #117 = Utf8               should_fuse_then_rerank_when_single_query_and_multiple_contents\n-  #118 = Utf8               content3\n-  #119 = Utf8               content4\n-  #120 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #121 = Utf8               should_fail_when_multiple_queries_with_default_query_selector\n-  #122 = Utf8               should_fuse_then_rerank_against_first_query_then_filter_by_minScore\n-  #123 = Utf8               querySelector\n-  #124 = Utf8               minScore\n-  #125 = Utf8               D\n-  #126 = Utf8               query1\n-  #127 = Utf8               query2\n-  #128 = Utf8               content5\n-  #129 = Utf8               content6\n-  #130 = Utf8               content7\n-  #131 = Utf8               content8\n-  #132 = Utf8               Ljava/util/function/Function<Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;Ldev/langchain4j/rag/query/Query;>;\n-  #133 = Utf8               lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2\n-  #134 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n-  #135 = Utf8               q\n-  #136 = Utf8               lambda$should_fail_when_multiple_queries_with_default_query_selector$1\n-  #137 = Utf8               (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n-  #138 = Utf8               Exceptions\n-  #139 = Class              #232          // java/lang/Throwable\n-  #140 = Utf8               lambda$should_rerank_when_single_query_and_single_contents$0\n-  #141 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  #142 = Utf8               SourceFile\n-  #143 = Utf8               ReRankingContentAggregatorTest.java\n-  #144 = NameAndType        #82:#83       // \"<init>\":()V\n-  #145 = NameAndType        #233:#234     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #146 = Utf8               content 1\n-  #147 = NameAndType        #233:#235     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #148 = Utf8               content 2\n-  #149 = Utf8               dev/langchain4j/rag/content/Content\n-  #150 = Class              #236          // java/util/Arrays\n-  #151 = NameAndType        #237:#238     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #152 = Class              #239          // java/util/Collections\n-  #153 = NameAndType        #240:#241     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #154 = NameAndType        #242:#243     // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #155 = Utf8               dev/langchain4j/model/scoring/ScoringModel\n-  #156 = Class              #244          // org/mockito/Mockito\n-  #157 = NameAndType        #245:#246     // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-  #158 = Class              #247          // org/mockito/ArgumentMatchers\n-  #159 = NameAndType        #248:#249     // any:()Ljava/lang/Object;\n-  #160 = Utf8               java/util/List\n-  #161 = Utf8               java/lang/String\n-  #162 = NameAndType        #250:#251     // scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #163 = NameAndType        #252:#253     // when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #164 = Utf8               java/lang/Double\n-  #165 = NameAndType        #254:#255     // valueOf:(D)Ljava/lang/Double;\n-  #166 = Class              #256          // dev/langchain4j/model/output/Response\n-  #167 = NameAndType        #233:#257     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #168 = Class              #258          // org/mockito/stubbing/OngoingStubbing\n-  #169 = NameAndType        #259:#253     // thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #170 = Class              #260          // java/util/function/Function\n-  #171 = NameAndType        #261:#262     // apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #172 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n-  #173 = NameAndType        #263:#264     // aggregate:(Ljava/util/Map;)Ljava/util/List;\n-  #174 = Class              #265          // org/assertj/core/api/Assertions\n-  #175 = NameAndType        #266:#267     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #176 = Class              #268          // org/assertj/core/api/ListAssert\n-  #177 = NameAndType        #269:#270     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #178 = Class              #271          // java/util/stream/Stream\n-  #179 = NameAndType        #272:#275     // builder:()Ljava/util/stream/Stream$Builder;\n-  #180 = Utf8               java/lang/Object\n-  #181 = Utf8               BootstrapMethods\n-  #182 = MethodHandle       6:#276        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #183 = MethodType         #262          //  (Ljava/lang/Object;)Ljava/lang/Object;\n-  #184 = MethodHandle       8:#46         // REF_newInvokeSpecial dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n-  #185 = MethodType         #141          //  (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  #186 = NameAndType        #261:#277     // apply:()Ljava/util/function/Function;\n-  #187 = Class              #278          // org/junit/jupiter/params/provider/Arguments\n-  #188 = NameAndType        #279:#280     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #189 = Class              #281          // java/util/stream/Stream$Builder\n-  #190 = NameAndType        #282:#283     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #191 = MethodHandle       6:#284        // REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  #192 = NameAndType        #285:#115     // build:()Ljava/util/stream/Stream;\n-  #193 = Utf8               content\n-  #194 = Utf8               content 4\n-  #195 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #196 = NameAndType        #286:#287     // textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n-  #197 = NameAndType        #288:#289     // text:()Ljava/lang/String;\n-  #198 = Utf8               dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n-  #199 = NameAndType        #82:#290      // \"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n-  #200 = Utf8               java/util/HashMap\n-  #201 = Utf8               query 1\n-  #202 = Class              #291          // java/util/Map\n-  #203 = NameAndType        #292:#293     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #204 = Utf8               query 2\n-  #205 = MethodType         #83           //  ()V\n-  #206 = MethodHandle       6:#294        // REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n-  #207 = NameAndType        #295:#298     // call:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #208 = NameAndType        #299:#300     // assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #209 = Utf8               java/lang/IllegalArgumentException\n-  #210 = NameAndType        #301:#302     // isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #211 = Utf8               org/assertj/core/api/AbstractThrowableAssert\n-  #212 = Utf8               The \\'queryToContents\\' contains 2 queries, making the re-ranking ambiguous. Because there are multiple queries, it is unclear which one should be used for re-ranking. Please provide a \\'querySelector\\' in the constructor/builder.\n-  #213 = NameAndType        #303:#304     // hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #214 = MethodHandle       6:#305        // REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n-  #215 = MethodType         #134          //  (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n-  #216 = Utf8               content 3\n-  #217 = Utf8               content 5\n-  #218 = Utf8               content 8\n-  #219 = Utf8               java/util/LinkedHashMap\n-  #220 = NameAndType        #82:#306      // \"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n-  #221 = NameAndType        #307:#308     // keySet:()Ljava/util/Set;\n-  #222 = Class              #309          // java/util/Set\n-  #223 = NameAndType        #310:#311     // iterator:()Ljava/util/Iterator;\n-  #224 = Class              #312          // java/util/Iterator\n-  #225 = NameAndType        #313:#249     // next:()Ljava/lang/Object;\n-  #226 = Utf8               dev/langchain4j/rag/query/Query\n-  #227 = NameAndType        #272:#315     // builder:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-  #228 = Class              #316          // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder\n-  #229 = NameAndType        #100:#317     // scoringModel:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-  #230 = NameAndType        #285:#318     // build:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n-  #231 = Utf8               dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest\n-  #232 = Utf8               java/lang/Throwable\n-  #233 = Utf8               from\n-  #234 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #235 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #236 = Utf8               java/util/Arrays\n-  #237 = Utf8               asList\n-  #238 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #239 = Utf8               java/util/Collections\n-  #240 = Utf8               singletonList\n-  #241 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #242 = Utf8               singletonMap\n-  #243 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n-  #244 = Utf8               org/mockito/Mockito\n-  #245 = Utf8               mock\n-  #246 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n-  #247 = Utf8               org/mockito/ArgumentMatchers\n-  #248 = Utf8               any\n-  #249 = Utf8               ()Ljava/lang/Object;\n-  #250 = Utf8               scoreAll\n-  #251 = Utf8               (Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #252 = Utf8               when\n-  #253 = Utf8               (Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #254 = Utf8               valueOf\n-  #255 = Utf8               (D)Ljava/lang/Double;\n-  #256 = Utf8               dev/langchain4j/model/output/Response\n-  #257 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #258 = Utf8               org/mockito/stubbing/OngoingStubbing\n-  #259 = Utf8               thenReturn\n-  #260 = Utf8               java/util/function/Function\n-  #261 = Utf8               apply\n-  #262 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #263 = Utf8               aggregate\n-  #264 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n-  #265 = Utf8               org/assertj/core/api/Assertions\n-  #266 = Utf8               assertThat\n-  #267 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #268 = Utf8               org/assertj/core/api/ListAssert\n-  #269 = Utf8               containsExactly\n-  #270 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #271 = Utf8               java/util/stream/Stream\n-  #272 = Utf8               builder\n-  #273 = Utf8               Builder\n-  #274 = Utf8               InnerClasses\n-  #275 = Utf8               ()Ljava/util/stream/Stream$Builder;\n-  #276 = Methodref          #319.#320     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #277 = Utf8               ()Ljava/util/function/Function;\n-  #278 = Utf8               org/junit/jupiter/params/provider/Arguments\n-  #279 = Utf8               of\n-  #280 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #281 = Utf8               java/util/stream/Stream$Builder\n-  #282 = Utf8               add\n-  #283 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #284 = Methodref          #81.#321      // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  #285 = Utf8               build\n-  #286 = Utf8               textSegment\n-  #287 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n-  #288 = Utf8               text\n-  #289 = Utf8               ()Ljava/lang/String;\n-  #290 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;)V\n-  #291 = Utf8               java/util/Map\n-  #292 = Utf8               put\n-  #293 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #294 = Methodref          #81.#322      // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n-  #295 = Utf8               call\n-  #296 = Class              #324          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #297 = Utf8               ThrowingCallable\n-  #298 = Utf8               (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #299 = Utf8               assertThatThrownBy\n-  #300 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #301 = Utf8               isExactlyInstanceOf\n-  #302 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #303 = Utf8               hasMessage\n-  #304 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-  #305 = Methodref          #81.#325      // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n-  #306 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n-  #307 = Utf8               keySet\n-  #308 = Utf8               ()Ljava/util/Set;\n-  #309 = Utf8               java/util/Set\n-  #310 = Utf8               iterator\n-  #311 = Utf8               ()Ljava/util/Iterator;\n-  #312 = Utf8               java/util/Iterator\n-  #313 = Utf8               next\n-  #314 = Utf8               ReRankingContentAggregatorBuilder\n-  #315 = Utf8               ()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-  #316 = Utf8               dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder\n-  #317 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-  #318 = Utf8               ()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n-  #319 = Class              #326          // java/lang/invoke/LambdaMetafactory\n-  #320 = NameAndType        #327:#330     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #321 = NameAndType        #140:#141     // lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  #322 = NameAndType        #136:#137     // lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n-  #323 = Class              #331          // org/assertj/core/api/ThrowableAssert\n-  #324 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #325 = NameAndType        #133:#134     // lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n-  #326 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #327 = Utf8               metafactory\n-  #328 = Class              #333          // java/lang/invoke/MethodHandles$Lookup\n-  #329 = Utf8               Lookup\n-  #330 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #331 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #332 = Class              #334          // java/lang/invoke/MethodHandles\n-  #333 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #334 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // query\n+    #8 = Utf8               query\n+    #9 = Methodref          #10.#11       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #10 = Class              #12           // dev/langchain4j/rag/query/Query\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #12 = Utf8               dev/langchain4j/rag/query/Query\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #15 = String             #16           // content 1\n+   #16 = Utf8               content 1\n+   #17 = Methodref          #18.#19       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #18 = Class              #20           // dev/langchain4j/rag/content/Content\n+   #19 = NameAndType        #13:#21       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #20 = Utf8               dev/langchain4j/rag/content/Content\n+   #21 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #22 = String             #23           // content 2\n+   #23 = Utf8               content 2\n+   #24 = Methodref          #25.#26       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #25 = Class              #27           // java/util/Arrays\n+   #26 = NameAndType        #28:#29       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #27 = Utf8               java/util/Arrays\n+   #28 = Utf8               asList\n+   #29 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #30 = Methodref          #31.#32       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #31 = Class              #33           // java/util/Collections\n+   #32 = NameAndType        #34:#35       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #33 = Utf8               java/util/Collections\n+   #34 = Utf8               singletonList\n+   #35 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #36 = Methodref          #31.#37       // java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #37 = NameAndType        #38:#39       // singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #38 = Utf8               singletonMap\n+   #39 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+   #40 = Class              #41           // dev/langchain4j/model/scoring/ScoringModel\n+   #41 = Utf8               dev/langchain4j/model/scoring/ScoringModel\n+   #42 = Methodref          #43.#44       // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+   #43 = Class              #45           // org/mockito/Mockito\n+   #44 = NameAndType        #46:#47       // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+   #45 = Utf8               org/mockito/Mockito\n+   #46 = Utf8               mock\n+   #47 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n+   #48 = Methodref          #49.#50       // org/mockito/ArgumentMatchers.any:()Ljava/lang/Object;\n+   #49 = Class              #51           // org/mockito/ArgumentMatchers\n+   #50 = NameAndType        #52:#53       // any:()Ljava/lang/Object;\n+   #51 = Utf8               org/mockito/ArgumentMatchers\n+   #52 = Utf8               any\n+   #53 = Utf8               ()Ljava/lang/Object;\n+   #54 = Class              #55           // java/util/List\n+   #55 = Utf8               java/util/List\n+   #56 = Class              #57           // java/lang/String\n+   #57 = Utf8               java/lang/String\n+   #58 = InterfaceMethodref #40.#59       // dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #59 = NameAndType        #60:#61       // scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #60 = Utf8               scoreAll\n+   #61 = Utf8               (Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #62 = Methodref          #43.#63       // org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #63 = NameAndType        #64:#65       // when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #64 = Utf8               when\n+   #65 = Utf8               (Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #66 = Class              #67           // java/lang/Double\n+   #67 = Utf8               java/lang/Double\n+   #68 = Double             0.5d\n+   #70 = Methodref          #66.#71       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #71 = NameAndType        #72:#73       // valueOf:(D)Ljava/lang/Double;\n+   #72 = Utf8               valueOf\n+   #73 = Utf8               (D)Ljava/lang/Double;\n+   #74 = Double             0.7d\n+   #76 = Methodref          #77.#78       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #77 = Class              #79           // dev/langchain4j/model/output/Response\n+   #78 = NameAndType        #13:#80       // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #79 = Utf8               dev/langchain4j/model/output/Response\n+   #80 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #81 = InterfaceMethodref #82.#83       // org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #82 = Class              #84           // org/mockito/stubbing/OngoingStubbing\n+   #83 = NameAndType        #85:#65       // thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #84 = Utf8               org/mockito/stubbing/OngoingStubbing\n+   #85 = Utf8               thenReturn\n+   #86 = InterfaceMethodref #87.#88       // java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+   #87 = Class              #89           // java/util/function/Function\n+   #88 = NameAndType        #90:#91       // apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+   #89 = Utf8               java/util/function/Function\n+   #90 = Utf8               apply\n+   #91 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+   #92 = Class              #93           // dev/langchain4j/rag/content/aggregator/ContentAggregator\n+   #93 = Utf8               dev/langchain4j/rag/content/aggregator/ContentAggregator\n+   #94 = InterfaceMethodref #92.#95       // dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+   #95 = NameAndType        #96:#97       // aggregate:(Ljava/util/Map;)Ljava/util/List;\n+   #96 = Utf8               aggregate\n+   #97 = Utf8               (Ljava/util/Map;)Ljava/util/List;\n+   #98 = Methodref          #99.#100      // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #99 = Class              #101          // org/assertj/core/api/Assertions\n+  #100 = NameAndType        #102:#103     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #101 = Utf8               org/assertj/core/api/Assertions\n+  #102 = Utf8               assertThat\n+  #103 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #104 = Methodref          #105.#106     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #105 = Class              #107          // org/assertj/core/api/ListAssert\n+  #106 = NameAndType        #108:#109     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #107 = Utf8               org/assertj/core/api/ListAssert\n+  #108 = Utf8               containsExactly\n+  #109 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #110 = InterfaceMethodref #111.#112     // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+  #111 = Class              #113          // java/util/stream/Stream\n+  #112 = NameAndType        #114:#115     // builder:()Ljava/util/stream/Stream$Builder;\n+  #113 = Utf8               java/util/stream/Stream\n+  #114 = Utf8               builder\n+  #115 = Utf8               ()Ljava/util/stream/Stream$Builder;\n+  #116 = InvokeDynamic      #0:#117       // #0:apply:()Ljava/util/function/Function;\n+  #117 = NameAndType        #90:#118      // apply:()Ljava/util/function/Function;\n+  #118 = Utf8               ()Ljava/util/function/Function;\n+  #119 = InterfaceMethodref #120.#121     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #120 = Class              #122          // org/junit/jupiter/params/provider/Arguments\n+  #121 = NameAndType        #123:#124     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #122 = Utf8               org/junit/jupiter/params/provider/Arguments\n+  #123 = Utf8               of\n+  #124 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #125 = InterfaceMethodref #126.#127     // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #126 = Class              #128          // java/util/stream/Stream$Builder\n+  #127 = NameAndType        #129:#130     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #128 = Utf8               java/util/stream/Stream$Builder\n+  #129 = Utf8               add\n+  #130 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #131 = InvokeDynamic      #1:#117       // #1:apply:()Ljava/util/function/Function;\n+  #132 = InterfaceMethodref #126.#133     // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+  #133 = NameAndType        #134:#135     // build:()Ljava/util/stream/Stream;\n+  #134 = Utf8               build\n+  #135 = Utf8               ()Ljava/util/stream/Stream;\n+  #136 = String             #137          // content\n+  #137 = Utf8               content\n+  #138 = String             #139          // content 4\n+  #139 = Utf8               content 4\n+  #140 = Class              #141          // dev/langchain4j/data/segment/TextSegment\n+  #141 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #142 = Methodref          #18.#143      // dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+  #143 = NameAndType        #144:#145     // textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+  #144 = Utf8               textSegment\n+  #145 = Utf8               ()Ldev/langchain4j/data/segment/TextSegment;\n+  #146 = Methodref          #10.#147      // dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+  #147 = NameAndType        #148:#149     // text:()Ljava/lang/String;\n+  #148 = Utf8               text\n+  #149 = Utf8               ()Ljava/lang/String;\n+  #150 = Double             0.9d\n+  #152 = Class              #153          // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n+  #153 = Utf8               dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n+  #154 = Methodref          #152.#155     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n+  #155 = NameAndType        #5:#156       // \"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n+  #156 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;)V\n+  #157 = Class              #158          // java/util/HashMap\n+  #158 = Utf8               java/util/HashMap\n+  #159 = Methodref          #157.#3       // java/util/HashMap.\"<init>\":()V\n+  #160 = String             #161          // query 1\n+  #161 = Utf8               query 1\n+  #162 = InterfaceMethodref #163.#164     // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+  #163 = Class              #165          // java/util/Map\n+  #164 = NameAndType        #166:#167     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+  #165 = Utf8               java/util/Map\n+  #166 = Utf8               put\n+  #167 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+  #168 = String             #169          // query 2\n+  #169 = Utf8               query 2\n+  #170 = InvokeDynamic      #2:#171       // #2:call:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #171 = NameAndType        #172:#173     // call:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #172 = Utf8               call\n+  #173 = Utf8               (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+  #174 = Methodref          #99.#175      // org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #175 = NameAndType        #176:#177     // assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #176 = Utf8               assertThatThrownBy\n+  #177 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #178 = Class              #179          // java/lang/IllegalArgumentException\n+  #179 = Utf8               java/lang/IllegalArgumentException\n+  #180 = Methodref          #181.#182     // org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #181 = Class              #183          // org/assertj/core/api/AbstractThrowableAssert\n+  #182 = NameAndType        #184:#185     // isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #183 = Utf8               org/assertj/core/api/AbstractThrowableAssert\n+  #184 = Utf8               isExactlyInstanceOf\n+  #185 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+  #186 = String             #187          // The \\'queryToContents\\' contains 2 queries, making the re-ranking ambiguous. Because there are multiple queries, it is unclear which one should be used for re-ranking. Please provide a \\'querySelector\\' in the constructor/builder.\n+  #187 = Utf8               The \\'queryToContents\\' contains 2 queries, making the re-ranking ambiguous. Because there are multiple queries, it is unclear which one should be used for re-ranking. Please provide a \\'querySelector\\' in the constructor/builder.\n+  #188 = Methodref          #181.#189     // org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #189 = NameAndType        #190:#191     // hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #190 = Utf8               hasMessage\n+  #191 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+  #192 = InvokeDynamic      #3:#117       // #3:apply:()Ljava/util/function/Function;\n+  #193 = Double             0.4d\n+  #195 = String             #196          // content 3\n+  #196 = Utf8               content 3\n+  #197 = String             #198          // content 5\n+  #198 = Utf8               content 5\n+  #199 = String             #200          // content 8\n+  #200 = Utf8               content 8\n+  #201 = Class              #202          // java/util/LinkedHashMap\n+  #202 = Utf8               java/util/LinkedHashMap\n+  #203 = Methodref          #201.#3       // java/util/LinkedHashMap.\"<init>\":()V\n+  #204 = Double             0.6d\n+  #206 = Double             0.2d\n+  #208 = Double             0.3d\n+  #210 = Methodref          #152.#211     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n+  #211 = NameAndType        #5:#212       // \"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n+  #212 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n+  #213 = InterfaceMethodref #163.#214     // java/util/Map.keySet:()Ljava/util/Set;\n+  #214 = NameAndType        #215:#216     // keySet:()Ljava/util/Set;\n+  #215 = Utf8               keySet\n+  #216 = Utf8               ()Ljava/util/Set;\n+  #217 = InterfaceMethodref #218.#219     // java/util/Set.iterator:()Ljava/util/Iterator;\n+  #218 = Class              #220          // java/util/Set\n+  #219 = NameAndType        #221:#222     // iterator:()Ljava/util/Iterator;\n+  #220 = Utf8               java/util/Set\n+  #221 = Utf8               iterator\n+  #222 = Utf8               ()Ljava/util/Iterator;\n+  #223 = InterfaceMethodref #224.#225     // java/util/Iterator.next:()Ljava/lang/Object;\n+  #224 = Class              #226          // java/util/Iterator\n+  #225 = NameAndType        #227:#53      // next:()Ljava/lang/Object;\n+  #226 = Utf8               java/util/Iterator\n+  #227 = Utf8               next\n+  #228 = Methodref          #152.#229     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.builder:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+  #229 = NameAndType        #114:#230     // builder:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+  #230 = Utf8               ()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+  #231 = Methodref          #232.#233     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.scoringModel:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+  #232 = Class              #234          // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder\n+  #233 = NameAndType        #235:#236     // scoringModel:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+  #234 = Utf8               dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder\n+  #235 = Utf8               scoringModel\n+  #236 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+  #237 = Methodref          #232.#238     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.build:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n+  #238 = NameAndType        #134:#239     // build:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n+  #239 = Utf8               ()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n+  #240 = Class              #241          // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest\n+  #241 = Utf8               dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest\n+  #242 = Utf8               Code\n+  #243 = Utf8               LineNumberTable\n+  #244 = Utf8               LocalVariableTable\n+  #245 = Utf8               this\n+  #246 = Utf8               Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest;\n+  #247 = Utf8               should_rerank_when_single_query_and_single_contents\n+  #248 = Utf8               (Ljava/util/function/Function;)V\n+  #249 = Utf8               contentAggregatorProvider\n+  #250 = Utf8               Ljava/util/function/Function;\n+  #251 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #252 = Utf8               content1\n+  #253 = Utf8               Ldev/langchain4j/rag/content/Content;\n+  #254 = Utf8               content2\n+  #255 = Utf8               queryToContents\n+  #256 = Utf8               Ljava/util/Map;\n+  #257 = Utf8               Ldev/langchain4j/model/scoring/ScoringModel;\n+  #258 = Utf8               aggregator\n+  #259 = Utf8               Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #260 = Utf8               aggregated\n+  #261 = Utf8               Ljava/util/List;\n+  #262 = Utf8               LocalVariableTypeTable\n+  #263 = Utf8               Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;\n+  #264 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n+  #265 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #266 = Utf8               Signature\n+  #267 = Utf8               (Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;)V\n+  #268 = Utf8               RuntimeVisibleAnnotations\n+  #269 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #270 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n+  #271 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+  #272 = Utf8               should_fuse_then_rerank_when_single_query_and_multiple_contents\n+  #273 = Utf8               content3\n+  #274 = Utf8               content4\n+  #275 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #276 = Utf8               should_fail_when_multiple_queries_with_default_query_selector\n+  #277 = Utf8               should_fuse_then_rerank_against_first_query_then_filter_by_minScore\n+  #278 = Utf8               querySelector\n+  #279 = Utf8               minScore\n+  #280 = Utf8               D\n+  #281 = Utf8               query1\n+  #282 = Utf8               query2\n+  #283 = Utf8               content5\n+  #284 = Utf8               content6\n+  #285 = Utf8               content7\n+  #286 = Utf8               content8\n+  #287 = Utf8               Ljava/util/function/Function<Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;Ldev/langchain4j/rag/query/Query;>;\n+  #288 = Utf8               lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2\n+  #289 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+  #290 = Utf8               q\n+  #291 = Utf8               lambda$should_fail_when_multiple_queries_with_default_query_selector$1\n+  #292 = Utf8               (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n+  #293 = Utf8               Exceptions\n+  #294 = Class              #295          // java/lang/Throwable\n+  #295 = Utf8               java/lang/Throwable\n+  #296 = Utf8               lambda$should_rerank_when_single_query_and_single_contents$0\n+  #297 = Utf8               (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #298 = Utf8               SourceFile\n+  #299 = Utf8               ReRankingContentAggregatorTest.java\n+  #300 = Utf8               BootstrapMethods\n+  #301 = MethodHandle       6:#302        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #302 = Methodref          #303.#304     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #303 = Class              #305          // java/lang/invoke/LambdaMetafactory\n+  #304 = NameAndType        #306:#307     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #305 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #306 = Utf8               metafactory\n+  #307 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #308 = MethodType         #91           //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #309 = MethodHandle       8:#154        // REF_newInvokeSpecial dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n+  #310 = MethodType         #297          //  (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #311 = MethodHandle       6:#312        // REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #312 = Methodref          #240.#313     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #313 = NameAndType        #296:#297     // lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  #314 = MethodType         #6            //  ()V\n+  #315 = MethodHandle       6:#316        // REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n+  #316 = Methodref          #240.#317     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n+  #317 = NameAndType        #291:#292     // lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n+  #318 = MethodHandle       6:#319        // REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+  #319 = Methodref          #240.#320     // dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+  #320 = NameAndType        #288:#289     // lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+  #321 = MethodType         #289          //  (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+  #322 = Utf8               InnerClasses\n+  #323 = Utf8               Builder\n+  #324 = Class              #325          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #325 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #326 = Class              #327          // org/assertj/core/api/ThrowableAssert\n+  #327 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #328 = Utf8               ThrowingCallable\n+  #329 = Utf8               ReRankingContentAggregatorBuilder\n+  #330 = Class              #331          // java/lang/invoke/MethodHandles$Lookup\n+  #331 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #332 = Class              #333          // java/lang/invoke/MethodHandles\n+  #333 = Utf8               java/lang/invoke/MethodHandles\n+  #334 = Utf8               Lookup\n {\n   dev.langchain4j.rag.content.aggregator.ReRankingContentAggregatorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -351,87 +351,87 @@\n             0       5     0  this   Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest;\n \n   void should_rerank_when_single_query_and_single_contents(java.util.function.Function<dev.langchain4j.model.scoring.ScoringModel, dev.langchain4j.rag.content.aggregator.ContentAggregator>);\n     descriptor: (Ljava/util/function/Function;)V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=9, args_size=2\n-         0: ldc           #2                  // String query\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #7                  // String query\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_2\n-         6: ldc           #4                  // String content 1\n-         8: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #15                 // String content 1\n+         8: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_3\n-        12: ldc           #6                  // String content 2\n-        14: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #22                 // String content 2\n+        14: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore        4\n         19: aload_2\n         20: iconst_2\n-        21: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+        21: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n         24: dup\n         25: iconst_0\n         26: aload_3\n         27: aastore\n         28: dup\n         29: iconst_1\n         30: aload         4\n         32: aastore\n-        33: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        36: invokestatic  #9                  // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        39: invokestatic  #10                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        33: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        36: invokestatic  #30                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        39: invokestatic  #36                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n         42: astore        5\n-        44: ldc           #11                 // class dev/langchain4j/model/scoring/ScoringModel\n-        46: invokestatic  #12                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        49: checkcast     #11                 // class dev/langchain4j/model/scoring/ScoringModel\n+        44: ldc           #40                 // class dev/langchain4j/model/scoring/ScoringModel\n+        46: invokestatic  #42                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        49: checkcast     #40                 // class dev/langchain4j/model/scoring/ScoringModel\n         52: astore        6\n         54: aload         6\n-        56: invokestatic  #13                 // Method org/mockito/ArgumentMatchers.any:()Ljava/lang/Object;\n-        59: checkcast     #14                 // class java/util/List\n-        62: invokestatic  #13                 // Method org/mockito/ArgumentMatchers.any:()Ljava/lang/Object;\n-        65: checkcast     #15                 // class java/lang/String\n-        68: invokeinterface #16,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-        73: invokestatic  #17                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        56: invokestatic  #48                 // Method org/mockito/ArgumentMatchers.any:()Ljava/lang/Object;\n+        59: checkcast     #54                 // class java/util/List\n+        62: invokestatic  #48                 // Method org/mockito/ArgumentMatchers.any:()Ljava/lang/Object;\n+        65: checkcast     #56                 // class java/lang/String\n+        68: invokeinterface #58,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+        73: invokestatic  #62                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         76: iconst_2\n-        77: anewarray     #18                 // class java/lang/Double\n+        77: anewarray     #66                 // class java/lang/Double\n         80: dup\n         81: iconst_0\n-        82: ldc2_w        #19                 // double 0.5d\n-        85: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        82: ldc2_w        #68                 // double 0.5d\n+        85: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n         88: aastore\n         89: dup\n         90: iconst_1\n-        91: ldc2_w        #22                 // double 0.7d\n-        94: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        91: ldc2_w        #74                 // double 0.7d\n+        94: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n         97: aastore\n-        98: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       101: invokestatic  #24                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       104: invokeinterface #25,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        98: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       101: invokestatic  #76                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       104: invokeinterface #81,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        109: pop\n        110: aload_1\n        111: aload         6\n-       113: invokeinterface #26,  2           // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-       118: checkcast     #27                 // class dev/langchain4j/rag/content/aggregator/ContentAggregator\n+       113: invokeinterface #86,  2           // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+       118: checkcast     #92                 // class dev/langchain4j/rag/content/aggregator/ContentAggregator\n        121: astore        7\n        123: aload         7\n        125: aload         5\n-       127: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+       127: invokeinterface #94,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n        132: astore        8\n        134: aload         8\n-       136: invokestatic  #29                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       136: invokestatic  #98                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        139: iconst_2\n-       140: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       140: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        143: dup\n        144: iconst_0\n        145: aload         4\n        147: aastore\n        148: dup\n        149: iconst_1\n        150: aload_3\n        151: aastore\n-       152: invokevirtual #30                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       152: invokevirtual #104                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        155: pop\n        156: return\n       LineNumberTable:\n         line 34: 0\n         line 36: 6\n         line 37: 12\n         line 39: 19\n@@ -455,181 +455,181 @@\n           123      34     7 aggregator   Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n           134      23     8 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0     157     1 contentAggregatorProvider   Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;\n            44     113     5 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n           134      23     8 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-    Signature: #111                         // (Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;)V\n+    Signature: #267                         // (Ljava/util/function/Function<Ldev/langchain4j/model/scoring/ScoringModel;Ldev/langchain4j/rag/content/aggregator/ContentAggregator;>;)V\n     RuntimeVisibleAnnotations:\n-      0: #113()\n+      0: #269()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #114()\n+      1: #270()\n         org.junit.jupiter.params.provider.MethodSource\n \n   static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> should_rerank_when_single_query_and_single_contents();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: invokestatic  #31                 // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+         0: invokestatic  #110                // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n          3: iconst_1\n-         4: anewarray     #32                 // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n-         9: invokedynamic #33,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+         9: invokedynamic #116,  0            // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n         14: aastore\n-        15: invokestatic  #34                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        18: invokeinterface #35,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        15: invokestatic  #119                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        18: invokeinterface #125,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         23: iconst_1\n-        24: anewarray     #32                 // class java/lang/Object\n+        24: anewarray     #2                  // class java/lang/Object\n         27: dup\n         28: iconst_0\n-        29: invokedynamic #36,  0             // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n+        29: invokedynamic #131,  0            // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n         34: aastore\n-        35: invokestatic  #34                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        38: invokeinterface #35,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-        43: invokeinterface #37,  1           // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+        35: invokestatic  #119                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        38: invokeinterface #125,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        43: invokeinterface #132,  1          // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n         48: areturn\n       LineNumberTable:\n         line 57: 0\n         line 58: 15\n         line 61: 35\n         line 67: 43\n         line 57: 48\n-    Signature: #116                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #271                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n \n   void should_fuse_then_rerank_when_single_query_and_multiple_contents();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=8, locals=10, args_size=1\n-         0: ldc           #2                  // String query\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #7                  // String query\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: ldc           #4                  // String content 1\n-         8: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         6: ldc           #15                 // String content 1\n+         8: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         11: astore_2\n-        12: ldc           #38                 // String content\n-        14: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #136                // String content\n+        14: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: astore_3\n-        18: ldc           #38                 // String content\n-        20: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        18: ldc           #136                // String content\n+        20: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         23: astore        4\n-        25: ldc           #39                 // String content 4\n-        27: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        25: ldc           #138                // String content 4\n+        27: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         30: astore        5\n         32: aload_1\n         33: iconst_2\n-        34: anewarray     #14                 // class java/util/List\n+        34: anewarray     #54                 // class java/util/List\n         37: dup\n         38: iconst_0\n         39: iconst_2\n-        40: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+        40: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n         43: dup\n         44: iconst_0\n         45: aload_2\n         46: aastore\n         47: dup\n         48: iconst_1\n         49: aload_3\n         50: aastore\n-        51: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        51: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         54: aastore\n         55: dup\n         56: iconst_1\n         57: iconst_2\n-        58: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+        58: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n         61: dup\n         62: iconst_0\n         63: aload         4\n         65: aastore\n         66: dup\n         67: iconst_1\n         68: aload         5\n         70: aastore\n-        71: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        71: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         74: aastore\n-        75: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        78: invokestatic  #10                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n+        75: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        78: invokestatic  #36                 // Method java/util/Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;\n         81: astore        6\n-        83: ldc           #11                 // class dev/langchain4j/model/scoring/ScoringModel\n-        85: invokestatic  #12                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        88: checkcast     #11                 // class dev/langchain4j/model/scoring/ScoringModel\n+        83: ldc           #40                 // class dev/langchain4j/model/scoring/ScoringModel\n+        85: invokestatic  #42                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        88: checkcast     #40                 // class dev/langchain4j/model/scoring/ScoringModel\n         91: astore        7\n         93: aload         7\n         95: iconst_3\n-        96: anewarray     #40                 // class dev/langchain4j/data/segment/TextSegment\n+        96: anewarray     #140                // class dev/langchain4j/data/segment/TextSegment\n         99: dup\n        100: iconst_0\n        101: aload_3\n-       102: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       102: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        105: aastore\n        106: dup\n        107: iconst_1\n        108: aload_2\n-       109: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       109: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        112: aastore\n        113: dup\n        114: iconst_2\n        115: aload         5\n-       117: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       117: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        120: aastore\n-       121: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       121: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        124: aload_1\n-       125: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       128: invokeinterface #16,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       133: invokestatic  #17                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       125: invokevirtual #146                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       128: invokeinterface #58,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       133: invokestatic  #62                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        136: iconst_3\n-       137: anewarray     #18                 // class java/lang/Double\n+       137: anewarray     #66                 // class java/lang/Double\n        140: dup\n        141: iconst_0\n-       142: ldc2_w        #19                 // double 0.5d\n-       145: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       142: ldc2_w        #68                 // double 0.5d\n+       145: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        148: aastore\n        149: dup\n        150: iconst_1\n-       151: ldc2_w        #22                 // double 0.7d\n-       154: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       151: ldc2_w        #74                 // double 0.7d\n+       154: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        157: aastore\n        158: dup\n        159: iconst_2\n-       160: ldc2_w        #43                 // double 0.9d\n-       163: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       160: ldc2_w        #150                // double 0.9d\n+       163: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        166: aastore\n-       167: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       170: invokestatic  #24                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       173: invokeinterface #25,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       167: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       170: invokestatic  #76                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       173: invokeinterface #81,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        178: pop\n-       179: new           #45                 // class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n+       179: new           #152                // class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n        182: dup\n        183: aload         7\n-       185: invokespecial #46                 // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n+       185: invokespecial #154                // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n        188: astore        8\n        190: aload         8\n        192: aload         6\n-       194: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+       194: invokeinterface #94,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n        199: astore        9\n        201: aload         9\n-       203: invokestatic  #29                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       203: invokestatic  #98                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        206: iconst_3\n-       207: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       207: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        210: dup\n        211: iconst_0\n        212: aload         5\n        214: aastore\n        215: dup\n        216: iconst_1\n        217: aload_2\n        218: aastore\n        219: dup\n        220: iconst_2\n        221: aload_3\n        222: aastore\n-       223: invokevirtual #30                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       223: invokevirtual #104                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        226: pop\n        227: return\n       LineNumberTable:\n         line 74: 0\n         line 76: 6\n         line 77: 12\n         line 79: 18\n@@ -669,56 +669,56 @@\n           190      38     8 aggregator   Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n           201      27     9 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            83     145     6 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n           201      27     9 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #120()\n+      0: #275()\n         org.junit.jupiter.api.Test\n \n   void should_fail_when_multiple_queries_with_default_query_selector();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=4, args_size=1\n-         0: new           #47                 // class java/util/HashMap\n+         0: new           #157                // class java/util/HashMap\n          3: dup\n-         4: invokespecial #48                 // Method java/util/HashMap.\"<init>\":()V\n+         4: invokespecial #159                // Method java/util/HashMap.\"<init>\":()V\n          7: astore_1\n          8: aload_1\n-         9: ldc           #49                 // String query 1\n-        11: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         9: ldc           #160                // String query 1\n+        11: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         14: aconst_null\n-        15: invokeinterface #50,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        15: invokeinterface #162,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         20: pop\n         21: aload_1\n-        22: ldc           #51                 // String query 2\n-        24: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        22: ldc           #168                // String query 2\n+        24: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         27: aconst_null\n-        28: invokeinterface #50,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        28: invokeinterface #162,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         33: pop\n-        34: ldc           #11                 // class dev/langchain4j/model/scoring/ScoringModel\n-        36: invokestatic  #12                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        39: checkcast     #11                 // class dev/langchain4j/model/scoring/ScoringModel\n+        34: ldc           #40                 // class dev/langchain4j/model/scoring/ScoringModel\n+        36: invokestatic  #42                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        39: checkcast     #40                 // class dev/langchain4j/model/scoring/ScoringModel\n         42: astore_2\n-        43: new           #45                 // class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n+        43: new           #152                // class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n         46: dup\n         47: aload_2\n-        48: invokespecial #46                 // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n+        48: invokespecial #154                // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n         51: astore_3\n         52: aload_3\n         53: aload_1\n-        54: invokedynamic #52,  0             // InvokeDynamic #2:call:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        59: invokestatic  #53                 // Method org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n-        62: ldc           #54                 // class java/lang/IllegalArgumentException\n-        64: invokevirtual #55                 // Method org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-        67: checkcast     #56                 // class org/assertj/core/api/AbstractThrowableAssert\n-        70: ldc           #57                 // String The \\'queryToContents\\' contains 2 queries, making the re-ranking ambiguous. Because there are multiple queries, it is unclear which one should be used for re-ranking. Please provide a \\'querySelector\\' in the constructor/builder.\n-        72: invokevirtual #58                 // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        54: invokedynamic #170,  0            // InvokeDynamic #2:call:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        59: invokestatic  #174                // Method org/assertj/core/api/Assertions.assertThatThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/AbstractThrowableAssert;\n+        62: ldc           #178                // class java/lang/IllegalArgumentException\n+        64: invokevirtual #180                // Method org/assertj/core/api/AbstractThrowableAssert.isExactlyInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        67: checkcast     #181                // class org/assertj/core/api/AbstractThrowableAssert\n+        70: ldc           #186                // String The \\'queryToContents\\' contains 2 queries, making the re-ranking ambiguous. Because there are multiple queries, it is unclear which one should be used for re-ranking. Please provide a \\'querySelector\\' in the constructor/builder.\n+        72: invokevirtual #188                // Method org/assertj/core/api/AbstractThrowableAssert.hasMessage:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractThrowableAssert;\n         75: pop\n         76: return\n       LineNumberTable:\n         line 116: 0\n         line 117: 8\n         line 118: 21\n         line 120: 34\n@@ -733,227 +733,227 @@\n             8      69     1 queryToContents   Ljava/util/Map;\n            43      34     2 scoringModel   Ldev/langchain4j/model/scoring/ScoringModel;\n            52      25     3 aggregator   Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      69     1 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n     RuntimeVisibleAnnotations:\n-      0: #120()\n+      0: #275()\n         org.junit.jupiter.api.Test\n \n   void should_fuse_then_rerank_against_first_query_then_filter_by_minScore();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=9, locals=18, args_size=1\n-         0: invokedynamic #59,  0             // InvokeDynamic #3:apply:()Ljava/util/function/Function;\n+         0: invokedynamic #192,  0            // InvokeDynamic #3:apply:()Ljava/util/function/Function;\n          5: astore_1\n-         6: ldc2_w        #60                 // double 0.4d\n+         6: ldc2_w        #193                // double 0.4d\n          9: dstore_2\n-        10: ldc           #49                 // String query 1\n-        12: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        10: ldc           #160                // String query 1\n+        12: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         15: astore        4\n-        17: ldc           #38                 // String content\n-        19: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        17: ldc           #136                // String content\n+        19: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         22: astore        5\n-        24: ldc           #6                  // String content 2\n-        26: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        24: ldc           #22                 // String content 2\n+        26: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         29: astore        6\n-        31: ldc           #62                 // String content 3\n-        33: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        31: ldc           #195                // String content 3\n+        33: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         36: astore        7\n-        38: ldc           #38                 // String content\n-        40: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        38: ldc           #136                // String content\n+        40: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         43: astore        8\n-        45: ldc           #51                 // String query 2\n-        47: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        45: ldc           #168                // String query 2\n+        47: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         50: astore        9\n-        52: ldc           #63                 // String content 5\n-        54: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        52: ldc           #197                // String content 5\n+        54: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         57: astore        10\n-        59: ldc           #38                 // String content\n-        61: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        59: ldc           #136                // String content\n+        61: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         64: astore        11\n-        66: ldc           #38                 // String content\n-        68: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        66: ldc           #136                // String content\n+        68: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         71: astore        12\n-        73: ldc           #64                 // String content 8\n-        75: invokestatic  #5                  // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        73: ldc           #199                // String content 8\n+        75: invokestatic  #17                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         78: astore        13\n-        80: new           #65                 // class java/util/LinkedHashMap\n+        80: new           #201                // class java/util/LinkedHashMap\n         83: dup\n-        84: invokespecial #66                 // Method java/util/LinkedHashMap.\"<init>\":()V\n+        84: invokespecial #203                // Method java/util/LinkedHashMap.\"<init>\":()V\n         87: astore        14\n         89: aload         14\n         91: aload         4\n         93: iconst_2\n-        94: anewarray     #14                 // class java/util/List\n+        94: anewarray     #54                 // class java/util/List\n         97: dup\n         98: iconst_0\n         99: iconst_2\n-       100: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       100: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        103: dup\n        104: iconst_0\n        105: aload         5\n        107: aastore\n        108: dup\n        109: iconst_1\n        110: aload         6\n        112: aastore\n-       113: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       113: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        116: aastore\n        117: dup\n        118: iconst_1\n        119: iconst_2\n-       120: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       120: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        123: dup\n        124: iconst_0\n        125: aload         7\n        127: aastore\n        128: dup\n        129: iconst_1\n        130: aload         8\n        132: aastore\n-       133: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       133: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        136: aastore\n-       137: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       140: invokeinterface #50,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       137: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       140: invokeinterface #162,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        145: pop\n        146: aload         14\n        148: aload         9\n        150: iconst_2\n-       151: anewarray     #14                 // class java/util/List\n+       151: anewarray     #54                 // class java/util/List\n        154: dup\n        155: iconst_0\n        156: iconst_2\n-       157: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       157: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        160: dup\n        161: iconst_0\n        162: aload         10\n        164: aastore\n        165: dup\n        166: iconst_1\n        167: aload         11\n        169: aastore\n-       170: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       170: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        173: aastore\n        174: dup\n        175: iconst_1\n        176: iconst_2\n-       177: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       177: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        180: dup\n        181: iconst_0\n        182: aload         12\n        184: aastore\n        185: dup\n        186: iconst_1\n        187: aload         13\n        189: aastore\n-       190: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       190: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        193: aastore\n-       194: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       197: invokeinterface #50,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       194: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       197: invokeinterface #162,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n        202: pop\n-       203: ldc           #11                 // class dev/langchain4j/model/scoring/ScoringModel\n-       205: invokestatic  #12                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       208: checkcast     #11                 // class dev/langchain4j/model/scoring/ScoringModel\n+       203: ldc           #40                 // class dev/langchain4j/model/scoring/ScoringModel\n+       205: invokestatic  #42                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       208: checkcast     #40                 // class dev/langchain4j/model/scoring/ScoringModel\n        211: astore        15\n        213: aload         15\n        215: iconst_5\n-       216: anewarray     #40                 // class dev/langchain4j/data/segment/TextSegment\n+       216: anewarray     #140                // class dev/langchain4j/data/segment/TextSegment\n        219: dup\n        220: iconst_0\n        221: aload         5\n-       223: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       223: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        226: aastore\n        227: dup\n        228: iconst_1\n        229: aload         7\n-       231: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       231: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        234: aastore\n        235: dup\n        236: iconst_2\n        237: aload         10\n-       239: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       239: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        242: aastore\n        243: dup\n        244: iconst_3\n        245: aload         6\n-       247: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       247: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        250: aastore\n        251: dup\n        252: iconst_4\n        253: aload         13\n-       255: invokevirtual #41                 // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n+       255: invokevirtual #142                // Method dev/langchain4j/rag/content/Content.textSegment:()Ldev/langchain4j/data/segment/TextSegment;\n        258: aastore\n-       259: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       259: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        262: aload         4\n-       264: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       267: invokeinterface #16,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       272: invokestatic  #17                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       264: invokevirtual #146                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       267: invokeinterface #58,  3           // InterfaceMethod dev/langchain4j/model/scoring/ScoringModel.scoreAll:(Ljava/util/List;Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       272: invokestatic  #62                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        275: iconst_5\n-       276: anewarray     #18                 // class java/lang/Double\n+       276: anewarray     #66                 // class java/lang/Double\n        279: dup\n        280: iconst_0\n-       281: ldc2_w        #67                 // double 0.6d\n-       284: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       281: ldc2_w        #204                // double 0.6d\n+       284: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        287: aastore\n        288: dup\n        289: iconst_1\n-       290: ldc2_w        #69                 // double 0.2d\n-       293: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       290: ldc2_w        #206                // double 0.2d\n+       293: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        296: aastore\n        297: dup\n        298: iconst_2\n-       299: ldc2_w        #71                 // double 0.3d\n-       302: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       299: ldc2_w        #208                // double 0.3d\n+       302: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        305: aastore\n        306: dup\n        307: iconst_3\n-       308: ldc2_w        #60                 // double 0.4d\n-       311: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       308: ldc2_w        #193                // double 0.4d\n+       311: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        314: aastore\n        315: dup\n        316: iconst_4\n-       317: ldc2_w        #19                 // double 0.5d\n-       320: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       317: ldc2_w        #68                 // double 0.5d\n+       320: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n        323: aastore\n-       324: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       327: invokestatic  #24                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       330: invokeinterface #25,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       324: invokestatic  #24                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       327: invokestatic  #76                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       330: invokeinterface #81,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        335: pop\n-       336: new           #45                 // class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n+       336: new           #152                // class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n        339: dup\n        340: aload         15\n        342: aload_1\n        343: dload_2\n-       344: invokestatic  #21                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       347: invokespecial #73                 // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n+       344: invokestatic  #70                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       347: invokespecial #210                // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;Ljava/util/function/Function;Ljava/lang/Double;)V\n        350: astore        16\n        352: aload         16\n        354: aload         14\n-       356: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+       356: invokeinterface #94,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n        361: astore        17\n        363: aload         17\n-       365: invokestatic  #29                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       365: invokestatic  #98                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        368: iconst_3\n-       369: anewarray     #7                  // class dev/langchain4j/rag/content/Content\n+       369: anewarray     #18                 // class dev/langchain4j/rag/content/Content\n        372: dup\n        373: iconst_0\n        374: aload         5\n        376: aastore\n        377: dup\n        378: iconst_1\n        379: aload         13\n        381: aastore\n        382: dup\n        383: iconst_2\n        384: aload         6\n        386: aastore\n-       387: invokevirtual #30                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       387: invokevirtual #104                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        390: pop\n        391: return\n       LineNumberTable:\n         line 135: 0\n         line 138: 6\n         line 140: 10\n         line 142: 17\n@@ -1017,42 +1017,42 @@\n           363      29    17 aggregated   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             6     386     1 querySelector   Ljava/util/function/Function<Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;Ldev/langchain4j/rag/query/Query;>;\n            89     303    14 queryToContents   Ljava/util/Map<Ldev/langchain4j/rag/query/Query;Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;>;\n           363      29    17 aggregated   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #120()\n+      0: #275()\n         org.junit.jupiter.api.Test\n \n   private static dev.langchain4j.rag.query.Query lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2(java.util.Map);\n     descriptor: (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokeinterface #74,  1           // InterfaceMethod java/util/Map.keySet:()Ljava/util/Set;\n-         6: invokeinterface #75,  1           // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;\n-        11: invokeinterface #76,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        16: checkcast     #77                 // class dev/langchain4j/rag/query/Query\n+         1: invokeinterface #213,  1          // InterfaceMethod java/util/Map.keySet:()Ljava/util/Set;\n+         6: invokeinterface #217,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;\n+        11: invokeinterface #223,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        16: checkcast     #10                 // class dev/langchain4j/rag/query/Query\n         19: areturn\n       LineNumberTable:\n         line 136: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      20     0     q   Ljava/util/Map;\n \n   private static void lambda$should_fail_when_multiple_queries_with_default_query_selector$1(dev.langchain4j.rag.content.aggregator.ContentAggregator, java.util.Map) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n+         2: invokeinterface #94,  2           // InterfaceMethod dev/langchain4j/rag/content/aggregator/ContentAggregator.aggregate:(Ljava/util/Map;)Ljava/util/List;\n          7: pop\n          8: return\n       LineNumberTable:\n         line 124: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       9     0 aggregator   Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n@@ -1061,48 +1061,48 @@\n       throws java.lang.Throwable\n \n   private static dev.langchain4j.rag.content.aggregator.ContentAggregator lambda$should_rerank_when_single_query_and_single_contents$0(dev.langchain4j.model.scoring.ScoringModel);\n     descriptor: (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #78                 // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.builder:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+         0: invokestatic  #228                // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.builder:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n          3: aload_0\n-         4: invokevirtual #79                 // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.scoringModel:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n-         7: invokevirtual #80                 // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.build:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n+         4: invokevirtual #231                // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.scoringModel:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder;\n+         7: invokevirtual #237                // Method dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder.build:()Ldev/langchain4j/rag/content/aggregator/ReRankingContentAggregator;\n         10: areturn\n       LineNumberTable:\n         line 63: 0\n         line 64: 4\n         line 65: 7\n         line 63: 10\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0 scoringModel   Ldev/langchain4j/model/scoring/ScoringModel;\n }\n SourceFile: \"ReRankingContentAggregatorTest.java\"\n-InnerClasses:\n-  public static #273= #189 of #178;       // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n-  public static #297= #296 of #323;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static #314= #228 of #45;        // ReRankingContentAggregatorBuilder=class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder of class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n-  public static final #329= #328 of #332; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #182 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #301 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #183 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #184 REF_newInvokeSpecial dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n-      #185 (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  1: #182 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #308 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #309 REF_newInvokeSpecial dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator.\"<init>\":(Ldev/langchain4j/model/scoring/ScoringModel;)V\n+      #310 (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  1: #301 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #183 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #191 REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-      #185 (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n-  2: #182 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #308 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #311 REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_rerank_when_single_query_and_single_contents$0:(Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+      #310 (Ldev/langchain4j/model/scoring/ScoringModel;)Ldev/langchain4j/rag/content/aggregator/ContentAggregator;\n+  2: #301 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #205 ()V\n-      #206 REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n-      #205 ()V\n-  3: #182 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #314 ()V\n+      #315 REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fail_when_multiple_queries_with_default_query_selector$1:(Ldev/langchain4j/rag/content/aggregator/ContentAggregator;Ljava/util/Map;)V\n+      #314 ()V\n+  3: #301 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #183 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #214 REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n-      #215 (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+      #308 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #318 REF_invokeStatic dev/langchain4j/rag/content/aggregator/ReRankingContentAggregatorTest.lambda$should_fuse_then_rerank_against_first_query_then_filter_by_minScore$2:(Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+      #321 (Ljava/util/Map;)Ldev/langchain4j/rag/query/Query;\n+InnerClasses:\n+  public static #323= #126 of #111;       // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n+  public static #328= #324 of #326;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static #329= #232 of #152;       // ReRankingContentAggregatorBuilder=class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator$ReRankingContentAggregatorBuilder of class dev/langchain4j/rag/content/aggregator/ReRankingContentAggregator\n+  public static final #334= #330 of #332; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.class", "source2": "dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,127 +1,127 @@\n-  SHA-256 checksum 5d8784061f7bccc566c90b34430dfcbd7654a68450b297b12fb41553edc1015a\n+  SHA-256 checksum a56c03ba638701cb108b2b8e6c81bc14502fafd76b25a01fb519afda460a05a6\n   Compiled from \"ReciprocalRankFuserTest.java\"\n class dev.langchain4j.rag.content.aggregator.ReciprocalRankFuserTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #23                         // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest\n-  super_class: #6                         // java/lang/Object\n+  this_class: #36                         // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 4, methods: 5, attributes: 2\n Constant pool:\n-    #1 = Methodref          #6.#59        // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #60.#61       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser.fuse:(Ljava/util/Collection;)Ljava/util/List;\n-    #3 = Methodref          #62.#63       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-    #4 = Methodref          #64.#65       // org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-    #5 = InterfaceMethodref #66.#67       // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n-    #6 = Class              #68           // java/lang/Object\n-    #7 = Class              #69           // java/util/List\n-    #8 = Class              #70           // dev/langchain4j/rag/content/Content\n-    #9 = Methodref          #23.#71       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n-   #10 = Methodref          #72.#73       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #11 = InterfaceMethodref #74.#75       // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #12 = InterfaceMethodref #76.#77       // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-   #13 = Fieldref           #23.#78       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.A:Ldev/langchain4j/rag/content/Content;\n-   #14 = Fieldref           #23.#79       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.B:Ldev/langchain4j/rag/content/Content;\n-   #15 = Fieldref           #23.#80       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.C:Ldev/langchain4j/rag/content/Content;\n-   #16 = Fieldref           #23.#81       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.D:Ldev/langchain4j/rag/content/Content;\n-   #17 = InterfaceMethodref #76.#82       // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n-   #18 = String             #24           // A\n-   #19 = Methodref          #8.#83        // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #20 = String             #26           // B\n-   #21 = String             #27           // C\n-   #22 = String             #28           // D\n-   #23 = Class              #84           // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest\n-   #24 = Utf8               A\n-   #25 = Utf8               Ldev/langchain4j/rag/content/Content;\n-   #26 = Utf8               B\n-   #27 = Utf8               C\n-   #28 = Utf8               D\n-   #29 = Utf8               <init>\n-   #30 = Utf8               ()V\n-   #31 = Utf8               Code\n-   #32 = Utf8               LineNumberTable\n-   #33 = Utf8               LocalVariableTable\n-   #34 = Utf8               this\n-   #35 = Utf8               Ldev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest;\n-   #36 = Utf8               should_fuse\n-   #37 = Utf8               (Ljava/util/Collection;Ljava/util/List;)V\n-   #38 = Utf8               contents\n-   #39 = Utf8               Ljava/util/Collection;\n-   #40 = Utf8               expected\n-   #41 = Utf8               Ljava/util/List;\n-   #42 = Utf8               LocalVariableTypeTable\n-   #43 = Utf8               Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;\n-   #44 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-   #45 = Utf8               Signature\n-   #46 = Utf8               (Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;)V\n-   #47 = Utf8               RuntimeVisibleAnnotations\n-   #48 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-   #49 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n-   #50 = Utf8               ()Ljava/util/stream/Stream;\n-   #51 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n-   #52 = Utf8               list\n-   #53 = Utf8               ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n-   #54 = Utf8               [Ldev/langchain4j/rag/content/Content;\n-   #55 = Utf8               ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-   #56 = Utf8               <clinit>\n-   #57 = Utf8               SourceFile\n-   #58 = Utf8               ReciprocalRankFuserTest.java\n-   #59 = NameAndType        #29:#30       // \"<init>\":()V\n-   #60 = Class              #85           // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser\n-   #61 = NameAndType        #86:#87       // fuse:(Ljava/util/Collection;)Ljava/util/List;\n-   #62 = Class              #88           // org/assertj/core/api/Assertions\n-   #63 = NameAndType        #89:#90       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #64 = Class              #91           // org/assertj/core/api/ListAssert\n-   #65 = NameAndType        #92:#93       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #66 = Class              #94           // java/util/stream/Stream\n-   #67 = NameAndType        #95:#98       // builder:()Ljava/util/stream/Stream$Builder;\n-   #68 = Utf8               java/lang/Object\n-   #69 = Utf8               java/util/List\n-   #70 = Utf8               dev/langchain4j/rag/content/Content\n-   #71 = NameAndType        #52:#53       // list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n-   #72 = Class              #99           // java/util/Arrays\n-   #73 = NameAndType        #100:#101     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #74 = Class              #102          // org/junit/jupiter/params/provider/Arguments\n-   #75 = NameAndType        #103:#104     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #76 = Class              #105          // java/util/stream/Stream$Builder\n-   #77 = NameAndType        #106:#107     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-   #78 = NameAndType        #24:#25       // A:Ldev/langchain4j/rag/content/Content;\n-   #79 = NameAndType        #26:#25       // B:Ldev/langchain4j/rag/content/Content;\n-   #80 = NameAndType        #27:#25       // C:Ldev/langchain4j/rag/content/Content;\n-   #81 = NameAndType        #28:#25       // D:Ldev/langchain4j/rag/content/Content;\n-   #82 = NameAndType        #108:#50      // build:()Ljava/util/stream/Stream;\n-   #83 = NameAndType        #109:#110     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #84 = Utf8               dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest\n-   #85 = Utf8               dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser\n-   #86 = Utf8               fuse\n-   #87 = Utf8               (Ljava/util/Collection;)Ljava/util/List;\n-   #88 = Utf8               org/assertj/core/api/Assertions\n-   #89 = Utf8               assertThat\n-   #90 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #91 = Utf8               org/assertj/core/api/ListAssert\n-   #92 = Utf8               isEqualTo\n-   #93 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #94 = Utf8               java/util/stream/Stream\n-   #95 = Utf8               builder\n-   #96 = Utf8               Builder\n-   #97 = Utf8               InnerClasses\n-   #98 = Utf8               ()Ljava/util/stream/Stream$Builder;\n-   #99 = Utf8               java/util/Arrays\n-  #100 = Utf8               asList\n-  #101 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #102 = Utf8               org/junit/jupiter/params/provider/Arguments\n-  #103 = Utf8               of\n-  #104 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #105 = Utf8               java/util/stream/Stream$Builder\n-  #106 = Utf8               add\n-  #107 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #108 = Utf8               build\n-  #109 = Utf8               from\n-  #110 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser.fuse:(Ljava/util/Collection;)Ljava/util/List;\n+    #8 = Class              #10           // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser\n+    #9 = NameAndType        #11:#12       // fuse:(Ljava/util/Collection;)Ljava/util/List;\n+   #10 = Utf8               dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser\n+   #11 = Utf8               fuse\n+   #12 = Utf8               (Ljava/util/Collection;)Ljava/util/List;\n+   #13 = Methodref          #14.#15       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #14 = Class              #16           // org/assertj/core/api/Assertions\n+   #15 = NameAndType        #17:#18       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #16 = Utf8               org/assertj/core/api/Assertions\n+   #17 = Utf8               assertThat\n+   #18 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #20 = Class              #22           // org/assertj/core/api/ListAssert\n+   #21 = NameAndType        #23:#24       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #22 = Utf8               org/assertj/core/api/ListAssert\n+   #23 = Utf8               isEqualTo\n+   #24 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #25 = InterfaceMethodref #26.#27       // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+   #26 = Class              #28           // java/util/stream/Stream\n+   #27 = NameAndType        #29:#30       // builder:()Ljava/util/stream/Stream$Builder;\n+   #28 = Utf8               java/util/stream/Stream\n+   #29 = Utf8               builder\n+   #30 = Utf8               ()Ljava/util/stream/Stream$Builder;\n+   #31 = Class              #32           // java/util/List\n+   #32 = Utf8               java/util/List\n+   #33 = Class              #34           // dev/langchain4j/rag/content/Content\n+   #34 = Utf8               dev/langchain4j/rag/content/Content\n+   #35 = Methodref          #36.#37       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+   #36 = Class              #38           // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest\n+   #37 = NameAndType        #39:#40       // list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+   #38 = Utf8               dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest\n+   #39 = Utf8               list\n+   #40 = Utf8               ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+   #41 = Methodref          #42.#43       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #42 = Class              #44           // java/util/Arrays\n+   #43 = NameAndType        #45:#46       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #44 = Utf8               java/util/Arrays\n+   #45 = Utf8               asList\n+   #46 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #47 = InterfaceMethodref #48.#49       // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+   #48 = Class              #50           // org/junit/jupiter/params/provider/Arguments\n+   #49 = NameAndType        #51:#52       // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+   #50 = Utf8               org/junit/jupiter/params/provider/Arguments\n+   #51 = Utf8               of\n+   #52 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+   #53 = InterfaceMethodref #54.#55       // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+   #54 = Class              #56           // java/util/stream/Stream$Builder\n+   #55 = NameAndType        #57:#58       // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+   #56 = Utf8               java/util/stream/Stream$Builder\n+   #57 = Utf8               add\n+   #58 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+   #59 = Fieldref           #36.#60       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.A:Ldev/langchain4j/rag/content/Content;\n+   #60 = NameAndType        #61:#62       // A:Ldev/langchain4j/rag/content/Content;\n+   #61 = Utf8               A\n+   #62 = Utf8               Ldev/langchain4j/rag/content/Content;\n+   #63 = Fieldref           #36.#64       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.B:Ldev/langchain4j/rag/content/Content;\n+   #64 = NameAndType        #65:#62       // B:Ldev/langchain4j/rag/content/Content;\n+   #65 = Utf8               B\n+   #66 = Fieldref           #36.#67       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.C:Ldev/langchain4j/rag/content/Content;\n+   #67 = NameAndType        #68:#62       // C:Ldev/langchain4j/rag/content/Content;\n+   #68 = Utf8               C\n+   #69 = Fieldref           #36.#70       // dev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest.D:Ldev/langchain4j/rag/content/Content;\n+   #70 = NameAndType        #71:#62       // D:Ldev/langchain4j/rag/content/Content;\n+   #71 = Utf8               D\n+   #72 = InterfaceMethodref #54.#73       // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+   #73 = NameAndType        #74:#75       // build:()Ljava/util/stream/Stream;\n+   #74 = Utf8               build\n+   #75 = Utf8               ()Ljava/util/stream/Stream;\n+   #76 = String             #61           // A\n+   #77 = Methodref          #33.#78       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #78 = NameAndType        #79:#80       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #79 = Utf8               from\n+   #80 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #81 = String             #65           // B\n+   #82 = String             #68           // C\n+   #83 = String             #71           // D\n+   #84 = Utf8               Code\n+   #85 = Utf8               LineNumberTable\n+   #86 = Utf8               LocalVariableTable\n+   #87 = Utf8               this\n+   #88 = Utf8               Ldev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest;\n+   #89 = Utf8               should_fuse\n+   #90 = Utf8               (Ljava/util/Collection;Ljava/util/List;)V\n+   #91 = Utf8               contents\n+   #92 = Utf8               Ljava/util/Collection;\n+   #93 = Utf8               expected\n+   #94 = Utf8               Ljava/util/List;\n+   #95 = Utf8               LocalVariableTypeTable\n+   #96 = Utf8               Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;\n+   #97 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+   #98 = Utf8               Signature\n+   #99 = Utf8               (Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;)V\n+  #100 = Utf8               RuntimeVisibleAnnotations\n+  #101 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #102 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n+  #103 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+  #104 = Utf8               [Ldev/langchain4j/rag/content/Content;\n+  #105 = Utf8               ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #106 = Utf8               <clinit>\n+  #107 = Utf8               SourceFile\n+  #108 = Utf8               ReciprocalRankFuserTest.java\n+  #109 = Utf8               InnerClasses\n+  #110 = Utf8               Builder\n {\n   private static final dev.langchain4j.rag.content.Content A;\n     descriptor: Ldev/langchain4j/rag/content/Content;\n     flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL\n \n   private static final dev.langchain4j.rag.content.Content B;\n     descriptor: Ldev/langchain4j/rag/content/Content;\n@@ -151,698 +151,698 @@\n \n   void should_fuse(java.util.Collection<java.util.List<dev.langchain4j.rag.content.Content>>, java.util.List<dev.langchain4j.rag.content.Content>);\n     descriptor: (Ljava/util/Collection;Ljava/util/List;)V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=3\n          0: aload_1\n-         1: invokestatic  #2                  // Method dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser.fuse:(Ljava/util/Collection;)Ljava/util/List;\n-         4: invokestatic  #3                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+         1: invokestatic  #7                  // Method dev/langchain4j/rag/content/aggregator/ReciprocalRankFuser.fuse:(Ljava/util/Collection;)Ljava/util/List;\n+         4: invokestatic  #13                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n          7: aload_2\n-         8: invokevirtual #4                  // Method org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+         8: invokevirtual #19                 // Method org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n         11: pop\n         12: return\n       LineNumberTable:\n         line 26: 0\n         line 27: 12\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0  this   Ldev/langchain4j/rag/content/aggregator/ReciprocalRankFuserTest;\n             0      13     1 contents   Ljava/util/Collection;\n             0      13     2 expected   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      13     1 contents   Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;\n             0      13     2 expected   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-    Signature: #46                          // (Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;)V\n+    Signature: #99                          // (Ljava/util/Collection<Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;>;Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;)V\n     RuntimeVisibleAnnotations:\n-      0: #48()\n+      0: #101()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #49()\n+      1: #102()\n         org.junit.jupiter.params.provider.MethodSource\n \n   public static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> should_fuse();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=11, locals=0, args_size=0\n-         0: invokestatic  #5                  // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+         0: invokestatic  #25                 // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n          3: iconst_2\n-         4: anewarray     #6                  // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n          9: iconst_2\n-        10: anewarray     #7                  // class java/util/List\n+        10: anewarray     #31                 // class java/util/List\n         13: dup\n         14: iconst_0\n         15: iconst_0\n-        16: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n-        19: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+        16: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n+        19: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n         22: aastore\n         23: dup\n         24: iconst_1\n         25: iconst_0\n-        26: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n-        29: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+        26: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n+        29: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n         32: aastore\n-        33: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        33: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         36: aastore\n         37: dup\n         38: iconst_1\n         39: iconst_0\n-        40: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n-        43: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+        40: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n+        43: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n         46: aastore\n-        47: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        50: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        47: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        50: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         55: iconst_2\n-        56: anewarray     #6                  // class java/lang/Object\n+        56: anewarray     #2                  // class java/lang/Object\n         59: dup\n         60: iconst_0\n         61: iconst_2\n-        62: anewarray     #7                  // class java/util/List\n+        62: anewarray     #31                 // class java/util/List\n         65: dup\n         66: iconst_0\n         67: iconst_0\n-        68: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n-        71: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+        68: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n+        71: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n         74: aastore\n         75: dup\n         76: iconst_1\n         77: iconst_1\n-        78: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+        78: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n         81: dup\n         82: iconst_0\n-        83: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+        83: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n         86: aastore\n-        87: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+        87: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n         90: aastore\n-        91: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        91: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         94: aastore\n         95: dup\n         96: iconst_1\n         97: iconst_1\n-        98: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+        98: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        101: dup\n        102: iconst_0\n-       103: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       103: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        106: aastore\n-       107: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       107: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        110: aastore\n-       111: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       114: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       111: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       114: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        119: iconst_2\n-       120: anewarray     #6                  // class java/lang/Object\n+       120: anewarray     #2                  // class java/lang/Object\n        123: dup\n        124: iconst_0\n        125: iconst_2\n-       126: anewarray     #7                  // class java/util/List\n+       126: anewarray     #31                 // class java/util/List\n        129: dup\n        130: iconst_0\n        131: iconst_1\n-       132: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       132: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        135: dup\n        136: iconst_0\n-       137: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       137: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        140: aastore\n-       141: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       141: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        144: aastore\n        145: dup\n        146: iconst_1\n        147: iconst_0\n-       148: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n-       151: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       148: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n+       151: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        154: aastore\n-       155: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       155: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        158: aastore\n        159: dup\n        160: iconst_1\n        161: iconst_1\n-       162: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       162: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        165: dup\n        166: iconst_0\n-       167: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       167: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        170: aastore\n-       171: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       171: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        174: aastore\n-       175: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       178: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       175: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       178: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        183: iconst_2\n-       184: anewarray     #6                  // class java/lang/Object\n+       184: anewarray     #2                  // class java/lang/Object\n        187: dup\n        188: iconst_0\n        189: iconst_2\n-       190: anewarray     #7                  // class java/util/List\n+       190: anewarray     #31                 // class java/util/List\n        193: dup\n        194: iconst_0\n        195: iconst_1\n-       196: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       196: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        199: dup\n        200: iconst_0\n-       201: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       201: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        204: aastore\n-       205: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       205: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        208: aastore\n        209: dup\n        210: iconst_1\n        211: iconst_1\n-       212: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       212: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        215: dup\n        216: iconst_0\n-       217: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       217: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        220: aastore\n-       221: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       221: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        224: aastore\n-       225: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       225: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        228: aastore\n        229: dup\n        230: iconst_1\n        231: iconst_1\n-       232: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       232: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        235: dup\n        236: iconst_0\n-       237: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       237: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        240: aastore\n-       241: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       241: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        244: aastore\n-       245: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       248: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       245: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       248: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        253: iconst_2\n-       254: anewarray     #6                  // class java/lang/Object\n+       254: anewarray     #2                  // class java/lang/Object\n        257: dup\n        258: iconst_0\n        259: iconst_2\n-       260: anewarray     #7                  // class java/util/List\n+       260: anewarray     #31                 // class java/util/List\n        263: dup\n        264: iconst_0\n        265: iconst_1\n-       266: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       266: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        269: dup\n        270: iconst_0\n-       271: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       271: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        274: aastore\n-       275: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       275: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        278: aastore\n        279: dup\n        280: iconst_1\n        281: iconst_1\n-       282: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       282: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        285: dup\n        286: iconst_0\n-       287: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       287: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        290: aastore\n-       291: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       291: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        294: aastore\n-       295: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       295: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        298: aastore\n        299: dup\n        300: iconst_1\n        301: iconst_2\n-       302: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       302: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        305: dup\n        306: iconst_0\n-       307: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       307: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        310: aastore\n        311: dup\n        312: iconst_1\n-       313: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       313: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        316: aastore\n-       317: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       317: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        320: aastore\n-       321: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       324: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       321: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       324: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        329: iconst_2\n-       330: anewarray     #6                  // class java/lang/Object\n+       330: anewarray     #2                  // class java/lang/Object\n        333: dup\n        334: iconst_0\n        335: iconst_2\n-       336: anewarray     #7                  // class java/util/List\n+       336: anewarray     #31                 // class java/util/List\n        339: dup\n        340: iconst_0\n        341: iconst_1\n-       342: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       342: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        345: dup\n        346: iconst_0\n-       347: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       347: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        350: aastore\n-       351: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       351: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        354: aastore\n        355: dup\n        356: iconst_1\n        357: iconst_2\n-       358: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       358: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        361: dup\n        362: iconst_0\n-       363: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       363: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        366: aastore\n        367: dup\n        368: iconst_1\n-       369: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       369: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        372: aastore\n-       373: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       373: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        376: aastore\n-       377: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       377: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        380: aastore\n        381: dup\n        382: iconst_1\n        383: iconst_2\n-       384: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       384: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        387: dup\n        388: iconst_0\n-       389: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       389: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        392: aastore\n        393: dup\n        394: iconst_1\n-       395: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       395: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        398: aastore\n-       399: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       399: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        402: aastore\n-       403: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       406: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       403: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       406: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        411: iconst_2\n-       412: anewarray     #6                  // class java/lang/Object\n+       412: anewarray     #2                  // class java/lang/Object\n        415: dup\n        416: iconst_0\n        417: iconst_2\n-       418: anewarray     #7                  // class java/util/List\n+       418: anewarray     #31                 // class java/util/List\n        421: dup\n        422: iconst_0\n        423: iconst_1\n-       424: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       424: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        427: dup\n        428: iconst_0\n-       429: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       429: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        432: aastore\n-       433: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       433: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        436: aastore\n        437: dup\n        438: iconst_1\n        439: iconst_2\n-       440: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       440: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        443: dup\n        444: iconst_0\n-       445: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       445: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        448: aastore\n        449: dup\n        450: iconst_1\n-       451: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       451: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        454: aastore\n-       455: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       455: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        458: aastore\n-       459: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       459: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        462: aastore\n        463: dup\n        464: iconst_1\n        465: iconst_2\n-       466: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       466: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        469: dup\n        470: iconst_0\n-       471: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       471: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        474: aastore\n        475: dup\n        476: iconst_1\n-       477: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       477: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        480: aastore\n-       481: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       481: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        484: aastore\n-       485: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       488: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       485: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       488: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        493: iconst_2\n-       494: anewarray     #6                  // class java/lang/Object\n+       494: anewarray     #2                  // class java/lang/Object\n        497: dup\n        498: iconst_0\n        499: iconst_2\n-       500: anewarray     #7                  // class java/util/List\n+       500: anewarray     #31                 // class java/util/List\n        503: dup\n        504: iconst_0\n        505: iconst_2\n-       506: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       506: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        509: dup\n        510: iconst_0\n-       511: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       511: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        514: aastore\n        515: dup\n        516: iconst_1\n-       517: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       517: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        520: aastore\n-       521: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       521: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        524: aastore\n        525: dup\n        526: iconst_1\n        527: iconst_1\n-       528: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       528: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        531: dup\n        532: iconst_0\n-       533: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       533: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        536: aastore\n-       537: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       537: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        540: aastore\n-       541: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       541: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        544: aastore\n        545: dup\n        546: iconst_1\n        547: iconst_2\n-       548: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       548: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        551: dup\n        552: iconst_0\n-       553: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       553: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        556: aastore\n        557: dup\n        558: iconst_1\n-       559: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       559: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        562: aastore\n-       563: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       563: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        566: aastore\n-       567: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       570: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       567: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       570: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        575: iconst_2\n-       576: anewarray     #6                  // class java/lang/Object\n+       576: anewarray     #2                  // class java/lang/Object\n        579: dup\n        580: iconst_0\n        581: iconst_2\n-       582: anewarray     #7                  // class java/util/List\n+       582: anewarray     #31                 // class java/util/List\n        585: dup\n        586: iconst_0\n        587: iconst_2\n-       588: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       588: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        591: dup\n        592: iconst_0\n-       593: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       593: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        596: aastore\n        597: dup\n        598: iconst_1\n-       599: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       599: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        602: aastore\n-       603: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       603: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        606: aastore\n        607: dup\n        608: iconst_1\n        609: iconst_1\n-       610: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       610: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        613: dup\n        614: iconst_0\n-       615: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       615: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        618: aastore\n-       619: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       619: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        622: aastore\n-       623: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       623: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        626: aastore\n        627: dup\n        628: iconst_1\n        629: iconst_2\n-       630: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       630: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        633: dup\n        634: iconst_0\n-       635: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       635: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        638: aastore\n        639: dup\n        640: iconst_1\n-       641: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       641: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        644: aastore\n-       645: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       645: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        648: aastore\n-       649: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       652: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       649: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       652: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        657: iconst_2\n-       658: anewarray     #6                  // class java/lang/Object\n+       658: anewarray     #2                  // class java/lang/Object\n        661: dup\n        662: iconst_0\n        663: iconst_2\n-       664: anewarray     #7                  // class java/util/List\n+       664: anewarray     #31                 // class java/util/List\n        667: dup\n        668: iconst_0\n        669: iconst_2\n-       670: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       670: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        673: dup\n        674: iconst_0\n-       675: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       675: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        678: aastore\n        679: dup\n        680: iconst_1\n-       681: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       681: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        684: aastore\n-       685: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       685: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        688: aastore\n        689: dup\n        690: iconst_1\n        691: iconst_2\n-       692: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       692: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        695: dup\n        696: iconst_0\n-       697: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       697: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        700: aastore\n        701: dup\n        702: iconst_1\n-       703: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       703: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        706: aastore\n-       707: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       707: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        710: aastore\n-       711: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       711: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        714: aastore\n        715: dup\n        716: iconst_1\n        717: iconst_2\n-       718: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       718: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        721: dup\n        722: iconst_0\n-       723: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       723: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        726: aastore\n        727: dup\n        728: iconst_1\n-       729: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       729: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        732: aastore\n-       733: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       733: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        736: aastore\n-       737: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       740: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       737: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       740: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        745: iconst_2\n-       746: anewarray     #6                  // class java/lang/Object\n+       746: anewarray     #2                  // class java/lang/Object\n        749: dup\n        750: iconst_0\n        751: iconst_2\n-       752: anewarray     #7                  // class java/util/List\n+       752: anewarray     #31                 // class java/util/List\n        755: dup\n        756: iconst_0\n        757: iconst_2\n-       758: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       758: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        761: dup\n        762: iconst_0\n-       763: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       763: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        766: aastore\n        767: dup\n        768: iconst_1\n-       769: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       769: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        772: aastore\n-       773: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       773: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        776: aastore\n        777: dup\n        778: iconst_1\n        779: iconst_2\n-       780: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       780: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        783: dup\n        784: iconst_0\n-       785: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       785: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        788: aastore\n        789: dup\n        790: iconst_1\n-       791: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       791: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        794: aastore\n-       795: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       795: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        798: aastore\n-       799: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       799: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        802: aastore\n        803: dup\n        804: iconst_1\n        805: iconst_2\n-       806: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       806: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        809: dup\n        810: iconst_0\n-       811: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       811: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        814: aastore\n        815: dup\n        816: iconst_1\n-       817: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       817: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        820: aastore\n-       821: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       821: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        824: aastore\n-       825: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       828: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       825: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       828: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        833: iconst_2\n-       834: anewarray     #6                  // class java/lang/Object\n+       834: anewarray     #2                  // class java/lang/Object\n        837: dup\n        838: iconst_0\n        839: iconst_2\n-       840: anewarray     #7                  // class java/util/List\n+       840: anewarray     #31                 // class java/util/List\n        843: dup\n        844: iconst_0\n        845: iconst_2\n-       846: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       846: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        849: dup\n        850: iconst_0\n-       851: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       851: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        854: aastore\n        855: dup\n        856: iconst_1\n-       857: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       857: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        860: aastore\n-       861: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       861: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        864: aastore\n        865: dup\n        866: iconst_1\n        867: iconst_2\n-       868: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       868: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        871: dup\n        872: iconst_0\n-       873: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       873: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        876: aastore\n        877: dup\n        878: iconst_1\n-       879: getstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n+       879: getstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n        882: aastore\n-       883: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       883: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        886: aastore\n-       887: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       887: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        890: aastore\n        891: dup\n        892: iconst_1\n        893: iconst_3\n-       894: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       894: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        897: dup\n        898: iconst_0\n-       899: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       899: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        902: aastore\n        903: dup\n        904: iconst_1\n-       905: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       905: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        908: aastore\n        909: dup\n        910: iconst_2\n-       911: getstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n+       911: getstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n        914: aastore\n-       915: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       915: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        918: aastore\n-       919: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-       922: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+       919: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+       922: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n        927: iconst_2\n-       928: anewarray     #6                  // class java/lang/Object\n+       928: anewarray     #2                  // class java/lang/Object\n        931: dup\n        932: iconst_0\n        933: iconst_2\n-       934: anewarray     #7                  // class java/util/List\n+       934: anewarray     #31                 // class java/util/List\n        937: dup\n        938: iconst_0\n        939: iconst_2\n-       940: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       940: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        943: dup\n        944: iconst_0\n-       945: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       945: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n        948: aastore\n        949: dup\n        950: iconst_1\n-       951: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       951: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        954: aastore\n-       955: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       955: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        958: aastore\n        959: dup\n        960: iconst_1\n        961: iconst_2\n-       962: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       962: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        965: dup\n        966: iconst_0\n-       967: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       967: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        970: aastore\n        971: dup\n        972: iconst_1\n-       973: getstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n+       973: getstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n        976: aastore\n-       977: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+       977: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n        980: aastore\n-       981: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       981: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n        984: aastore\n        985: dup\n        986: iconst_1\n        987: iconst_3\n-       988: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+       988: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n        991: dup\n        992: iconst_0\n-       993: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+       993: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n        996: aastore\n        997: dup\n        998: iconst_1\n-       999: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+       999: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n       1002: aastore\n       1003: dup\n       1004: iconst_2\n-      1005: getstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n+      1005: getstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n       1008: aastore\n-      1009: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1009: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n       1012: aastore\n-      1013: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-      1016: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+      1013: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+      1016: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n       1021: iconst_2\n-      1022: anewarray     #6                  // class java/lang/Object\n+      1022: anewarray     #2                  // class java/lang/Object\n       1025: dup\n       1026: iconst_0\n       1027: iconst_2\n-      1028: anewarray     #7                  // class java/util/List\n+      1028: anewarray     #31                 // class java/util/List\n       1031: dup\n       1032: iconst_0\n       1033: iconst_2\n-      1034: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+      1034: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n       1037: dup\n       1038: iconst_0\n-      1039: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+      1039: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n       1042: aastore\n       1043: dup\n       1044: iconst_1\n-      1045: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+      1045: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n       1048: aastore\n-      1049: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+      1049: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n       1052: aastore\n       1053: dup\n       1054: iconst_1\n       1055: iconst_2\n-      1056: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+      1056: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n       1059: dup\n       1060: iconst_0\n-      1061: getstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n+      1061: getstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n       1064: aastore\n       1065: dup\n       1066: iconst_1\n-      1067: getstatic     #16                 // Field D:Ldev/langchain4j/rag/content/Content;\n+      1067: getstatic     #69                 // Field D:Ldev/langchain4j/rag/content/Content;\n       1070: aastore\n-      1071: invokestatic  #9                  // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n+      1071: invokestatic  #35                 // Method list:([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n       1074: aastore\n-      1075: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1075: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n       1078: aastore\n       1079: dup\n       1080: iconst_1\n       1081: iconst_4\n-      1082: anewarray     #8                  // class dev/langchain4j/rag/content/Content\n+      1082: anewarray     #33                 // class dev/langchain4j/rag/content/Content\n       1085: dup\n       1086: iconst_0\n-      1087: getstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n+      1087: getstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n       1090: aastore\n       1091: dup\n       1092: iconst_1\n-      1093: getstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n+      1093: getstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n       1096: aastore\n       1097: dup\n       1098: iconst_2\n-      1099: getstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n+      1099: getstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n       1102: aastore\n       1103: dup\n       1104: iconst_3\n-      1105: getstatic     #16                 // Field D:Ldev/langchain4j/rag/content/Content;\n+      1105: getstatic     #69                 // Field D:Ldev/langchain4j/rag/content/Content;\n       1108: aastore\n-      1109: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1109: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n       1112: aastore\n-      1113: invokestatic  #11                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-      1116: invokeinterface #12,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-      1121: invokeinterface #17,  1           // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+      1113: invokestatic  #47                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+      1116: invokeinterface #53,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+      1121: invokeinterface #72,  1           // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n       1126: areturn\n       LineNumberTable:\n         line 30: 0\n         line 34: 19\n         line 35: 43\n         line 33: 47\n         line 39: 71\n@@ -882,51 +882,51 @@\n         line 84: 1009\n         line 82: 1013\n         line 87: 1049\n         line 88: 1109\n         line 86: 1113\n         line 90: 1121\n         line 30: 1126\n-    Signature: #51                          // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #103                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n \n   private static java.util.List<dev.langchain4j.rag.content.Content> list(dev.langchain4j.rag.content.Content...);\n     descriptor: ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List;\n     flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokestatic  #10                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+         1: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n          4: areturn\n       LineNumberTable:\n         line 94: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0 contents   [Ldev/langchain4j/rag/content/Content;\n-    Signature: #55                          // ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+    Signature: #105                         // ([Ldev/langchain4j/rag/content/Content;)Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n \n   static {};\n     descriptor: ()V\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #18                 // String A\n-         2: invokestatic  #19                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-         5: putstatic     #13                 // Field A:Ldev/langchain4j/rag/content/Content;\n-         8: ldc           #20                 // String B\n-        10: invokestatic  #19                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-        13: putstatic     #14                 // Field B:Ldev/langchain4j/rag/content/Content;\n-        16: ldc           #21                 // String C\n-        18: invokestatic  #19                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-        21: putstatic     #15                 // Field C:Ldev/langchain4j/rag/content/Content;\n-        24: ldc           #22                 // String D\n-        26: invokestatic  #19                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-        29: putstatic     #16                 // Field D:Ldev/langchain4j/rag/content/Content;\n+         0: ldc           #76                 // String A\n+         2: invokestatic  #77                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+         5: putstatic     #59                 // Field A:Ldev/langchain4j/rag/content/Content;\n+         8: ldc           #81                 // String B\n+        10: invokestatic  #77                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        13: putstatic     #63                 // Field B:Ldev/langchain4j/rag/content/Content;\n+        16: ldc           #82                 // String C\n+        18: invokestatic  #77                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        21: putstatic     #66                 // Field C:Ldev/langchain4j/rag/content/Content;\n+        24: ldc           #83                 // String D\n+        26: invokestatic  #77                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        29: putstatic     #69                 // Field D:Ldev/langchain4j/rag/content/Content;\n         32: return\n       LineNumberTable:\n         line 18: 0\n         line 19: 8\n         line 20: 16\n         line 21: 24\n }\n SourceFile: \"ReciprocalRankFuserTest.java\"\n InnerClasses:\n-  public static #96= #76 of #66;          // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n+  public static #110= #54 of #26;         // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n"}]}, {"source1": "dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.class", "source2": "dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,266 +1,266 @@\n-  SHA-256 checksum 762cb482b1d84a7a4633932f27f32befa278066a24bbe9976e272e65453f34d5\n+  SHA-256 checksum a78c55dcc211d155f0c99598ba9d77cb42cde0b0b3d28133986732ebe560931d\n   Compiled from \"DefaultContentInjectorTest.java\"\n class dev.langchain4j.rag.content.injector.DefaultContentInjectorTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #54                         // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest\n-  super_class: #39                        // java/lang/Object\n+  this_class: #173                        // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 11, attributes: 3\n Constant pool:\n-    #1 = Methodref          #39.#105      // java/lang/Object.\"<init>\":()V\n-    #2 = String             #106          // Tell me about bananas.\n-    #3 = Methodref          #107.#108     // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-    #4 = Methodref          #109.#110     // java/util/Collections.emptyList:()Ljava/util/List;\n-    #5 = Class              #111          // dev/langchain4j/rag/content/injector/DefaultContentInjector\n-    #6 = Methodref          #5.#105       // dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n-    #7 = InterfaceMethodref #36.#112      // dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-    #8 = Methodref          #113.#114     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-    #9 = Methodref          #115.#116     // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #10 = String             #117          // Bananas are awesome!\n-   #11 = Methodref          #24.#118      // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #12 = Methodref          #109.#119     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #13 = Methodref          #107.#120     // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-   #14 = Methodref          #113.#121     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #15 = String             #122          // Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\n-   #16 = Methodref          #123.#124     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #17 = String             #125          // source\n-   #18 = String             #126          // trust me bro\n-   #19 = Methodref          #127.#128     // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #20 = Methodref          #129.#130     // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-   #21 = Methodref          #24.#131      // dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-   #22 = Methodref          #5.#132       // dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n-   #23 = String             #133          // Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\n-   #24 = Class              #134          // dev/langchain4j/rag/content/Content\n-   #25 = String             #135          // Bananas are healthy!\n-   #26 = Methodref          #136.#137     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #27 = String             #138          // Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\\n\\nBananas are healthy!\n-   #28 = String             #139          // date\n-   #29 = String             #140          // today\n-   #30 = Methodref          #127.#141     // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-   #31 = String             #142          // my doctor\n-   #32 = String             #143          // reliability\n-   #33 = String             #144          // 100%\n-   #34 = Class              #145          // java/lang/String\n-   #35 = InterfaceMethodref #146.#147     // java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #36 = Class              #148          // dev/langchain4j/rag/content/injector/ContentInjector\n-   #37 = String             #149          // Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\\ndate: today\\n\\ncontent: Bananas are healthy!\\nsource: my doctor\\nreliability: 100%\n-   #38 = InterfaceMethodref #150.#151     // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n-   #39 = Class              #152          // java/lang/Object\n-   #40 = InvokeDynamic      #0:#158       // #0:apply:()Ljava/util/function/Function;\n-   #41 = InterfaceMethodref #159.#160     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-   #42 = InterfaceMethodref #161.#162     // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-   #43 = InvokeDynamic      #1:#158       // #1:apply:()Ljava/util/function/Function;\n-   #44 = InterfaceMethodref #161.#164     // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n-   #45 = String             #165          // {{userMessage}}\\n{{contents}}\n-   #46 = Methodref          #166.#167     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-   #47 = String             #168          // Tell me about bananas.\\nBananas are awesome!\\n\\nBananas are healthy!\n-   #48 = InvokeDynamic      #2:#158       // #2:apply:()Ljava/util/function/Function;\n-   #49 = InvokeDynamic      #3:#158       // #3:apply:()Ljava/util/function/Function;\n-   #50 = Methodref          #5.#172       // dev/langchain4j/rag/content/injector/DefaultContentInjector.builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-   #51 = Methodref          #173.#174     // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-   #52 = Methodref          #173.#175     // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n-   #53 = Methodref          #173.#176     // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.metadataKeysToInclude:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-   #54 = Class              #177          // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest\n-   #55 = Utf8               <init>\n-   #56 = Utf8               ()V\n-   #57 = Utf8               Code\n-   #58 = Utf8               LineNumberTable\n-   #59 = Utf8               LocalVariableTable\n-   #60 = Utf8               this\n-   #61 = Utf8               Ldev/langchain4j/rag/content/injector/DefaultContentInjectorTest;\n-   #62 = Utf8               should_not_inject_when_no_content\n-   #63 = Utf8               userMessage\n-   #64 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-   #65 = Utf8               contents\n-   #66 = Utf8               Ljava/util/List;\n-   #67 = Utf8               injector\n-   #68 = Utf8               Ldev/langchain4j/rag/content/injector/ContentInjector;\n-   #69 = Utf8               injected\n-   #70 = Utf8               LocalVariableTypeTable\n-   #71 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-   #72 = Utf8               RuntimeVisibleAnnotations\n-   #73 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #74 = Utf8               should_inject_single_content\n-   #75 = Utf8               should_inject_single_content_with_metadata\n-   #76 = Utf8               segment\n-   #77 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n-   #78 = Utf8               metadataKeysToInclude\n-   #79 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-   #80 = Utf8               should_inject_multiple_contents\n-   #81 = Utf8               should_inject_multiple_contents_with_multiple_metadata_entries\n-   #82 = Utf8               (Ljava/util/function/Function;)V\n-   #83 = Utf8               contentInjectorProvider\n-   #84 = Utf8               Ljava/util/function/Function;\n-   #85 = Utf8               segment1\n-   #86 = Utf8               segment2\n-   #87 = Utf8               Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;\n-   #88 = Utf8               Signature\n-   #89 = Utf8               (Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n-   #90 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-   #91 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n-   #92 = Utf8               ()Ljava/util/stream/Stream;\n-   #93 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n-   #94 = Utf8               should_inject_multiple_contents_with_custom_prompt_template\n-   #95 = Utf8               promptTemplate\n-   #96 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n-   #97 = Utf8               Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;\n-   #98 = Utf8               (Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n-   #99 = Utf8               lambda$should_inject_multiple_contents_with_custom_prompt_template$1\n-  #100 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #101 = Utf8               lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0\n-  #102 = Utf8               (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #103 = Utf8               SourceFile\n-  #104 = Utf8               DefaultContentInjectorTest.java\n-  #105 = NameAndType        #55:#56       // \"<init>\":()V\n-  #106 = Utf8               Tell me about bananas.\n-  #107 = Class              #178          // dev/langchain4j/data/message/UserMessage\n-  #108 = NameAndType        #179:#180     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #109 = Class              #181          // java/util/Collections\n-  #110 = NameAndType        #182:#183     // emptyList:()Ljava/util/List;\n-  #111 = Utf8               dev/langchain4j/rag/content/injector/DefaultContentInjector\n-  #112 = NameAndType        #184:#185     // inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-  #113 = Class              #186          // org/assertj/core/api/Assertions\n-  #114 = NameAndType        #187:#188     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #115 = Class              #189          // org/assertj/core/api/ObjectAssert\n-  #116 = NameAndType        #190:#191     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #117 = Utf8               Bananas are awesome!\n-  #118 = NameAndType        #179:#192     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #119 = NameAndType        #193:#194     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #120 = NameAndType        #195:#196     // text:()Ljava/lang/String;\n-  #121 = NameAndType        #187:#197     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #122 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\n-  #123 = Class              #198          // org/assertj/core/api/AbstractStringAssert\n-  #124 = NameAndType        #190:#197     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #125 = Utf8               source\n-  #126 = Utf8               trust me bro\n-  #127 = Class              #199          // dev/langchain4j/data/document/Metadata\n-  #128 = NameAndType        #179:#200     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #129 = Class              #201          // dev/langchain4j/data/segment/TextSegment\n-  #130 = NameAndType        #179:#202     // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #131 = NameAndType        #179:#203     // from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-  #132 = NameAndType        #55:#204      // \"<init>\":(Ljava/util/List;)V\n-  #133 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\n-  #134 = Utf8               dev/langchain4j/rag/content/Content\n-  #135 = Utf8               Bananas are healthy!\n-  #136 = Class              #205          // java/util/Arrays\n-  #137 = NameAndType        #206:#207     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #138 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\\n\\nBananas are healthy!\n-  #139 = Utf8               date\n-  #140 = Utf8               today\n-  #141 = NameAndType        #208:#200     // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #142 = Utf8               my doctor\n-  #143 = Utf8               reliability\n-  #144 = Utf8               100%\n-  #145 = Utf8               java/lang/String\n-  #146 = Class              #209          // java/util/function/Function\n-  #147 = NameAndType        #210:#211     // apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #148 = Utf8               dev/langchain4j/rag/content/injector/ContentInjector\n-  #149 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\\ndate: today\\n\\ncontent: Bananas are healthy!\\nsource: my doctor\\nreliability: 100%\n-  #150 = Class              #212          // java/util/stream/Stream\n-  #151 = NameAndType        #213:#216     // builder:()Ljava/util/stream/Stream$Builder;\n-  #152 = Utf8               java/lang/Object\n-  #153 = Utf8               BootstrapMethods\n-  #154 = MethodHandle       6:#217        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #155 = MethodType         #211          //  (Ljava/lang/Object;)Ljava/lang/Object;\n-  #156 = MethodHandle       8:#22         // REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n-  #157 = MethodType         #102          //  (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #158 = NameAndType        #210:#218     // apply:()Ljava/util/function/Function;\n-  #159 = Class              #219          // org/junit/jupiter/params/provider/Arguments\n-  #160 = NameAndType        #220:#221     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #161 = Class              #222          // java/util/stream/Stream$Builder\n-  #162 = NameAndType        #208:#223     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #163 = MethodHandle       6:#224        // REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #164 = NameAndType        #225:#92      // build:()Ljava/util/stream/Stream;\n-  #165 = Utf8               {{userMessage}}\\n{{contents}}\n-  #166 = Class              #226          // dev/langchain4j/model/input/PromptTemplate\n-  #167 = NameAndType        #179:#227     // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #168 = Utf8               Tell me about bananas.\\nBananas are awesome!\\n\\nBananas are healthy!\n-  #169 = MethodHandle       8:#228        // REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #170 = MethodType         #100          //  (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #171 = MethodHandle       6:#229        // REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #172 = NameAndType        #213:#231     // builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-  #173 = Class              #232          // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder\n-  #174 = NameAndType        #95:#233      // promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-  #175 = NameAndType        #225:#234     // build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n-  #176 = NameAndType        #78:#235      // metadataKeysToInclude:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-  #177 = Utf8               dev/langchain4j/rag/content/injector/DefaultContentInjectorTest\n-  #178 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #179 = Utf8               from\n-  #180 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #181 = Utf8               java/util/Collections\n-  #182 = Utf8               emptyList\n-  #183 = Utf8               ()Ljava/util/List;\n-  #184 = Utf8               inject\n-  #185 = Utf8               (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n-  #186 = Utf8               org/assertj/core/api/Assertions\n-  #187 = Utf8               assertThat\n-  #188 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #189 = Utf8               org/assertj/core/api/ObjectAssert\n-  #190 = Utf8               isEqualTo\n-  #191 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #192 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #193 = Utf8               singletonList\n-  #194 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #195 = Utf8               text\n-  #196 = Utf8               ()Ljava/lang/String;\n-  #197 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #198 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #199 = Utf8               dev/langchain4j/data/document/Metadata\n-  #200 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-  #201 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #202 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n-  #203 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-  #204 = Utf8               (Ljava/util/List;)V\n-  #205 = Utf8               java/util/Arrays\n-  #206 = Utf8               asList\n-  #207 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #208 = Utf8               add\n-  #209 = Utf8               java/util/function/Function\n-  #210 = Utf8               apply\n-  #211 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #212 = Utf8               java/util/stream/Stream\n-  #213 = Utf8               builder\n-  #214 = Utf8               Builder\n-  #215 = Utf8               InnerClasses\n-  #216 = Utf8               ()Ljava/util/stream/Stream$Builder;\n-  #217 = Methodref          #236.#237     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #218 = Utf8               ()Ljava/util/function/Function;\n-  #219 = Utf8               org/junit/jupiter/params/provider/Arguments\n-  #220 = Utf8               of\n-  #221 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-  #222 = Utf8               java/util/stream/Stream$Builder\n-  #223 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-  #224 = Methodref          #54.#238      // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #225 = Utf8               build\n-  #226 = Utf8               dev/langchain4j/model/input/PromptTemplate\n-  #227 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #228 = Methodref          #5.#239       // dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #229 = Methodref          #54.#240      // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #230 = Utf8               DefaultContentInjectorBuilder\n-  #231 = Utf8               ()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-  #232 = Utf8               dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder\n-  #233 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-  #234 = Utf8               ()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n-  #235 = Utf8               (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-  #236 = Class              #241          // java/lang/invoke/LambdaMetafactory\n-  #237 = NameAndType        #242:#245     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #238 = NameAndType        #101:#102     // lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #239 = NameAndType        #55:#246      // \"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #240 = NameAndType        #99:#100      // lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  #241 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #242 = Utf8               metafactory\n-  #243 = Class              #248          // java/lang/invoke/MethodHandles$Lookup\n-  #244 = Utf8               Lookup\n-  #245 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #246 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #247 = Class              #249          // java/lang/invoke/MethodHandles\n-  #248 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #249 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // Tell me about bananas.\n+    #8 = Utf8               Tell me about bananas.\n+    #9 = Methodref          #10.#11       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #10 = Class              #12           // dev/langchain4j/data/message/UserMessage\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #12 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #15 = Methodref          #16.#17       // java/util/Collections.emptyList:()Ljava/util/List;\n+   #16 = Class              #18           // java/util/Collections\n+   #17 = NameAndType        #19:#20       // emptyList:()Ljava/util/List;\n+   #18 = Utf8               java/util/Collections\n+   #19 = Utf8               emptyList\n+   #20 = Utf8               ()Ljava/util/List;\n+   #21 = Class              #22           // dev/langchain4j/rag/content/injector/DefaultContentInjector\n+   #22 = Utf8               dev/langchain4j/rag/content/injector/DefaultContentInjector\n+   #23 = Methodref          #21.#3        // dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n+   #24 = InterfaceMethodref #25.#26       // dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+   #25 = Class              #27           // dev/langchain4j/rag/content/injector/ContentInjector\n+   #26 = NameAndType        #28:#29       // inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+   #27 = Utf8               dev/langchain4j/rag/content/injector/ContentInjector\n+   #28 = Utf8               inject\n+   #29 = Utf8               (Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+   #30 = Methodref          #31.#32       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #31 = Class              #33           // org/assertj/core/api/Assertions\n+   #32 = NameAndType        #34:#35       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #33 = Utf8               org/assertj/core/api/Assertions\n+   #34 = Utf8               assertThat\n+   #35 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #36 = Methodref          #37.#38       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #37 = Class              #39           // org/assertj/core/api/ObjectAssert\n+   #38 = NameAndType        #40:#41       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #39 = Utf8               org/assertj/core/api/ObjectAssert\n+   #40 = Utf8               isEqualTo\n+   #41 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #42 = String             #43           // Bananas are awesome!\n+   #43 = Utf8               Bananas are awesome!\n+   #44 = Methodref          #45.#46       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #45 = Class              #47           // dev/langchain4j/rag/content/Content\n+   #46 = NameAndType        #13:#48       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #47 = Utf8               dev/langchain4j/rag/content/Content\n+   #48 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #49 = Methodref          #16.#50       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #50 = NameAndType        #51:#52       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #51 = Utf8               singletonList\n+   #52 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #53 = Methodref          #10.#54       // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+   #54 = NameAndType        #55:#56       // text:()Ljava/lang/String;\n+   #55 = Utf8               text\n+   #56 = Utf8               ()Ljava/lang/String;\n+   #57 = Methodref          #31.#58       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #58 = NameAndType        #34:#59       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #59 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #60 = String             #61           // Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\n+   #61 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\n+   #62 = Methodref          #63.#64       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #63 = Class              #65           // org/assertj/core/api/AbstractStringAssert\n+   #64 = NameAndType        #40:#59       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #65 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #66 = String             #67           // source\n+   #67 = Utf8               source\n+   #68 = String             #69           // trust me bro\n+   #69 = Utf8               trust me bro\n+   #70 = Methodref          #71.#72       // dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #71 = Class              #73           // dev/langchain4j/data/document/Metadata\n+   #72 = NameAndType        #13:#74       // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #73 = Utf8               dev/langchain4j/data/document/Metadata\n+   #74 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+   #75 = Methodref          #76.#77       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+   #76 = Class              #78           // dev/langchain4j/data/segment/TextSegment\n+   #77 = NameAndType        #13:#79       // from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+   #78 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #79 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+   #80 = Methodref          #45.#81       // dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+   #81 = NameAndType        #13:#82       // from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+   #82 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+   #83 = Methodref          #21.#84       // dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n+   #84 = NameAndType        #5:#85        // \"<init>\":(Ljava/util/List;)V\n+   #85 = Utf8               (Ljava/util/List;)V\n+   #86 = String             #87           // Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\n+   #87 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\n+   #88 = String             #89           // Bananas are healthy!\n+   #89 = Utf8               Bananas are healthy!\n+   #90 = Methodref          #91.#92       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #91 = Class              #93           // java/util/Arrays\n+   #92 = NameAndType        #94:#95       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #93 = Utf8               java/util/Arrays\n+   #94 = Utf8               asList\n+   #95 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #96 = String             #97           // Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\\n\\nBananas are healthy!\n+   #97 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\\n\\nBananas are healthy!\n+   #98 = String             #99           // date\n+   #99 = Utf8               date\n+  #100 = String             #101          // today\n+  #101 = Utf8               today\n+  #102 = Methodref          #71.#103      // dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #103 = NameAndType        #104:#74      // add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+  #104 = Utf8               add\n+  #105 = String             #106          // my doctor\n+  #106 = Utf8               my doctor\n+  #107 = String             #108          // reliability\n+  #108 = Utf8               reliability\n+  #109 = String             #110          // 100%\n+  #110 = Utf8               100%\n+  #111 = Class              #112          // java/lang/String\n+  #112 = Utf8               java/lang/String\n+  #113 = InterfaceMethodref #114.#115     // java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #114 = Class              #116          // java/util/function/Function\n+  #115 = NameAndType        #117:#118     // apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #116 = Utf8               java/util/function/Function\n+  #117 = Utf8               apply\n+  #118 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #119 = String             #120          // Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\\ndate: today\\n\\ncontent: Bananas are healthy!\\nsource: my doctor\\nreliability: 100%\n+  #120 = Utf8               Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\\ndate: today\\n\\ncontent: Bananas are healthy!\\nsource: my doctor\\nreliability: 100%\n+  #121 = InterfaceMethodref #122.#123     // java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+  #122 = Class              #124          // java/util/stream/Stream\n+  #123 = NameAndType        #125:#126     // builder:()Ljava/util/stream/Stream$Builder;\n+  #124 = Utf8               java/util/stream/Stream\n+  #125 = Utf8               builder\n+  #126 = Utf8               ()Ljava/util/stream/Stream$Builder;\n+  #127 = InvokeDynamic      #0:#128       // #0:apply:()Ljava/util/function/Function;\n+  #128 = NameAndType        #117:#129     // apply:()Ljava/util/function/Function;\n+  #129 = Utf8               ()Ljava/util/function/Function;\n+  #130 = InterfaceMethodref #131.#132     // org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #131 = Class              #133          // org/junit/jupiter/params/provider/Arguments\n+  #132 = NameAndType        #134:#135     // of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #133 = Utf8               org/junit/jupiter/params/provider/Arguments\n+  #134 = Utf8               of\n+  #135 = Utf8               ([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+  #136 = InterfaceMethodref #137.#138     // java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #137 = Class              #139          // java/util/stream/Stream$Builder\n+  #138 = NameAndType        #104:#140     // add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #139 = Utf8               java/util/stream/Stream$Builder\n+  #140 = Utf8               (Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+  #141 = InvokeDynamic      #1:#128       // #1:apply:()Ljava/util/function/Function;\n+  #142 = InterfaceMethodref #137.#143     // java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+  #143 = NameAndType        #144:#145     // build:()Ljava/util/stream/Stream;\n+  #144 = Utf8               build\n+  #145 = Utf8               ()Ljava/util/stream/Stream;\n+  #146 = String             #147          // {{userMessage}}\\n{{contents}}\n+  #147 = Utf8               {{userMessage}}\\n{{contents}}\n+  #148 = Methodref          #149.#150     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #149 = Class              #151          // dev/langchain4j/model/input/PromptTemplate\n+  #150 = NameAndType        #13:#152      // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #151 = Utf8               dev/langchain4j/model/input/PromptTemplate\n+  #152 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #153 = String             #154          // Tell me about bananas.\\nBananas are awesome!\\n\\nBananas are healthy!\n+  #154 = Utf8               Tell me about bananas.\\nBananas are awesome!\\n\\nBananas are healthy!\n+  #155 = InvokeDynamic      #2:#128       // #2:apply:()Ljava/util/function/Function;\n+  #156 = InvokeDynamic      #3:#128       // #3:apply:()Ljava/util/function/Function;\n+  #157 = Methodref          #21.#158      // dev/langchain4j/rag/content/injector/DefaultContentInjector.builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #158 = NameAndType        #125:#159     // builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #159 = Utf8               ()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #160 = Methodref          #161.#162     // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #161 = Class              #163          // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder\n+  #162 = NameAndType        #164:#165     // promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #163 = Utf8               dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder\n+  #164 = Utf8               promptTemplate\n+  #165 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #166 = Methodref          #161.#167     // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n+  #167 = NameAndType        #144:#168     // build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n+  #168 = Utf8               ()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n+  #169 = Methodref          #161.#170     // dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.metadataKeysToInclude:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #170 = NameAndType        #171:#172     // metadataKeysToInclude:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #171 = Utf8               metadataKeysToInclude\n+  #172 = Utf8               (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+  #173 = Class              #174          // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest\n+  #174 = Utf8               dev/langchain4j/rag/content/injector/DefaultContentInjectorTest\n+  #175 = Utf8               Code\n+  #176 = Utf8               LineNumberTable\n+  #177 = Utf8               LocalVariableTable\n+  #178 = Utf8               this\n+  #179 = Utf8               Ldev/langchain4j/rag/content/injector/DefaultContentInjectorTest;\n+  #180 = Utf8               should_not_inject_when_no_content\n+  #181 = Utf8               userMessage\n+  #182 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+  #183 = Utf8               contents\n+  #184 = Utf8               Ljava/util/List;\n+  #185 = Utf8               injector\n+  #186 = Utf8               Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #187 = Utf8               injected\n+  #188 = Utf8               LocalVariableTypeTable\n+  #189 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #190 = Utf8               RuntimeVisibleAnnotations\n+  #191 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #192 = Utf8               should_inject_single_content\n+  #193 = Utf8               should_inject_single_content_with_metadata\n+  #194 = Utf8               segment\n+  #195 = Utf8               Ldev/langchain4j/data/segment/TextSegment;\n+  #196 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+  #197 = Utf8               should_inject_multiple_contents\n+  #198 = Utf8               should_inject_multiple_contents_with_multiple_metadata_entries\n+  #199 = Utf8               (Ljava/util/function/Function;)V\n+  #200 = Utf8               contentInjectorProvider\n+  #201 = Utf8               Ljava/util/function/Function;\n+  #202 = Utf8               segment1\n+  #203 = Utf8               segment2\n+  #204 = Utf8               Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;\n+  #205 = Utf8               Signature\n+  #206 = Utf8               (Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n+  #207 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #208 = Utf8               Lorg/junit/jupiter/params/provider/MethodSource;\n+  #209 = Utf8               ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+  #210 = Utf8               should_inject_multiple_contents_with_custom_prompt_template\n+  #211 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n+  #212 = Utf8               Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;\n+  #213 = Utf8               (Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n+  #214 = Utf8               lambda$should_inject_multiple_contents_with_custom_prompt_template$1\n+  #215 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #216 = Utf8               lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0\n+  #217 = Utf8               (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #218 = Utf8               SourceFile\n+  #219 = Utf8               DefaultContentInjectorTest.java\n+  #220 = Utf8               BootstrapMethods\n+  #221 = MethodHandle       6:#222        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #222 = Methodref          #223.#224     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #223 = Class              #225          // java/lang/invoke/LambdaMetafactory\n+  #224 = NameAndType        #226:#227     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #225 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #226 = Utf8               metafactory\n+  #227 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #228 = MethodType         #118          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #229 = MethodHandle       8:#83         // REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n+  #230 = MethodType         #217          //  (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #231 = MethodHandle       6:#232        // REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #232 = Methodref          #173.#233     // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #233 = NameAndType        #216:#217     // lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #234 = MethodHandle       8:#235        // REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #235 = Methodref          #21.#236      // dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #236 = NameAndType        #5:#237       // \"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #237 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #238 = MethodType         #215          //  (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #239 = MethodHandle       6:#240        // REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #240 = Methodref          #173.#241     // dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #241 = NameAndType        #214:#215     // lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  #242 = Utf8               InnerClasses\n+  #243 = Utf8               Builder\n+  #244 = Utf8               DefaultContentInjectorBuilder\n+  #245 = Class              #246          // java/lang/invoke/MethodHandles$Lookup\n+  #246 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #247 = Class              #248          // java/lang/invoke/MethodHandles\n+  #248 = Utf8               java/lang/invoke/MethodHandles\n+  #249 = Utf8               Lookup\n {\n   dev.langchain4j.rag.content.injector.DefaultContentInjectorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -273,32 +273,32 @@\n             0       5     0  this   Ldev/langchain4j/rag/content/injector/DefaultContentInjectorTest;\n \n   void should_not_inject_when_no_content();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: ldc           #2                  // String Tell me about bananas.\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String Tell me about bananas.\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: astore_1\n-         6: invokestatic  #4                  // Method java/util/Collections.emptyList:()Ljava/util/List;\n+         6: invokestatic  #15                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n          9: astore_2\n-        10: new           #5                  // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n+        10: new           #21                 // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n         13: dup\n-        14: invokespecial #6                  // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n+        14: invokespecial #23                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n         17: astore_3\n         18: aload_3\n         19: aload_2\n         20: aload_1\n-        21: invokeinterface #7,  3            // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+        21: invokeinterface #24,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n         26: astore        4\n         28: aload         4\n-        30: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        30: invokestatic  #30                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         33: aload_1\n-        34: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        34: invokevirtual #36                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         37: pop\n         38: return\n       LineNumberTable:\n         line 28: 0\n         line 30: 6\n         line 32: 10\n         line 35: 18\n@@ -311,43 +311,43 @@\n            10      29     2 contents   Ljava/util/List;\n            18      21     3 injector   Ldev/langchain4j/rag/content/injector/ContentInjector;\n            28      11     4 injected   Ldev/langchain4j/data/message/UserMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            10      29     2 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #73()\n+      0: #191()\n         org.junit.jupiter.api.Test\n \n   void should_inject_single_content();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=5, args_size=1\n-         0: ldc           #2                  // String Tell me about bananas.\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String Tell me about bananas.\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: astore_1\n-         6: ldc           #10                 // String Bananas are awesome!\n-         8: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-        11: invokestatic  #12                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         6: ldc           #42                 // String Bananas are awesome!\n+         8: invokestatic  #44                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        11: invokestatic  #49                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n         14: astore_2\n-        15: new           #5                  // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n+        15: new           #21                 // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n         18: dup\n-        19: invokespecial #6                  // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n+        19: invokespecial #23                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n         22: astore_3\n         23: aload_3\n         24: aload_2\n         25: aload_1\n-        26: invokeinterface #7,  3            // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+        26: invokeinterface #24,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n         31: astore        4\n         33: aload         4\n-        35: invokevirtual #13                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        38: invokestatic  #14                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        41: ldc           #15                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\n-        43: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        35: invokevirtual #53                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        38: invokestatic  #57                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        41: ldc           #60                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\n+        43: invokevirtual #62                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         46: pop\n         47: return\n       LineNumberTable:\n         line 45: 0\n         line 47: 6\n         line 49: 15\n         line 52: 23\n@@ -360,53 +360,53 @@\n            15      33     2 contents   Ljava/util/List;\n            23      25     3 injector   Ldev/langchain4j/rag/content/injector/ContentInjector;\n            33      15     4 injected   Ldev/langchain4j/data/message/UserMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            15      33     2 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #73()\n+      0: #191()\n         org.junit.jupiter.api.Test\n \n   void should_inject_single_content_with_metadata();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=7, args_size=1\n-         0: ldc           #2                  // String Tell me about bananas.\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String Tell me about bananas.\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: astore_1\n-         6: ldc           #10                 // String Bananas are awesome!\n-         8: ldc           #17                 // String source\n-        10: ldc           #18                 // String trust me bro\n-        12: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        15: invokestatic  #20                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+         6: ldc           #42                 // String Bananas are awesome!\n+         8: ldc           #66                 // String source\n+        10: ldc           #68                 // String trust me bro\n+        12: invokestatic  #70                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        15: invokestatic  #75                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         18: astore_2\n         19: aload_2\n-        20: invokestatic  #21                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n-        23: invokestatic  #12                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        20: invokestatic  #80                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+        23: invokestatic  #49                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n         26: astore_3\n-        27: ldc           #17                 // String source\n-        29: invokestatic  #12                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        27: ldc           #66                 // String source\n+        29: invokestatic  #49                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n         32: astore        4\n-        34: new           #5                  // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n+        34: new           #21                 // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n         37: dup\n         38: aload         4\n-        40: invokespecial #22                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n+        40: invokespecial #83                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n         43: astore        5\n         45: aload         5\n         47: aload_3\n         48: aload_1\n-        49: invokeinterface #7,  3            // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+        49: invokeinterface #24,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n         54: astore        6\n         56: aload         6\n-        58: invokevirtual #13                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        61: invokestatic  #14                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        64: ldc           #23                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\n-        66: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        58: invokevirtual #53                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        61: invokestatic  #57                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        64: ldc           #86                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\n+        66: invokevirtual #62                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         69: pop\n         70: return\n       LineNumberTable:\n         line 67: 0\n         line 69: 6\n         line 71: 12\n         line 69: 15\n@@ -426,53 +426,53 @@\n            45      26     5 injector   Ldev/langchain4j/rag/content/injector/ContentInjector;\n            56      15     6 injected   Ldev/langchain4j/data/message/UserMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            27      44     3 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n            34      37     4 metadataKeysToInclude   Ljava/util/List<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #73()\n+      0: #191()\n         org.junit.jupiter.api.Test\n \n   void should_inject_multiple_contents();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=5, args_size=1\n-         0: ldc           #2                  // String Tell me about bananas.\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String Tell me about bananas.\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: astore_1\n          6: iconst_2\n-         7: anewarray     #24                 // class dev/langchain4j/rag/content/Content\n+         7: anewarray     #45                 // class dev/langchain4j/rag/content/Content\n         10: dup\n         11: iconst_0\n-        12: ldc           #10                 // String Bananas are awesome!\n-        14: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        12: ldc           #42                 // String Bananas are awesome!\n+        14: invokestatic  #44                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         17: aastore\n         18: dup\n         19: iconst_1\n-        20: ldc           #25                 // String Bananas are healthy!\n-        22: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        20: ldc           #88                 // String Bananas are healthy!\n+        22: invokestatic  #44                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         25: aastore\n-        26: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        26: invokestatic  #90                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         29: astore_2\n-        30: new           #5                  // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n+        30: new           #21                 // class dev/langchain4j/rag/content/injector/DefaultContentInjector\n         33: dup\n-        34: invokespecial #6                  // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n+        34: invokespecial #23                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":()V\n         37: astore_3\n         38: aload_3\n         39: aload_2\n         40: aload_1\n-        41: invokeinterface #7,  3            // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+        41: invokeinterface #24,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n         46: astore        4\n         48: aload         4\n-        50: invokevirtual #13                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        53: invokestatic  #14                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        56: ldc           #27                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\\n\\nBananas are healthy!\n-        58: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        50: invokevirtual #53                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        53: invokestatic  #57                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        56: ldc           #96                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\nBananas are awesome!\\n\\nBananas are healthy!\n+        58: invokevirtual #62                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         61: pop\n         62: return\n       LineNumberTable:\n         line 96: 0\n         line 98: 6\n         line 99: 14\n         line 100: 22\n@@ -488,88 +488,88 @@\n            30      33     2 contents   Ljava/util/List;\n            38      25     3 injector   Ldev/langchain4j/rag/content/injector/ContentInjector;\n            48      15     4 injected   Ldev/langchain4j/data/message/UserMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            30      33     2 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #73()\n+      0: #191()\n         org.junit.jupiter.api.Test\n \n   void should_inject_multiple_contents_with_multiple_metadata_entries(java.util.function.Function<java.util.List<java.lang.String>, dev.langchain4j.rag.content.injector.ContentInjector>);\n     descriptor: (Ljava/util/function/Function;)V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=9, args_size=2\n-         0: ldc           #2                  // String Tell me about bananas.\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String Tell me about bananas.\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: astore_2\n-         6: ldc           #10                 // String Bananas are awesome!\n-         8: ldc           #17                 // String source\n-        10: ldc           #18                 // String trust me bro\n-        12: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        15: ldc           #28                 // String date\n-        17: ldc           #29                 // String today\n-        19: invokevirtual #30                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        22: invokestatic  #20                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+         6: ldc           #42                 // String Bananas are awesome!\n+         8: ldc           #66                 // String source\n+        10: ldc           #68                 // String trust me bro\n+        12: invokestatic  #70                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        15: ldc           #98                 // String date\n+        17: ldc           #100                // String today\n+        19: invokevirtual #102                // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        22: invokestatic  #75                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         25: astore_3\n-        26: ldc           #25                 // String Bananas are healthy!\n-        28: ldc           #17                 // String source\n-        30: ldc           #31                 // String my doctor\n-        32: invokestatic  #19                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        35: ldc           #32                 // String reliability\n-        37: ldc           #33                 // String 100%\n-        39: invokevirtual #30                 // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n-        42: invokestatic  #20                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n+        26: ldc           #88                 // String Bananas are healthy!\n+        28: ldc           #66                 // String source\n+        30: ldc           #105                // String my doctor\n+        32: invokestatic  #70                 // Method dev/langchain4j/data/document/Metadata.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        35: ldc           #107                // String reliability\n+        37: ldc           #109                // String 100%\n+        39: invokevirtual #102                // Method dev/langchain4j/data/document/Metadata.add:(Ljava/lang/String;Ljava/lang/String;)Ldev/langchain4j/data/document/Metadata;\n+        42: invokestatic  #75                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;Ldev/langchain4j/data/document/Metadata;)Ldev/langchain4j/data/segment/TextSegment;\n         45: astore        4\n         47: iconst_2\n-        48: anewarray     #24                 // class dev/langchain4j/rag/content/Content\n+        48: anewarray     #45                 // class dev/langchain4j/rag/content/Content\n         51: dup\n         52: iconst_0\n         53: aload_3\n-        54: invokestatic  #21                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+        54: invokestatic  #80                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n         57: aastore\n         58: dup\n         59: iconst_1\n         60: aload         4\n-        62: invokestatic  #21                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n+        62: invokestatic  #80                 // Method dev/langchain4j/rag/content/Content.from:(Ldev/langchain4j/data/segment/TextSegment;)Ldev/langchain4j/rag/content/Content;\n         65: aastore\n-        66: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        66: invokestatic  #90                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         69: astore        5\n         71: iconst_3\n-        72: anewarray     #34                 // class java/lang/String\n+        72: anewarray     #111                // class java/lang/String\n         75: dup\n         76: iconst_0\n-        77: ldc           #17                 // String source\n+        77: ldc           #66                 // String source\n         79: aastore\n         80: dup\n         81: iconst_1\n-        82: ldc           #32                 // String reliability\n+        82: ldc           #107                // String reliability\n         84: aastore\n         85: dup\n         86: iconst_2\n-        87: ldc           #28                 // String date\n+        87: ldc           #98                 // String date\n         89: aastore\n-        90: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        90: invokestatic  #90                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         93: astore        6\n         95: aload_1\n         96: aload         6\n-        98: invokeinterface #35,  2           // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-       103: checkcast     #36                 // class dev/langchain4j/rag/content/injector/ContentInjector\n+        98: invokeinterface #113,  2          // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+       103: checkcast     #25                 // class dev/langchain4j/rag/content/injector/ContentInjector\n        106: astore        7\n        108: aload         7\n        110: aload         5\n        112: aload_2\n-       113: invokeinterface #7,  3            // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+       113: invokeinterface #24,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n        118: astore        8\n        120: aload         8\n-       122: invokevirtual #13                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-       125: invokestatic  #14                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       128: ldc           #37                 // String Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\\ndate: today\\n\\ncontent: Bananas are healthy!\\nsource: my doctor\\nreliability: 100%\n-       130: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       122: invokevirtual #53                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+       125: invokestatic  #57                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       128: ldc           #119                // String Tell me about bananas.\\n\\nAnswer using the following information:\\ncontent: Bananas are awesome!\\nsource: trust me bro\\ndate: today\\n\\ncontent: Bananas are healthy!\\nsource: my doctor\\nreliability: 100%\n+       130: invokevirtual #62                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        133: pop\n        134: return\n       LineNumberTable:\n         line 126: 0\n         line 128: 6\n         line 130: 12\n         line 131: 19\n@@ -596,93 +596,93 @@\n           108      27     7 injector   Ldev/langchain4j/rag/content/injector/ContentInjector;\n           120      15     8 injected   Ldev/langchain4j/data/message/UserMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0     135     1 contentInjectorProvider   Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;\n            71      64     5 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n            95      40     6 metadataKeysToInclude   Ljava/util/List<Ljava/lang/String;>;\n-    Signature: #89                          // (Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n+    Signature: #206                         // (Ljava/util/function/Function<Ljava/util/List<Ljava/lang/String;>;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n     RuntimeVisibleAnnotations:\n-      0: #90()\n+      0: #207()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #91()\n+      1: #208()\n         org.junit.jupiter.params.provider.MethodSource\n \n   static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> should_inject_multiple_contents_with_multiple_metadata_entries();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: invokestatic  #38                 // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+         0: invokestatic  #121                // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n          3: iconst_1\n-         4: anewarray     #39                 // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n-         9: invokedynamic #40,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+         9: invokedynamic #127,  0            // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n         14: aastore\n-        15: invokestatic  #41                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        18: invokeinterface #42,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        15: invokestatic  #130                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        18: invokeinterface #136,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         23: iconst_1\n-        24: anewarray     #39                 // class java/lang/Object\n+        24: anewarray     #2                  // class java/lang/Object\n         27: dup\n         28: iconst_0\n-        29: invokedynamic #43,  0             // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n+        29: invokedynamic #141,  0            // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n         34: aastore\n-        35: invokestatic  #41                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        38: invokeinterface #42,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-        43: invokeinterface #44,  1           // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+        35: invokestatic  #130                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        38: invokeinterface #136,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        43: invokeinterface #142,  1          // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n         48: areturn\n       LineNumberTable:\n         line 163: 0\n         line 164: 15\n         line 167: 35\n         line 173: 43\n         line 163: 48\n-    Signature: #93                          // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #209                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n \n   void should_inject_multiple_contents_with_custom_prompt_template(java.util.function.Function<dev.langchain4j.model.input.PromptTemplate, dev.langchain4j.rag.content.injector.ContentInjector>);\n     descriptor: (Ljava/util/function/Function;)V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=7, args_size=2\n-         0: ldc           #45                 // String {{userMessage}}\\n{{contents}}\n-         2: invokestatic  #46                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #146                // String {{userMessage}}\\n{{contents}}\n+         2: invokestatic  #148                // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_2\n-         6: ldc           #2                  // String Tell me about bananas.\n-         8: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         6: ldc           #7                  // String Tell me about bananas.\n+         8: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         11: astore_3\n         12: iconst_2\n-        13: anewarray     #24                 // class dev/langchain4j/rag/content/Content\n+        13: anewarray     #45                 // class dev/langchain4j/rag/content/Content\n         16: dup\n         17: iconst_0\n-        18: ldc           #10                 // String Bananas are awesome!\n-        20: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        18: ldc           #42                 // String Bananas are awesome!\n+        20: invokestatic  #44                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         23: aastore\n         24: dup\n         25: iconst_1\n-        26: ldc           #25                 // String Bananas are healthy!\n-        28: invokestatic  #11                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        26: ldc           #88                 // String Bananas are healthy!\n+        28: invokestatic  #44                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         31: aastore\n-        32: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        32: invokestatic  #90                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         35: astore        4\n         37: aload_1\n         38: aload_2\n-        39: invokeinterface #35,  2           // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n-        44: checkcast     #36                 // class dev/langchain4j/rag/content/injector/ContentInjector\n+        39: invokeinterface #113,  2          // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;\n+        44: checkcast     #25                 // class dev/langchain4j/rag/content/injector/ContentInjector\n         47: astore        5\n         49: aload         5\n         51: aload         4\n         53: aload_3\n-        54: invokeinterface #7,  3            // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n+        54: invokeinterface #24,  3           // InterfaceMethod dev/langchain4j/rag/content/injector/ContentInjector.inject:(Ljava/util/List;Ldev/langchain4j/data/message/UserMessage;)Ldev/langchain4j/data/message/UserMessage;\n         59: astore        6\n         61: aload         6\n-        63: invokevirtual #13                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        66: invokestatic  #14                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        69: ldc           #47                 // String Tell me about bananas.\\nBananas are awesome!\\n\\nBananas are healthy!\n-        71: invokevirtual #16                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        63: invokevirtual #53                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        66: invokestatic  #57                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        69: ldc           #153                // String Tell me about bananas.\\nBananas are awesome!\\n\\nBananas are healthy!\n+        71: invokevirtual #62                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         74: pop\n         75: return\n       LineNumberTable:\n         line 182: 0\n         line 184: 6\n         line 185: 12\n         line 186: 20\n@@ -701,62 +701,62 @@\n            37      39     4 contents   Ljava/util/List;\n            49      27     5 injector   Ldev/langchain4j/rag/content/injector/ContentInjector;\n            61      15     6 injected   Ldev/langchain4j/data/message/UserMessage;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      76     1 contentInjectorProvider   Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;\n            37      39     4 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-    Signature: #98                          // (Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n+    Signature: #213                         // (Ljava/util/function/Function<Ldev/langchain4j/model/input/PromptTemplate;Ldev/langchain4j/rag/content/injector/ContentInjector;>;)V\n     RuntimeVisibleAnnotations:\n-      0: #90()\n+      0: #207()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #91()\n+      1: #208()\n         org.junit.jupiter.params.provider.MethodSource\n \n   static java.util.stream.Stream<org.junit.jupiter.params.provider.Arguments> should_inject_multiple_contents_with_custom_prompt_template();\n     descriptor: ()Ljava/util/stream/Stream;\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: invokestatic  #38                 // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n+         0: invokestatic  #121                // InterfaceMethod java/util/stream/Stream.builder:()Ljava/util/stream/Stream$Builder;\n          3: iconst_1\n-         4: anewarray     #39                 // class java/lang/Object\n+         4: anewarray     #2                  // class java/lang/Object\n          7: dup\n          8: iconst_0\n-         9: invokedynamic #48,  0             // InvokeDynamic #2:apply:()Ljava/util/function/Function;\n+         9: invokedynamic #155,  0            // InvokeDynamic #2:apply:()Ljava/util/function/Function;\n         14: aastore\n-        15: invokestatic  #41                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        18: invokeinterface #42,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        15: invokestatic  #130                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        18: invokeinterface #136,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n         23: iconst_1\n-        24: anewarray     #39                 // class java/lang/Object\n+        24: anewarray     #2                  // class java/lang/Object\n         27: dup\n         28: iconst_0\n-        29: invokedynamic #49,  0             // InvokeDynamic #3:apply:()Ljava/util/function/Function;\n+        29: invokedynamic #156,  0            // InvokeDynamic #3:apply:()Ljava/util/function/Function;\n         34: aastore\n-        35: invokestatic  #41                 // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n-        38: invokeinterface #42,  2           // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n-        43: invokeinterface #44,  1           // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n+        35: invokestatic  #130                // InterfaceMethod org/junit/jupiter/params/provider/Arguments.of:([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments;\n+        38: invokeinterface #136,  2          // InterfaceMethod java/util/stream/Stream$Builder.add:(Ljava/lang/Object;)Ljava/util/stream/Stream$Builder;\n+        43: invokeinterface #142,  1          // InterfaceMethod java/util/stream/Stream$Builder.build:()Ljava/util/stream/Stream;\n         48: areturn\n       LineNumberTable:\n         line 204: 0\n         line 205: 15\n         line 208: 35\n         line 214: 43\n         line 204: 48\n-    Signature: #93                          // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n+    Signature: #209                         // ()Ljava/util/stream/Stream<Lorg/junit/jupiter/params/provider/Arguments;>;\n \n   private static dev.langchain4j.rag.content.injector.ContentInjector lambda$should_inject_multiple_contents_with_custom_prompt_template$1(dev.langchain4j.model.input.PromptTemplate);\n     descriptor: (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #50                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+         0: invokestatic  #157                // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n          3: aload_0\n-         4: invokevirtual #51                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-         7: invokevirtual #52                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n+         4: invokevirtual #160                // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+         7: invokevirtual #166                // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n         10: areturn\n       LineNumberTable:\n         line 210: 0\n         line 211: 4\n         line 212: 7\n         line 210: 10\n       LocalVariableTable:\n@@ -764,47 +764,47 @@\n             0      11     0 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n \n   private static dev.langchain4j.rag.content.injector.ContentInjector lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0(java.util.List);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #50                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+         0: invokestatic  #157                // Method dev/langchain4j/rag/content/injector/DefaultContentInjector.builder:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n          3: aload_0\n-         4: invokevirtual #53                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.metadataKeysToInclude:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n-         7: invokevirtual #52                 // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n+         4: invokevirtual #169                // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.metadataKeysToInclude:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder;\n+         7: invokevirtual #166                // Method dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder.build:()Ldev/langchain4j/rag/content/injector/DefaultContentInjector;\n         10: areturn\n       LineNumberTable:\n         line 169: 0\n         line 170: 4\n         line 171: 7\n         line 169: 10\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0 metadataKeysToInclude   Ljava/util/List;\n }\n SourceFile: \"DefaultContentInjectorTest.java\"\n-InnerClasses:\n-  public static #214= #161 of #150;       // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n-  public static #230= #173 of #5;         // DefaultContentInjectorBuilder=class dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder of class dev/langchain4j/rag/content/injector/DefaultContentInjector\n-  public static final #244= #243 of #247; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #154 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #221 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #155 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #156 REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n-      #157 (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  1: #154 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #228 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #229 REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ljava/util/List;)V\n+      #230 (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  1: #221 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #155 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #163 REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-      #157 (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  2: #154 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #228 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #231 REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_multiple_metadata_entries$0:(Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+      #230 (Ljava/util/List;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  2: #221 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #155 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #169 REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n-      #170 (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-  3: #154 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #228 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #234 REF_newInvokeSpecial dev/langchain4j/rag/content/injector/DefaultContentInjector.\"<init>\":(Ldev/langchain4j/model/input/PromptTemplate;)V\n+      #238 (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+  3: #221 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #155 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #171 REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n-      #170 (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+      #228 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #239 REF_invokeStatic dev/langchain4j/rag/content/injector/DefaultContentInjectorTest.lambda$should_inject_multiple_contents_with_custom_prompt_template$1:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+      #238 (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/content/injector/ContentInjector;\n+InnerClasses:\n+  public static #243= #137 of #122;       // Builder=class java/util/stream/Stream$Builder of class java/util/stream/Stream\n+  public static #244= #161 of #21;        // DefaultContentInjectorBuilder=class dev/langchain4j/rag/content/injector/DefaultContentInjector$DefaultContentInjectorBuilder of class dev/langchain4j/rag/content/injector/DefaultContentInjector\n+  public static final #249= #245 of #247; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest.class", "source2": "dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,239 +1,239 @@\n-  SHA-256 checksum 87de4e16e894b9d4e39784195b7ee7c5c751eb1cdb5367b98686e6bf3b058c18\n+  SHA-256 checksum d9061e2ec30dd0ed757de3edcf81da76b3c2a62080f683e4708dc71034aa2690\n   Compiled from \"EmbeddingStoreContentRetrieverTest.java\"\n class dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetrieverTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #56                         // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest\n-  super_class: #43                        // java/lang/Object\n+  this_class: #192                        // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 7, attributes: 2\n Constant pool:\n-    #1 = Methodref          #43.#93       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #94           // dev/langchain4j/store/embedding/EmbeddingStore\n-    #3 = Methodref          #95.#96       // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-    #4 = Methodref          #95.#97       // org/mockito/Mockito.any:()Ljava/lang/Object;\n-    #5 = Class              #98           // dev/langchain4j/data/embedding/Embedding\n-    #6 = Methodref          #95.#99       // org/mockito/Mockito.anyInt:()I\n-    #7 = Methodref          #95.#100      // org/mockito/Mockito.anyDouble:()D\n-    #8 = InterfaceMethodref #2.#101       // dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-    #9 = Methodref          #95.#102      // org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-   #10 = Class              #103          // dev/langchain4j/store/embedding/EmbeddingMatch\n-   #11 = Double             0.9d\n-   #13 = Methodref          #104.#105     // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #14 = String             #106          // id 1\n-   #15 = String             #107          // content 1\n-   #16 = Methodref          #108.#109     // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #17 = Methodref          #10.#110      // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #18 = Double             0.7d\n-   #20 = String             #111          // id 2\n-   #21 = String             #112          // content 2\n-   #22 = Methodref          #113.#114     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #23 = InterfaceMethodref #115.#116     // org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-   #24 = Class              #117          // java/lang/Float\n-   #25 = Methodref          #24.#118      // java/lang/Float.valueOf:(F)Ljava/lang/Float;\n-   #26 = Float              3.0f\n-   #27 = Methodref          #5.#119       // dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-   #28 = Class              #120          // dev/langchain4j/model/embedding/EmbeddingModel\n-   #29 = Methodref          #95.#121      // org/mockito/Mockito.anyString:()Ljava/lang/String;\n-   #30 = InterfaceMethodref #28.#122      // dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-   #31 = Methodref          #123.#124     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #32 = Class              #125          // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n-   #33 = Methodref          #32.#126      // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-   #34 = String             #73           // query\n-   #35 = Methodref          #127.#128     // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #36 = InterfaceMethodref #129.#130     // dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-   #37 = Methodref          #131.#132     // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #38 = Class              #133          // dev/langchain4j/rag/content/Content\n-   #39 = Methodref          #38.#134      // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #40 = Methodref          #135.#136     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #41 = Methodref          #95.#137      // org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #42 = Methodref          #127.#138     // dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-   #43 = Class              #139          // java/lang/Object\n-   #44 = Methodref          #95.#140      // org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-   #45 = Methodref          #32.#141      // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-   #46 = Methodref          #142.#143     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-   #47 = Methodref          #142.#144     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-   #48 = Methodref          #142.#145     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n-   #49 = String             #146          // content\n-   #50 = Methodref          #147.#148     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #51 = Methodref          #32.#149      // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n-   #52 = Methodref          #150.#151     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #53 = Methodref          #142.#152     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.maxResults:(Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-   #54 = Methodref          #32.#153      // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n-   #55 = Methodref          #142.#154     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.minScore:(Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-   #56 = Class              #155          // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest\n-   #57 = Utf8               <init>\n-   #58 = Utf8               ()V\n-   #59 = Utf8               Code\n-   #60 = Utf8               LineNumberTable\n-   #61 = Utf8               LocalVariableTable\n-   #62 = Utf8               this\n-   #63 = Utf8               Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest;\n-   #64 = Utf8               should_retrieve\n-   #65 = Utf8               embeddingStore\n-   #66 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore;\n-   #67 = Utf8               embedding\n-   #68 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n-   #69 = Utf8               embeddingModel\n-   #70 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModel;\n-   #71 = Utf8               contentRetriever\n-   #72 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #73 = Utf8               query\n-   #74 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #75 = Utf8               contents\n-   #76 = Utf8               Ljava/util/List;\n-   #77 = Utf8               LocalVariableTypeTable\n-   #78 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n-   #79 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n-   #80 = Utf8               RuntimeVisibleAnnotations\n-   #81 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #82 = Utf8               should_retrieve_builder\n-   #83 = Utf8               should_retrieve_with_custom_maxResults\n-   #84 = Utf8               maxResults\n-   #85 = Utf8               I\n-   #86 = Utf8               should_retrieve_with_custom_maxResults_builder\n-   #87 = Utf8               should_retrieve_with_custom_minScore\n-   #88 = Utf8               minScore\n-   #89 = Utf8               D\n-   #90 = Utf8               should_retrieve_with_custom_minScore_builder\n-   #91 = Utf8               SourceFile\n-   #92 = Utf8               EmbeddingStoreContentRetrieverTest.java\n-   #93 = NameAndType        #57:#58       // \"<init>\":()V\n-   #94 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n-   #95 = Class              #156          // org/mockito/Mockito\n-   #96 = NameAndType        #157:#158     // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-   #97 = NameAndType        #159:#160     // any:()Ljava/lang/Object;\n-   #98 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #99 = NameAndType        #161:#162     // anyInt:()I\n-  #100 = NameAndType        #163:#164     // anyDouble:()D\n-  #101 = NameAndType        #165:#166     // findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-  #102 = NameAndType        #167:#168     // when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #103 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n-  #104 = Class              #169          // java/lang/Double\n-  #105 = NameAndType        #170:#171     // valueOf:(D)Ljava/lang/Double;\n-  #106 = Utf8               id 1\n-  #107 = Utf8               content 1\n-  #108 = Class              #172          // dev/langchain4j/data/segment/TextSegment\n-  #109 = NameAndType        #173:#174     // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #110 = NameAndType        #57:#175      // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #111 = Utf8               id 2\n-  #112 = Utf8               content 2\n-  #113 = Class              #176          // java/util/Arrays\n-  #114 = NameAndType        #177:#178     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #115 = Class              #179          // org/mockito/stubbing/OngoingStubbing\n-  #116 = NameAndType        #180:#168     // thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #117 = Utf8               java/lang/Float\n-  #118 = NameAndType        #170:#181     // valueOf:(F)Ljava/lang/Float;\n-  #119 = NameAndType        #173:#182     // from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-  #120 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n-  #121 = NameAndType        #183:#184     // anyString:()Ljava/lang/String;\n-  #122 = NameAndType        #185:#186     // embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #123 = Class              #187          // dev/langchain4j/model/output/Response\n-  #124 = NameAndType        #173:#188     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #125 = Utf8               dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n-  #126 = NameAndType        #57:#189      // \"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-  #127 = Class              #190          // dev/langchain4j/rag/query/Query\n-  #128 = NameAndType        #173:#191     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #129 = Class              #192          // dev/langchain4j/rag/content/retriever/ContentRetriever\n-  #130 = NameAndType        #193:#194     // retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-  #131 = Class              #195          // org/assertj/core/api/Assertions\n-  #132 = NameAndType        #196:#197     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #133 = Utf8               dev/langchain4j/rag/content/Content\n-  #134 = NameAndType        #173:#198     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #135 = Class              #199          // org/assertj/core/api/ListAssert\n-  #136 = NameAndType        #200:#201     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #137 = NameAndType        #202:#203     // verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #138 = NameAndType        #204:#184     // text:()Ljava/lang/String;\n-  #139 = Utf8               java/lang/Object\n-  #140 = NameAndType        #205:#206     // verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-  #141 = NameAndType        #207:#210     // builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #142 = Class              #211          // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder\n-  #143 = NameAndType        #65:#212      // embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #144 = NameAndType        #69:#213      // embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #145 = NameAndType        #214:#215     // build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n-  #146 = Utf8               content\n-  #147 = Class              #216          // java/util/Collections\n-  #148 = NameAndType        #217:#218     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #149 = NameAndType        #57:#219      // \"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n-  #150 = Class              #220          // java/lang/Integer\n-  #151 = NameAndType        #170:#221     // valueOf:(I)Ljava/lang/Integer;\n-  #152 = NameAndType        #84:#222      // maxResults:(Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #153 = NameAndType        #57:#223      // \"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n-  #154 = NameAndType        #88:#224      // minScore:(Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #155 = Utf8               dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest\n-  #156 = Utf8               org/mockito/Mockito\n-  #157 = Utf8               mock\n-  #158 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n-  #159 = Utf8               any\n-  #160 = Utf8               ()Ljava/lang/Object;\n-  #161 = Utf8               anyInt\n-  #162 = Utf8               ()I\n-  #163 = Utf8               anyDouble\n-  #164 = Utf8               ()D\n-  #165 = Utf8               findRelevant\n-  #166 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-  #167 = Utf8               when\n-  #168 = Utf8               (Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #169 = Utf8               java/lang/Double\n-  #170 = Utf8               valueOf\n-  #171 = Utf8               (D)Ljava/lang/Double;\n-  #172 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #173 = Utf8               from\n-  #174 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #175 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #176 = Utf8               java/util/Arrays\n-  #177 = Utf8               asList\n-  #178 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #179 = Utf8               org/mockito/stubbing/OngoingStubbing\n-  #180 = Utf8               thenReturn\n-  #181 = Utf8               (F)Ljava/lang/Float;\n-  #182 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-  #183 = Utf8               anyString\n-  #184 = Utf8               ()Ljava/lang/String;\n-  #185 = Utf8               embed\n-  #186 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #187 = Utf8               dev/langchain4j/model/output/Response\n-  #188 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #189 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n-  #190 = Utf8               dev/langchain4j/rag/query/Query\n-  #191 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #192 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n-  #193 = Utf8               retrieve\n-  #194 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-  #195 = Utf8               org/assertj/core/api/Assertions\n-  #196 = Utf8               assertThat\n-  #197 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #198 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #199 = Utf8               org/assertj/core/api/ListAssert\n-  #200 = Utf8               containsExactly\n-  #201 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #202 = Utf8               verify\n-  #203 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #204 = Utf8               text\n-  #205 = Utf8               verifyNoMoreInteractions\n-  #206 = Utf8               ([Ljava/lang/Object;)V\n-  #207 = Utf8               builder\n-  #208 = Utf8               EmbeddingStoreContentRetrieverBuilder\n-  #209 = Utf8               InnerClasses\n-  #210 = Utf8               ()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #211 = Utf8               dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder\n-  #212 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #213 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #214 = Utf8               build\n-  #215 = Utf8               ()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n-  #216 = Utf8               java/util/Collections\n-  #217 = Utf8               singletonList\n-  #218 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #219 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n-  #220 = Utf8               java/lang/Integer\n-  #221 = Utf8               (I)Ljava/lang/Integer;\n-  #222 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-  #223 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n-  #224 = Utf8               (Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/store/embedding/EmbeddingStore\n+    #8 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n+    #9 = Methodref          #10.#11       // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+   #10 = Class              #12           // org/mockito/Mockito\n+   #11 = NameAndType        #13:#14       // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+   #12 = Utf8               org/mockito/Mockito\n+   #13 = Utf8               mock\n+   #14 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n+   #15 = Methodref          #10.#16       // org/mockito/Mockito.any:()Ljava/lang/Object;\n+   #16 = NameAndType        #17:#18       // any:()Ljava/lang/Object;\n+   #17 = Utf8               any\n+   #18 = Utf8               ()Ljava/lang/Object;\n+   #19 = Class              #20           // dev/langchain4j/data/embedding/Embedding\n+   #20 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #21 = Methodref          #10.#22       // org/mockito/Mockito.anyInt:()I\n+   #22 = NameAndType        #23:#24       // anyInt:()I\n+   #23 = Utf8               anyInt\n+   #24 = Utf8               ()I\n+   #25 = Methodref          #10.#26       // org/mockito/Mockito.anyDouble:()D\n+   #26 = NameAndType        #27:#28       // anyDouble:()D\n+   #27 = Utf8               anyDouble\n+   #28 = Utf8               ()D\n+   #29 = InterfaceMethodref #7.#30        // dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+   #30 = NameAndType        #31:#32       // findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+   #31 = Utf8               findRelevant\n+   #32 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+   #33 = Methodref          #10.#34       // org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #34 = NameAndType        #35:#36       // when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #35 = Utf8               when\n+   #36 = Utf8               (Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #37 = Class              #38           // dev/langchain4j/store/embedding/EmbeddingMatch\n+   #38 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n+   #39 = Double             0.9d\n+   #41 = Methodref          #42.#43       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #42 = Class              #44           // java/lang/Double\n+   #43 = NameAndType        #45:#46       // valueOf:(D)Ljava/lang/Double;\n+   #44 = Utf8               java/lang/Double\n+   #45 = Utf8               valueOf\n+   #46 = Utf8               (D)Ljava/lang/Double;\n+   #47 = String             #48           // id 1\n+   #48 = Utf8               id 1\n+   #49 = String             #50           // content 1\n+   #50 = Utf8               content 1\n+   #51 = Methodref          #52.#53       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #52 = Class              #54           // dev/langchain4j/data/segment/TextSegment\n+   #53 = NameAndType        #55:#56       // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #54 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #55 = Utf8               from\n+   #56 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #57 = Methodref          #37.#58       // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #58 = NameAndType        #5:#59        // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #59 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #60 = Double             0.7d\n+   #62 = String             #63           // id 2\n+   #63 = Utf8               id 2\n+   #64 = String             #65           // content 2\n+   #65 = Utf8               content 2\n+   #66 = Methodref          #67.#68       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #67 = Class              #69           // java/util/Arrays\n+   #68 = NameAndType        #70:#71       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #69 = Utf8               java/util/Arrays\n+   #70 = Utf8               asList\n+   #71 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #72 = InterfaceMethodref #73.#74       // org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #73 = Class              #75           // org/mockito/stubbing/OngoingStubbing\n+   #74 = NameAndType        #76:#36       // thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #75 = Utf8               org/mockito/stubbing/OngoingStubbing\n+   #76 = Utf8               thenReturn\n+   #77 = Class              #78           // java/lang/Float\n+   #78 = Utf8               java/lang/Float\n+   #79 = Methodref          #77.#80       // java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+   #80 = NameAndType        #45:#81       // valueOf:(F)Ljava/lang/Float;\n+   #81 = Utf8               (F)Ljava/lang/Float;\n+   #82 = Float              3.0f\n+   #83 = Methodref          #19.#84       // dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+   #84 = NameAndType        #55:#85       // from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+   #85 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+   #86 = Class              #87           // dev/langchain4j/model/embedding/EmbeddingModel\n+   #87 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n+   #88 = Methodref          #10.#89       // org/mockito/Mockito.anyString:()Ljava/lang/String;\n+   #89 = NameAndType        #90:#91       // anyString:()Ljava/lang/String;\n+   #90 = Utf8               anyString\n+   #91 = Utf8               ()Ljava/lang/String;\n+   #92 = InterfaceMethodref #86.#93       // dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #93 = NameAndType        #94:#95       // embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #94 = Utf8               embed\n+   #95 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+   #96 = Methodref          #97.#98       // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #97 = Class              #99           // dev/langchain4j/model/output/Response\n+   #98 = NameAndType        #55:#100      // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+   #99 = Utf8               dev/langchain4j/model/output/Response\n+  #100 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #101 = Class              #102          // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n+  #102 = Utf8               dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n+  #103 = Methodref          #101.#104     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #104 = NameAndType        #5:#105       // \"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #105 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+  #106 = String             #107          // query\n+  #107 = Utf8               query\n+  #108 = Methodref          #109.#110     // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #109 = Class              #111          // dev/langchain4j/rag/query/Query\n+  #110 = NameAndType        #55:#112      // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #111 = Utf8               dev/langchain4j/rag/query/Query\n+  #112 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #113 = InterfaceMethodref #114.#115     // dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #114 = Class              #116          // dev/langchain4j/rag/content/retriever/ContentRetriever\n+  #115 = NameAndType        #117:#118     // retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #116 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n+  #117 = Utf8               retrieve\n+  #118 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+  #119 = Methodref          #120.#121     // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #120 = Class              #122          // org/assertj/core/api/Assertions\n+  #121 = NameAndType        #123:#124     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #122 = Utf8               org/assertj/core/api/Assertions\n+  #123 = Utf8               assertThat\n+  #124 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #125 = Class              #126          // dev/langchain4j/rag/content/Content\n+  #126 = Utf8               dev/langchain4j/rag/content/Content\n+  #127 = Methodref          #125.#128     // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+  #128 = NameAndType        #55:#129      // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+  #129 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+  #130 = Methodref          #131.#132     // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #131 = Class              #133          // org/assertj/core/api/ListAssert\n+  #132 = NameAndType        #134:#135     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #133 = Utf8               org/assertj/core/api/ListAssert\n+  #134 = Utf8               containsExactly\n+  #135 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #136 = Methodref          #10.#137      // org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #137 = NameAndType        #138:#139     // verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #138 = Utf8               verify\n+  #139 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #140 = Methodref          #109.#141     // dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+  #141 = NameAndType        #142:#91      // text:()Ljava/lang/String;\n+  #142 = Utf8               text\n+  #143 = Methodref          #10.#144      // org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+  #144 = NameAndType        #145:#146     // verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+  #145 = Utf8               verifyNoMoreInteractions\n+  #146 = Utf8               ([Ljava/lang/Object;)V\n+  #147 = Methodref          #101.#148     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #148 = NameAndType        #149:#150     // builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #149 = Utf8               builder\n+  #150 = Utf8               ()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #151 = Methodref          #152.#153     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #152 = Class              #154          // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder\n+  #153 = NameAndType        #155:#156     // embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #154 = Utf8               dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder\n+  #155 = Utf8               embeddingStore\n+  #156 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #157 = Methodref          #152.#158     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #158 = NameAndType        #159:#160     // embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #159 = Utf8               embeddingModel\n+  #160 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #161 = Methodref          #152.#162     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n+  #162 = NameAndType        #163:#164     // build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n+  #163 = Utf8               build\n+  #164 = Utf8               ()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n+  #165 = String             #166          // content\n+  #166 = Utf8               content\n+  #167 = Methodref          #168.#169     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #168 = Class              #170          // java/util/Collections\n+  #169 = NameAndType        #171:#172     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #170 = Utf8               java/util/Collections\n+  #171 = Utf8               singletonList\n+  #172 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #173 = Methodref          #101.#174     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n+  #174 = NameAndType        #5:#175       // \"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n+  #175 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n+  #176 = Methodref          #177.#178     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+  #177 = Class              #179          // java/lang/Integer\n+  #178 = NameAndType        #45:#180      // valueOf:(I)Ljava/lang/Integer;\n+  #179 = Utf8               java/lang/Integer\n+  #180 = Utf8               (I)Ljava/lang/Integer;\n+  #181 = Methodref          #152.#182     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.maxResults:(Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #182 = NameAndType        #183:#184     // maxResults:(Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #183 = Utf8               maxResults\n+  #184 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #185 = Methodref          #101.#186     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n+  #186 = NameAndType        #5:#187       // \"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n+  #187 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n+  #188 = Methodref          #152.#189     // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.minScore:(Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #189 = NameAndType        #190:#191     // minScore:(Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #190 = Utf8               minScore\n+  #191 = Utf8               (Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+  #192 = Class              #193          // dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest\n+  #193 = Utf8               dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest\n+  #194 = Utf8               Code\n+  #195 = Utf8               LineNumberTable\n+  #196 = Utf8               LocalVariableTable\n+  #197 = Utf8               this\n+  #198 = Utf8               Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest;\n+  #199 = Utf8               should_retrieve\n+  #200 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore;\n+  #201 = Utf8               embedding\n+  #202 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n+  #203 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModel;\n+  #204 = Utf8               contentRetriever\n+  #205 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+  #206 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #207 = Utf8               contents\n+  #208 = Utf8               Ljava/util/List;\n+  #209 = Utf8               LocalVariableTypeTable\n+  #210 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #211 = Utf8               Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n+  #212 = Utf8               RuntimeVisibleAnnotations\n+  #213 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #214 = Utf8               should_retrieve_builder\n+  #215 = Utf8               should_retrieve_with_custom_maxResults\n+  #216 = Utf8               I\n+  #217 = Utf8               should_retrieve_with_custom_maxResults_builder\n+  #218 = Utf8               should_retrieve_with_custom_minScore\n+  #219 = Utf8               D\n+  #220 = Utf8               should_retrieve_with_custom_minScore_builder\n+  #221 = Utf8               SourceFile\n+  #222 = Utf8               EmbeddingStoreContentRetrieverTest.java\n+  #223 = Utf8               InnerClasses\n+  #224 = Utf8               EmbeddingStoreContentRetrieverBuilder\n {\n   dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetrieverTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -246,144 +246,144 @@\n             0       5     0  this   Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetrieverTest;\n \n   void should_retrieve();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=10, locals=7, args_size=1\n-         0: ldc           #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n-         2: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         5: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         0: ldc           #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         2: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         5: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n          8: astore_1\n          9: aload_1\n-        10: invokestatic  #4                  // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n-        13: checkcast     #5                  // class dev/langchain4j/data/embedding/Embedding\n-        16: invokestatic  #6                  // Method org/mockito/Mockito.anyInt:()I\n-        19: invokestatic  #7                  // Method org/mockito/Mockito.anyDouble:()D\n-        22: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-        27: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        10: invokestatic  #15                 // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n+        13: checkcast     #19                 // class dev/langchain4j/data/embedding/Embedding\n+        16: invokestatic  #21                 // Method org/mockito/Mockito.anyInt:()I\n+        19: invokestatic  #25                 // Method org/mockito/Mockito.anyDouble:()D\n+        22: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+        27: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         30: iconst_2\n-        31: anewarray     #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        31: anewarray     #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         34: dup\n         35: iconst_0\n-        36: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        36: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         39: dup\n-        40: ldc2_w        #11                 // double 0.9d\n-        43: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        46: ldc           #14                 // String id 1\n+        40: ldc2_w        #39                 // double 0.9d\n+        43: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        46: ldc           #47                 // String id 1\n         48: aconst_null\n-        49: ldc           #15                 // String content 1\n-        51: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        54: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        49: ldc           #49                 // String content 1\n+        51: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        54: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         57: aastore\n         58: dup\n         59: iconst_1\n-        60: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        60: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         63: dup\n-        64: ldc2_w        #18                 // double 0.7d\n-        67: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        70: ldc           #20                 // String id 2\n+        64: ldc2_w        #60                 // double 0.7d\n+        67: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        70: ldc           #62                 // String id 2\n         72: aconst_null\n-        73: ldc           #21                 // String content 2\n-        75: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        78: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        73: ldc           #64                 // String content 2\n+        75: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        78: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         81: aastore\n-        82: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        85: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        82: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        85: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         90: pop\n         91: iconst_3\n-        92: anewarray     #24                 // class java/lang/Float\n+        92: anewarray     #77                 // class java/lang/Float\n         95: dup\n         96: iconst_0\n         97: fconst_1\n-        98: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        98: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        101: aastore\n        102: dup\n        103: iconst_1\n        104: fconst_2\n-       105: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       105: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        108: aastore\n        109: dup\n        110: iconst_2\n-       111: ldc           #26                 // float 3.0f\n-       113: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       111: ldc           #82                 // float 3.0f\n+       113: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        116: aastore\n-       117: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       120: invokestatic  #27                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+       117: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       120: invokestatic  #83                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n        123: astore_2\n-       124: ldc           #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-       126: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       129: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       124: ldc           #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       126: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       129: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        132: astore_3\n        133: aload_3\n-       134: invokestatic  #29                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n-       137: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       142: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       134: invokestatic  #88                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n+       137: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       142: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        145: aload_2\n-       146: invokestatic  #31                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       149: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       146: invokestatic  #96                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       149: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        154: pop\n-       155: new           #32                 // class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n+       155: new           #101                // class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n        158: dup\n        159: aload_1\n        160: aload_3\n-       161: invokespecial #33                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n+       161: invokespecial #103                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;)V\n        164: astore        4\n-       166: ldc           #34                 // String query\n-       168: invokestatic  #35                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       166: ldc           #106                // String query\n+       168: invokestatic  #108                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        171: astore        5\n        173: aload         4\n        175: aload         5\n-       177: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       177: invokeinterface #113,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        182: astore        6\n        184: aload         6\n-       186: invokestatic  #37                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       186: invokestatic  #119                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        189: iconst_2\n-       190: anewarray     #38                 // class dev/langchain4j/rag/content/Content\n+       190: anewarray     #125                // class dev/langchain4j/rag/content/Content\n        193: dup\n        194: iconst_0\n-       195: ldc           #15                 // String content 1\n-       197: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       195: ldc           #49                 // String content 1\n+       197: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        200: aastore\n        201: dup\n        202: iconst_1\n-       203: ldc           #21                 // String content 2\n-       205: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       203: ldc           #64                 // String content 2\n+       205: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        208: aastore\n-       209: invokevirtual #40                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       209: invokevirtual #130                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        212: pop\n        213: aload_3\n-       214: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       217: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       214: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       217: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        220: aload         5\n-       222: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       225: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       222: invokevirtual #140                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       225: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n        230: pop\n        231: iconst_1\n-       232: anewarray     #43                 // class java/lang/Object\n+       232: anewarray     #2                  // class java/lang/Object\n        235: dup\n        236: iconst_0\n        237: aload_3\n        238: aastore\n-       239: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       239: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        242: aload_1\n-       243: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       246: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+       243: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       246: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n        249: aload_2\n        250: iconst_3\n        251: dconst_0\n-       252: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+       252: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n        257: pop\n        258: iconst_1\n-       259: anewarray     #43                 // class java/lang/Object\n+       259: anewarray     #2                  // class java/lang/Object\n        262: dup\n        263: iconst_0\n        264: aload_1\n        265: aastore\n-       266: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       266: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        269: return\n       LineNumberTable:\n         line 27: 0\n         line 28: 9\n         line 29: 43\n         line 30: 67\n         line 28: 82\n@@ -412,153 +412,153 @@\n           173      97     5 query   Ldev/langchain4j/rag/query/Query;\n           184      86     6 contents   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             9     261     1 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n           184      86     6 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #213()\n         org.junit.jupiter.api.Test\n \n   void should_retrieve_builder();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=10, locals=7, args_size=1\n-         0: ldc           #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n-         2: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         5: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         0: ldc           #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         2: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         5: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n          8: astore_1\n          9: aload_1\n-        10: invokestatic  #4                  // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n-        13: checkcast     #5                  // class dev/langchain4j/data/embedding/Embedding\n-        16: invokestatic  #6                  // Method org/mockito/Mockito.anyInt:()I\n-        19: invokestatic  #7                  // Method org/mockito/Mockito.anyDouble:()D\n-        22: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-        27: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        10: invokestatic  #15                 // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n+        13: checkcast     #19                 // class dev/langchain4j/data/embedding/Embedding\n+        16: invokestatic  #21                 // Method org/mockito/Mockito.anyInt:()I\n+        19: invokestatic  #25                 // Method org/mockito/Mockito.anyDouble:()D\n+        22: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+        27: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         30: iconst_2\n-        31: anewarray     #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        31: anewarray     #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         34: dup\n         35: iconst_0\n-        36: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        36: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         39: dup\n-        40: ldc2_w        #11                 // double 0.9d\n-        43: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        46: ldc           #14                 // String id 1\n+        40: ldc2_w        #39                 // double 0.9d\n+        43: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        46: ldc           #47                 // String id 1\n         48: aconst_null\n-        49: ldc           #15                 // String content 1\n-        51: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        54: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        49: ldc           #49                 // String content 1\n+        51: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        54: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         57: aastore\n         58: dup\n         59: iconst_1\n-        60: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        60: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         63: dup\n-        64: ldc2_w        #18                 // double 0.7d\n-        67: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        70: ldc           #20                 // String id 2\n+        64: ldc2_w        #60                 // double 0.7d\n+        67: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        70: ldc           #62                 // String id 2\n         72: aconst_null\n-        73: ldc           #21                 // String content 2\n-        75: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        78: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        73: ldc           #64                 // String content 2\n+        75: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        78: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         81: aastore\n-        82: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        85: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        82: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        85: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         90: pop\n         91: iconst_3\n-        92: anewarray     #24                 // class java/lang/Float\n+        92: anewarray     #77                 // class java/lang/Float\n         95: dup\n         96: iconst_0\n         97: fconst_1\n-        98: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        98: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        101: aastore\n        102: dup\n        103: iconst_1\n        104: fconst_2\n-       105: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       105: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        108: aastore\n        109: dup\n        110: iconst_2\n-       111: ldc           #26                 // float 3.0f\n-       113: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       111: ldc           #82                 // float 3.0f\n+       113: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        116: aastore\n-       117: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       120: invokestatic  #27                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+       117: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       120: invokestatic  #83                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n        123: astore_2\n-       124: ldc           #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-       126: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       129: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       124: ldc           #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       126: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       129: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        132: astore_3\n        133: aload_3\n-       134: invokestatic  #29                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n-       137: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       142: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       134: invokestatic  #88                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n+       137: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       142: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        145: aload_2\n-       146: invokestatic  #31                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       149: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       146: invokestatic  #96                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       149: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        154: pop\n-       155: invokestatic  #45                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       155: invokestatic  #147                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        158: aload_1\n-       159: invokevirtual #46                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       159: invokevirtual #151                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        162: aload_3\n-       163: invokevirtual #47                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-       166: invokevirtual #48                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n+       163: invokevirtual #157                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       166: invokevirtual #161                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n        169: astore        4\n-       171: ldc           #34                 // String query\n-       173: invokestatic  #35                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       171: ldc           #106                // String query\n+       173: invokestatic  #108                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        176: astore        5\n        178: aload         4\n        180: aload         5\n-       182: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       182: invokeinterface #113,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        187: astore        6\n        189: aload         6\n-       191: invokestatic  #37                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       191: invokestatic  #119                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        194: iconst_2\n-       195: anewarray     #38                 // class dev/langchain4j/rag/content/Content\n+       195: anewarray     #125                // class dev/langchain4j/rag/content/Content\n        198: dup\n        199: iconst_0\n-       200: ldc           #15                 // String content 1\n-       202: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       200: ldc           #49                 // String content 1\n+       202: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        205: aastore\n        206: dup\n        207: iconst_1\n-       208: ldc           #21                 // String content 2\n-       210: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       208: ldc           #64                 // String content 2\n+       210: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        213: aastore\n-       214: invokevirtual #40                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       214: invokevirtual #130                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        217: pop\n        218: aload_3\n-       219: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       222: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       219: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       222: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        225: aload         5\n-       227: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       230: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       227: invokevirtual #140                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       230: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n        235: pop\n        236: iconst_1\n-       237: anewarray     #43                 // class java/lang/Object\n+       237: anewarray     #2                  // class java/lang/Object\n        240: dup\n        241: iconst_0\n        242: aload_3\n        243: aastore\n-       244: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       244: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        247: aload_1\n-       248: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       251: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+       248: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       251: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n        254: aload_2\n        255: iconst_3\n        256: dconst_0\n-       257: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+       257: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n        262: pop\n        263: iconst_1\n-       264: anewarray     #43                 // class java/lang/Object\n+       264: anewarray     #2                  // class java/lang/Object\n        267: dup\n        268: iconst_0\n        269: aload_1\n        270: aastore\n-       271: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       271: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        274: return\n       LineNumberTable:\n         line 61: 0\n         line 62: 9\n         line 63: 43\n         line 64: 67\n         line 62: 82\n@@ -590,133 +590,133 @@\n           178      97     5 query   Ldev/langchain4j/rag/query/Query;\n           189      86     6 contents   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             9     266     1 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n           189      86     6 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #213()\n         org.junit.jupiter.api.Test\n \n   void should_retrieve_with_custom_maxResults();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=7, locals=8, args_size=1\n          0: iconst_1\n          1: istore_1\n-         2: ldc           #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n-         4: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         7: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         2: ldc           #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         4: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         7: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n         10: astore_2\n         11: aload_2\n-        12: invokestatic  #4                  // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n-        15: checkcast     #5                  // class dev/langchain4j/data/embedding/Embedding\n-        18: invokestatic  #6                  // Method org/mockito/Mockito.anyInt:()I\n-        21: invokestatic  #7                  // Method org/mockito/Mockito.anyDouble:()D\n-        24: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-        29: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-        32: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        12: invokestatic  #15                 // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n+        15: checkcast     #19                 // class dev/langchain4j/data/embedding/Embedding\n+        18: invokestatic  #21                 // Method org/mockito/Mockito.anyInt:()I\n+        21: invokestatic  #25                 // Method org/mockito/Mockito.anyDouble:()D\n+        24: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+        29: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        32: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         35: dup\n-        36: ldc2_w        #11                 // double 0.9d\n-        39: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        42: ldc           #14                 // String id 1\n+        36: ldc2_w        #39                 // double 0.9d\n+        39: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        42: ldc           #47                 // String id 1\n         44: aconst_null\n-        45: ldc           #49                 // String content\n-        47: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        50: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-        53: invokestatic  #50                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        56: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        45: ldc           #165                // String content\n+        47: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        50: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        53: invokestatic  #167                // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        56: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         61: pop\n         62: iconst_3\n-        63: anewarray     #24                 // class java/lang/Float\n+        63: anewarray     #77                 // class java/lang/Float\n         66: dup\n         67: iconst_0\n         68: fconst_1\n-        69: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        69: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         72: aastore\n         73: dup\n         74: iconst_1\n         75: fconst_2\n-        76: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        76: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         79: aastore\n         80: dup\n         81: iconst_2\n-        82: ldc           #26                 // float 3.0f\n-        84: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        82: ldc           #82                 // float 3.0f\n+        84: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         87: aastore\n-        88: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        91: invokestatic  #27                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+        88: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        91: invokestatic  #83                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n         94: astore_3\n-        95: ldc           #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-        97: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       100: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+        95: ldc           #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+        97: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       100: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        103: astore        4\n        105: aload         4\n-       107: invokestatic  #29                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n-       110: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       115: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       107: invokestatic  #88                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n+       110: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       115: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        118: aload_3\n-       119: invokestatic  #31                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       122: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       119: invokestatic  #96                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       122: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        127: pop\n-       128: new           #32                 // class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n+       128: new           #101                // class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n        131: dup\n        132: aload_2\n        133: aload         4\n        135: iload_1\n-       136: invokespecial #51                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n+       136: invokespecial #173                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;I)V\n        139: astore        5\n-       141: ldc           #34                 // String query\n-       143: invokestatic  #35                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       141: ldc           #106                // String query\n+       143: invokestatic  #108                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        146: astore        6\n        148: aload         5\n        150: aload         6\n-       152: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       152: invokeinterface #113,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        157: astore        7\n        159: aload         7\n-       161: invokestatic  #37                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       161: invokestatic  #119                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        164: iconst_1\n-       165: anewarray     #38                 // class dev/langchain4j/rag/content/Content\n+       165: anewarray     #125                // class dev/langchain4j/rag/content/Content\n        168: dup\n        169: iconst_0\n-       170: ldc           #49                 // String content\n-       172: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       170: ldc           #165                // String content\n+       172: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        175: aastore\n-       176: invokevirtual #40                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       176: invokevirtual #130                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        179: pop\n        180: aload         4\n-       182: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       185: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       182: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       185: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        188: aload         6\n-       190: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       193: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       190: invokevirtual #140                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       193: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n        198: pop\n        199: iconst_1\n-       200: anewarray     #43                 // class java/lang/Object\n+       200: anewarray     #2                  // class java/lang/Object\n        203: dup\n        204: iconst_0\n        205: aload         4\n        207: aastore\n-       208: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       208: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        211: aload_2\n-       212: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       215: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+       212: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       215: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n        218: aload_3\n        219: iload_1\n        220: dconst_0\n-       221: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+       221: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n        226: pop\n        227: iconst_1\n-       228: anewarray     #43                 // class java/lang/Object\n+       228: anewarray     #2                  // class java/lang/Object\n        231: dup\n        232: iconst_0\n        233: aload_2\n        234: aastore\n-       235: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       235: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        238: return\n       LineNumberTable:\n         line 98: 0\n         line 100: 2\n         line 101: 11\n         line 102: 39\n         line 101: 53\n@@ -743,136 +743,136 @@\n           148      91     6 query   Ldev/langchain4j/rag/query/Query;\n           159      80     7 contents   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            11     228     2 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n           159      80     7 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #213()\n         org.junit.jupiter.api.Test\n \n   void should_retrieve_with_custom_maxResults_builder();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=7, locals=8, args_size=1\n          0: iconst_1\n          1: istore_1\n-         2: ldc           #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n-         4: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         7: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         2: ldc           #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         4: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         7: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n         10: astore_2\n         11: aload_2\n-        12: invokestatic  #4                  // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n-        15: checkcast     #5                  // class dev/langchain4j/data/embedding/Embedding\n-        18: invokestatic  #6                  // Method org/mockito/Mockito.anyInt:()I\n-        21: invokestatic  #7                  // Method org/mockito/Mockito.anyDouble:()D\n-        24: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-        29: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-        32: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        12: invokestatic  #15                 // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n+        15: checkcast     #19                 // class dev/langchain4j/data/embedding/Embedding\n+        18: invokestatic  #21                 // Method org/mockito/Mockito.anyInt:()I\n+        21: invokestatic  #25                 // Method org/mockito/Mockito.anyDouble:()D\n+        24: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+        29: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        32: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         35: dup\n-        36: ldc2_w        #11                 // double 0.9d\n-        39: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        42: ldc           #14                 // String id 1\n+        36: ldc2_w        #39                 // double 0.9d\n+        39: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        42: ldc           #47                 // String id 1\n         44: aconst_null\n-        45: ldc           #49                 // String content\n-        47: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        50: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-        53: invokestatic  #50                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        56: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        45: ldc           #165                // String content\n+        47: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        50: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        53: invokestatic  #167                // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        56: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         61: pop\n         62: iconst_3\n-        63: anewarray     #24                 // class java/lang/Float\n+        63: anewarray     #77                 // class java/lang/Float\n         66: dup\n         67: iconst_0\n         68: fconst_1\n-        69: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        69: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         72: aastore\n         73: dup\n         74: iconst_1\n         75: fconst_2\n-        76: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        76: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         79: aastore\n         80: dup\n         81: iconst_2\n-        82: ldc           #26                 // float 3.0f\n-        84: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+        82: ldc           #82                 // float 3.0f\n+        84: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n         87: aastore\n-        88: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        91: invokestatic  #27                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+        88: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        91: invokestatic  #83                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n         94: astore_3\n-        95: ldc           #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-        97: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       100: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+        95: ldc           #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+        97: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       100: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        103: astore        4\n        105: aload         4\n-       107: invokestatic  #29                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n-       110: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       115: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       107: invokestatic  #88                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n+       110: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       115: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        118: aload_3\n-       119: invokestatic  #31                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       122: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       119: invokestatic  #96                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       122: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        127: pop\n-       128: invokestatic  #45                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       128: invokestatic  #147                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        131: aload_2\n-       132: invokevirtual #46                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       132: invokevirtual #151                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        135: aload         4\n-       137: invokevirtual #47                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       137: invokevirtual #157                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        140: iload_1\n-       141: invokestatic  #52                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       144: invokevirtual #53                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.maxResults:(Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-       147: invokevirtual #48                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n+       141: invokestatic  #176                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       144: invokevirtual #181                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.maxResults:(Ljava/lang/Integer;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       147: invokevirtual #161                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n        150: astore        5\n-       152: ldc           #34                 // String query\n-       154: invokestatic  #35                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       152: ldc           #106                // String query\n+       154: invokestatic  #108                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        157: astore        6\n        159: aload         5\n        161: aload         6\n-       163: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       163: invokeinterface #113,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        168: astore        7\n        170: aload         7\n-       172: invokestatic  #37                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       172: invokestatic  #119                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        175: iconst_1\n-       176: anewarray     #38                 // class dev/langchain4j/rag/content/Content\n+       176: anewarray     #125                // class dev/langchain4j/rag/content/Content\n        179: dup\n        180: iconst_0\n-       181: ldc           #49                 // String content\n-       183: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       181: ldc           #165                // String content\n+       183: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        186: aastore\n-       187: invokevirtual #40                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       187: invokevirtual #130                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        190: pop\n        191: aload         4\n-       193: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       196: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       193: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       196: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        199: aload         6\n-       201: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       204: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       201: invokevirtual #140                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       204: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n        209: pop\n        210: iconst_1\n-       211: anewarray     #43                 // class java/lang/Object\n+       211: anewarray     #2                  // class java/lang/Object\n        214: dup\n        215: iconst_0\n        216: aload         4\n        218: aastore\n-       219: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       219: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        222: aload_2\n-       223: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       226: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+       223: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       226: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n        229: aload_3\n        230: iload_1\n        231: dconst_0\n-       232: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+       232: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n        237: pop\n        238: iconst_1\n-       239: anewarray     #43                 // class java/lang/Object\n+       239: anewarray     #2                  // class java/lang/Object\n        242: dup\n        243: iconst_0\n        244: aload_2\n        245: aastore\n-       246: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       246: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        249: return\n       LineNumberTable:\n         line 134: 0\n         line 136: 2\n         line 137: 11\n         line 138: 39\n         line 137: 53\n@@ -903,157 +903,157 @@\n           159      91     6 query   Ldev/langchain4j/rag/query/Query;\n           170      80     7 contents   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            11     239     2 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n           170      80     7 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #213()\n         org.junit.jupiter.api.Test\n \n   void should_retrieve_with_custom_minScore();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=10, locals=9, args_size=1\n-         0: ldc2_w        #18                 // double 0.7d\n+         0: ldc2_w        #60                 // double 0.7d\n          3: dstore_1\n-         4: ldc           #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n-         6: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         9: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         4: ldc           #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         6: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         9: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n         12: astore_3\n         13: aload_3\n-        14: invokestatic  #4                  // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n-        17: checkcast     #5                  // class dev/langchain4j/data/embedding/Embedding\n-        20: invokestatic  #6                  // Method org/mockito/Mockito.anyInt:()I\n-        23: invokestatic  #7                  // Method org/mockito/Mockito.anyDouble:()D\n-        26: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-        31: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        14: invokestatic  #15                 // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n+        17: checkcast     #19                 // class dev/langchain4j/data/embedding/Embedding\n+        20: invokestatic  #21                 // Method org/mockito/Mockito.anyInt:()I\n+        23: invokestatic  #25                 // Method org/mockito/Mockito.anyDouble:()D\n+        26: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+        31: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         34: iconst_2\n-        35: anewarray     #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        35: anewarray     #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         38: dup\n         39: iconst_0\n-        40: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        40: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         43: dup\n-        44: ldc2_w        #11                 // double 0.9d\n-        47: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        50: ldc           #14                 // String id 1\n+        44: ldc2_w        #39                 // double 0.9d\n+        47: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        50: ldc           #47                 // String id 1\n         52: aconst_null\n-        53: ldc           #15                 // String content 1\n-        55: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        58: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        53: ldc           #49                 // String content 1\n+        55: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        58: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         61: aastore\n         62: dup\n         63: iconst_1\n-        64: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        64: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         67: dup\n-        68: ldc2_w        #18                 // double 0.7d\n-        71: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        74: ldc           #20                 // String id 2\n+        68: ldc2_w        #60                 // double 0.7d\n+        71: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        74: ldc           #62                 // String id 2\n         76: aconst_null\n-        77: ldc           #21                 // String content 2\n-        79: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        82: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        77: ldc           #64                 // String content 2\n+        79: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        82: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         85: aastore\n-        86: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        89: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        86: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        89: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         94: pop\n         95: iconst_3\n-        96: anewarray     #24                 // class java/lang/Float\n+        96: anewarray     #77                 // class java/lang/Float\n         99: dup\n        100: iconst_0\n        101: fconst_1\n-       102: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       102: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        105: aastore\n        106: dup\n        107: iconst_1\n        108: fconst_2\n-       109: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       109: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        112: aastore\n        113: dup\n        114: iconst_2\n-       115: ldc           #26                 // float 3.0f\n-       117: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       115: ldc           #82                 // float 3.0f\n+       117: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        120: aastore\n-       121: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       124: invokestatic  #27                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+       121: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       124: invokestatic  #83                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n        127: astore        4\n-       129: ldc           #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-       131: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       134: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       129: ldc           #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       131: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       134: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        137: astore        5\n        139: aload         5\n-       141: invokestatic  #29                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n-       144: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       149: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       141: invokestatic  #88                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n+       144: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       149: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        152: aload         4\n-       154: invokestatic  #31                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       157: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       154: invokestatic  #96                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       157: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        162: pop\n-       163: new           #32                 // class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n+       163: new           #101                // class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n        166: dup\n        167: aload_3\n        168: aload         5\n        170: aconst_null\n        171: dload_1\n-       172: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       175: invokespecial #54                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n+       172: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       175: invokespecial #185                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.\"<init>\":(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/model/embedding/EmbeddingModel;Ljava/lang/Integer;Ljava/lang/Double;)V\n        178: astore        6\n-       180: ldc           #34                 // String query\n-       182: invokestatic  #35                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       180: ldc           #106                // String query\n+       182: invokestatic  #108                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        185: astore        7\n        187: aload         6\n        189: aload         7\n-       191: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       191: invokeinterface #113,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        196: astore        8\n        198: aload         8\n-       200: invokestatic  #37                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       200: invokestatic  #119                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        203: iconst_2\n-       204: anewarray     #38                 // class dev/langchain4j/rag/content/Content\n+       204: anewarray     #125                // class dev/langchain4j/rag/content/Content\n        207: dup\n        208: iconst_0\n-       209: ldc           #15                 // String content 1\n-       211: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       209: ldc           #49                 // String content 1\n+       211: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        214: aastore\n        215: dup\n        216: iconst_1\n-       217: ldc           #21                 // String content 2\n-       219: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       217: ldc           #64                 // String content 2\n+       219: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        222: aastore\n-       223: invokevirtual #40                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       223: invokevirtual #130                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        226: pop\n        227: aload         5\n-       229: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       232: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       229: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       232: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        235: aload         7\n-       237: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       240: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       237: invokevirtual #140                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       240: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n        245: pop\n        246: iconst_1\n-       247: anewarray     #43                 // class java/lang/Object\n+       247: anewarray     #2                  // class java/lang/Object\n        250: dup\n        251: iconst_0\n        252: aload         5\n        254: aastore\n-       255: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       255: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        258: aload_3\n-       259: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       262: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+       259: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       262: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n        265: aload         4\n        267: iconst_3\n        268: dload_1\n-       269: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+       269: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n        274: pop\n        275: iconst_1\n-       276: anewarray     #43                 // class java/lang/Object\n+       276: anewarray     #2                  // class java/lang/Object\n        279: dup\n        280: iconst_0\n        281: aload_3\n        282: aastore\n-       283: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       283: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        286: return\n       LineNumberTable:\n         line 170: 0\n         line 172: 4\n         line 173: 13\n         line 174: 47\n         line 175: 71\n@@ -1085,158 +1085,158 @@\n           187     100     7 query   Ldev/langchain4j/rag/query/Query;\n           198      89     8 contents   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            13     274     3 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n           198      89     8 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #213()\n         org.junit.jupiter.api.Test\n \n   void should_retrieve_with_custom_minScore_builder();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=10, locals=9, args_size=1\n-         0: ldc2_w        #18                 // double 0.7d\n+         0: ldc2_w        #60                 // double 0.7d\n          3: dstore_1\n-         4: ldc           #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n-         6: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         9: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         4: ldc           #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+         6: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         9: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n         12: astore_3\n         13: aload_3\n-        14: invokestatic  #4                  // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n-        17: checkcast     #5                  // class dev/langchain4j/data/embedding/Embedding\n-        20: invokestatic  #6                  // Method org/mockito/Mockito.anyInt:()I\n-        23: invokestatic  #7                  // Method org/mockito/Mockito.anyDouble:()D\n-        26: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-        31: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        14: invokestatic  #15                 // Method org/mockito/Mockito.any:()Ljava/lang/Object;\n+        17: checkcast     #19                 // class dev/langchain4j/data/embedding/Embedding\n+        20: invokestatic  #21                 // Method org/mockito/Mockito.anyInt:()I\n+        23: invokestatic  #25                 // Method org/mockito/Mockito.anyDouble:()D\n+        26: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+        31: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         34: iconst_2\n-        35: anewarray     #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        35: anewarray     #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         38: dup\n         39: iconst_0\n-        40: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        40: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         43: dup\n-        44: ldc2_w        #11                 // double 0.9d\n-        47: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        50: ldc           #14                 // String id 1\n+        44: ldc2_w        #39                 // double 0.9d\n+        47: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        50: ldc           #47                 // String id 1\n         52: aconst_null\n-        53: ldc           #15                 // String content 1\n-        55: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        58: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        53: ldc           #49                 // String content 1\n+        55: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        58: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         61: aastore\n         62: dup\n         63: iconst_1\n-        64: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        64: new           #37                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         67: dup\n-        68: ldc2_w        #18                 // double 0.7d\n-        71: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        74: ldc           #20                 // String id 2\n+        68: ldc2_w        #60                 // double 0.7d\n+        71: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        74: ldc           #62                 // String id 2\n         76: aconst_null\n-        77: ldc           #21                 // String content 2\n-        79: invokestatic  #16                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-        82: invokespecial #17                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        77: ldc           #64                 // String content 2\n+        79: invokestatic  #51                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+        82: invokespecial #57                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         85: aastore\n-        86: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        89: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        86: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        89: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         94: pop\n         95: iconst_3\n-        96: anewarray     #24                 // class java/lang/Float\n+        96: anewarray     #77                 // class java/lang/Float\n         99: dup\n        100: iconst_0\n        101: fconst_1\n-       102: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       102: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        105: aastore\n        106: dup\n        107: iconst_1\n        108: fconst_2\n-       109: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       109: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        112: aastore\n        113: dup\n        114: iconst_2\n-       115: ldc           #26                 // float 3.0f\n-       117: invokestatic  #25                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n+       115: ldc           #82                 // float 3.0f\n+       117: invokestatic  #79                 // Method java/lang/Float.valueOf:(F)Ljava/lang/Float;\n        120: aastore\n-       121: invokestatic  #22                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       124: invokestatic  #27                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+       121: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       124: invokestatic  #83                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n        127: astore        4\n-       129: ldc           #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-       131: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       134: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       129: ldc           #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       131: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       134: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        137: astore        5\n        139: aload         5\n-       141: invokestatic  #29                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n-       144: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-       149: invokestatic  #9                  // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       141: invokestatic  #88                 // Method org/mockito/Mockito.anyString:()Ljava/lang/String;\n+       144: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       149: invokestatic  #33                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        152: aload         4\n-       154: invokestatic  #31                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       157: invokeinterface #23,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       154: invokestatic  #96                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       157: invokeinterface #72,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        162: pop\n-       163: invokestatic  #45                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       163: invokestatic  #147                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever.builder:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        166: aload_3\n-       167: invokevirtual #46                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       167: invokevirtual #151                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        170: aload         5\n-       172: invokevirtual #47                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       172: invokevirtual #157                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n        175: dload_1\n-       176: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       179: invokevirtual #55                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.minScore:(Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n-       182: invokevirtual #48                 // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n+       176: invokestatic  #41                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       179: invokevirtual #188                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.minScore:(Ljava/lang/Double;)Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder;\n+       182: invokevirtual #161                // Method dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder.build:()Ldev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever;\n        185: astore        6\n-       187: ldc           #34                 // String query\n-       189: invokestatic  #35                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       187: ldc           #106                // String query\n+       189: invokestatic  #108                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        192: astore        7\n        194: aload         6\n        196: aload         7\n-       198: invokeinterface #36,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+       198: invokeinterface #113,  2          // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n        203: astore        8\n        205: aload         8\n-       207: invokestatic  #37                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       207: invokestatic  #119                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n        210: iconst_2\n-       211: anewarray     #38                 // class dev/langchain4j/rag/content/Content\n+       211: anewarray     #125                // class dev/langchain4j/rag/content/Content\n        214: dup\n        215: iconst_0\n-       216: ldc           #15                 // String content 1\n-       218: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       216: ldc           #49                 // String content 1\n+       218: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        221: aastore\n        222: dup\n        223: iconst_1\n-       224: ldc           #21                 // String content 2\n-       226: invokestatic  #39                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+       224: ldc           #64                 // String content 2\n+       226: invokestatic  #127                // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n        229: aastore\n-       230: invokevirtual #40                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       230: invokevirtual #130                // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        233: pop\n        234: aload         5\n-       236: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       239: checkcast     #28                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       236: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       239: checkcast     #86                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        242: aload         7\n-       244: invokevirtual #42                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-       247: invokeinterface #30,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+       244: invokevirtual #140                // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+       247: invokeinterface #92,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embed:(Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n        252: pop\n        253: iconst_1\n-       254: anewarray     #43                 // class java/lang/Object\n+       254: anewarray     #2                  // class java/lang/Object\n        257: dup\n        258: iconst_0\n        259: aload         5\n        261: aastore\n-       262: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       262: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        265: aload_3\n-       266: invokestatic  #41                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       269: checkcast     #2                  // class dev/langchain4j/store/embedding/EmbeddingStore\n+       266: invokestatic  #136                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       269: checkcast     #7                  // class dev/langchain4j/store/embedding/EmbeddingStore\n        272: aload         4\n        274: iconst_3\n        275: dload_1\n-       276: invokeinterface #8,  5            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+       276: invokeinterface #29,  5           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n        281: pop\n        282: iconst_1\n-       283: anewarray     #43                 // class java/lang/Object\n+       283: anewarray     #2                  // class java/lang/Object\n        286: dup\n        287: iconst_0\n        288: aload_3\n        289: aastore\n-       290: invokestatic  #44                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       290: invokestatic  #143                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        293: return\n       LineNumberTable:\n         line 211: 0\n         line 213: 4\n         line 214: 13\n         line 215: 47\n         line 216: 71\n@@ -1271,13 +1271,13 @@\n           194     100     7 query   Ldev/langchain4j/rag/query/Query;\n           205      89     8 contents   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            13     281     3 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n           205      89     8 contents   Ljava/util/List<Ldev/langchain4j/rag/content/Content;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #213()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"EmbeddingStoreContentRetrieverTest.java\"\n InnerClasses:\n-  public static #208= #142 of #32;        // EmbeddingStoreContentRetrieverBuilder=class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder of class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n+  public static #224= #152 of #101;       // EmbeddingStoreContentRetrieverBuilder=class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever$EmbeddingStoreContentRetrieverBuilder of class dev/langchain4j/rag/content/retriever/EmbeddingStoreContentRetriever\n"}]}, {"source1": "dev/langchain4j/rag/query/MetadataTest.class", "source2": "dev/langchain4j/rag/query/MetadataTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,150 +1,150 @@\n-  SHA-256 checksum eadecc4bab15c6755d00fddf5fd85b4cb5358de04863939f91b82044f0fa0e15\n+  SHA-256 checksum b84f2327f83129b1a5fc15fba5bed02e8f15c9d811111b67391b0b65912baabe\n   Compiled from \"MetadataTest.java\"\n class dev.langchain4j.rag.query.MetadataTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #31                         // dev/langchain4j/rag/query/MetadataTest\n-  super_class: #32                        // java/lang/Object\n+  this_class: #109                        // dev/langchain4j/rag/query/MetadataTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 4, attributes: 1\n Constant pool:\n-    #1 = Methodref          #32.#62       // java/lang/Object.\"<init>\":()V\n-    #2 = String             #63           // user message\n-    #3 = Methodref          #64.#65       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-    #4 = Class              #66           // dev/langchain4j/data/message/ChatMessage\n-    #5 = String             #67           // Hello\n-    #6 = String             #68           // Hi, how can I help you today?\n-    #7 = Methodref          #69.#70       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-    #8 = Methodref          #71.#72       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-    #9 = Methodref          #73.#74       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #10 = Methodref          #75.#76       // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-   #11 = Methodref          #75.#77       // dev/langchain4j/rag/query/Metadata.userMessage:()Ldev/langchain4j/data/message/UserMessage;\n-   #12 = Methodref          #78.#79       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #13 = Methodref          #23.#80       // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #14 = Methodref          #75.#81       // dev/langchain4j/rag/query/Metadata.chatMemoryId:()Ljava/lang/Object;\n-   #15 = Methodref          #75.#82       // dev/langchain4j/rag/query/Metadata.chatMemory:()Ljava/util/List;\n-   #16 = Methodref          #78.#83       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #17 = Methodref          #84.#85       // org/assertj/core/api/ListAssert.isNotSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #18 = Methodref          #84.#86       // org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #19 = String             #87           // another user message\n-   #20 = String             #88           // Bye\n-   #21 = String             #89           // Bye-bye\n-   #22 = Methodref          #23.#90       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #23 = Class              #91           // org/assertj/core/api/ObjectAssert\n-   #24 = Methodref          #23.#92       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #25 = Methodref          #23.#93       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Methodref          #23.#94       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #27 = Methodref          #75.#95       // dev/langchain4j/rag/query/Metadata.toString:()Ljava/lang/String;\n-   #28 = Methodref          #78.#96       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #29 = String             #97           // Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] }\n-   #30 = Methodref          #98.#99       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #31 = Class              #100          // dev/langchain4j/rag/query/MetadataTest\n-   #32 = Class              #101          // java/lang/Object\n-   #33 = Utf8               <init>\n-   #34 = Utf8               ()V\n-   #35 = Utf8               Code\n-   #36 = Utf8               LineNumberTable\n-   #37 = Utf8               LocalVariableTable\n-   #38 = Utf8               this\n-   #39 = Utf8               Ldev/langchain4j/rag/query/MetadataTest;\n-   #40 = Utf8               test_create\n-   #41 = Utf8               userMessage\n-   #42 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-   #43 = Utf8               chatMemoryId\n-   #44 = Utf8               I\n-   #45 = Utf8               chatMemory\n-   #46 = Utf8               Ljava/util/List;\n-   #47 = Utf8               metadata\n-   #48 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n-   #49 = Utf8               LocalVariableTypeTable\n-   #50 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-   #51 = Utf8               RuntimeVisibleAnnotations\n-   #52 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #53 = Utf8               test_equals_hashCode\n-   #54 = Utf8               metadata1\n-   #55 = Utf8               metadata2\n-   #56 = Utf8               metadata3\n-   #57 = Utf8               test_toString\n-   #58 = Utf8               toString\n-   #59 = Utf8               Ljava/lang/String;\n-   #60 = Utf8               SourceFile\n-   #61 = Utf8               MetadataTest.java\n-   #62 = NameAndType        #33:#34       // \"<init>\":()V\n-   #63 = Utf8               user message\n-   #64 = Class              #102          // dev/langchain4j/data/message/UserMessage\n-   #65 = NameAndType        #103:#104     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #66 = Utf8               dev/langchain4j/data/message/ChatMessage\n-   #67 = Utf8               Hello\n-   #68 = Utf8               Hi, how can I help you today?\n-   #69 = Class              #105          // dev/langchain4j/data/message/AiMessage\n-   #70 = NameAndType        #103:#106     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #71 = Class              #107          // java/util/Arrays\n-   #72 = NameAndType        #108:#109     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #73 = Class              #110          // java/lang/Integer\n-   #74 = NameAndType        #111:#112     // valueOf:(I)Ljava/lang/Integer;\n-   #75 = Class              #113          // dev/langchain4j/rag/query/Metadata\n-   #76 = NameAndType        #103:#114     // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-   #77 = NameAndType        #41:#115      // userMessage:()Ldev/langchain4j/data/message/UserMessage;\n-   #78 = Class              #116          // org/assertj/core/api/Assertions\n-   #79 = NameAndType        #117:#118     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #80 = NameAndType        #119:#120     // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #81 = NameAndType        #43:#121      // chatMemoryId:()Ljava/lang/Object;\n-   #82 = NameAndType        #45:#122      // chatMemory:()Ljava/util/List;\n-   #83 = NameAndType        #117:#123     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #84 = Class              #124          // org/assertj/core/api/ListAssert\n-   #85 = NameAndType        #125:#126     // isNotSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #86 = NameAndType        #127:#126     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-   #87 = Utf8               another user message\n-   #88 = Utf8               Bye\n-   #89 = Utf8               Bye-bye\n-   #90 = NameAndType        #128:#120     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #91 = Utf8               org/assertj/core/api/ObjectAssert\n-   #92 = NameAndType        #129:#120     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #93 = NameAndType        #127:#120     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #94 = NameAndType        #130:#120     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #95 = NameAndType        #58:#131      // toString:()Ljava/lang/String;\n-   #96 = NameAndType        #117:#132     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #97 = Utf8               Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] }\n-   #98 = Class              #133          // org/assertj/core/api/AbstractStringAssert\n-   #99 = NameAndType        #127:#132     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #100 = Utf8               dev/langchain4j/rag/query/MetadataTest\n-  #101 = Utf8               java/lang/Object\n-  #102 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #103 = Utf8               from\n-  #104 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #105 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #106 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #107 = Utf8               java/util/Arrays\n-  #108 = Utf8               asList\n-  #109 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #110 = Utf8               java/lang/Integer\n-  #111 = Utf8               valueOf\n-  #112 = Utf8               (I)Ljava/lang/Integer;\n-  #113 = Utf8               dev/langchain4j/rag/query/Metadata\n-  #114 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-  #115 = Utf8               ()Ldev/langchain4j/data/message/UserMessage;\n-  #116 = Utf8               org/assertj/core/api/Assertions\n-  #117 = Utf8               assertThat\n-  #118 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #119 = Utf8               isSameAs\n-  #120 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #121 = Utf8               ()Ljava/lang/Object;\n-  #122 = Utf8               ()Ljava/util/List;\n-  #123 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #124 = Utf8               org/assertj/core/api/ListAssert\n-  #125 = Utf8               isNotSameAs\n-  #126 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n-  #127 = Utf8               isEqualTo\n-  #128 = Utf8               isNotEqualTo\n-  #129 = Utf8               doesNotHaveSameHashCodeAs\n-  #130 = Utf8               hasSameHashCodeAs\n-  #131 = Utf8               ()Ljava/lang/String;\n-  #132 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #133 = Utf8               org/assertj/core/api/AbstractStringAssert\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // user message\n+    #8 = Utf8               user message\n+    #9 = Methodref          #10.#11       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #10 = Class              #12           // dev/langchain4j/data/message/UserMessage\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #12 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #15 = Class              #16           // dev/langchain4j/data/message/ChatMessage\n+   #16 = Utf8               dev/langchain4j/data/message/ChatMessage\n+   #17 = String             #18           // Hello\n+   #18 = Utf8               Hello\n+   #19 = String             #20           // Hi, how can I help you today?\n+   #20 = Utf8               Hi, how can I help you today?\n+   #21 = Methodref          #22.#23       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #22 = Class              #24           // dev/langchain4j/data/message/AiMessage\n+   #23 = NameAndType        #13:#25       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #24 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #25 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #26 = Methodref          #27.#28       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #27 = Class              #29           // java/util/Arrays\n+   #28 = NameAndType        #30:#31       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #29 = Utf8               java/util/Arrays\n+   #30 = Utf8               asList\n+   #31 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #32 = Methodref          #33.#34       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #33 = Class              #35           // java/lang/Integer\n+   #34 = NameAndType        #36:#37       // valueOf:(I)Ljava/lang/Integer;\n+   #35 = Utf8               java/lang/Integer\n+   #36 = Utf8               valueOf\n+   #37 = Utf8               (I)Ljava/lang/Integer;\n+   #38 = Methodref          #39.#40       // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #39 = Class              #41           // dev/langchain4j/rag/query/Metadata\n+   #40 = NameAndType        #13:#42       // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #41 = Utf8               dev/langchain4j/rag/query/Metadata\n+   #42 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #43 = Methodref          #39.#44       // dev/langchain4j/rag/query/Metadata.userMessage:()Ldev/langchain4j/data/message/UserMessage;\n+   #44 = NameAndType        #45:#46       // userMessage:()Ldev/langchain4j/data/message/UserMessage;\n+   #45 = Utf8               userMessage\n+   #46 = Utf8               ()Ldev/langchain4j/data/message/UserMessage;\n+   #47 = Methodref          #48.#49       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #48 = Class              #50           // org/assertj/core/api/Assertions\n+   #49 = NameAndType        #51:#52       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #50 = Utf8               org/assertj/core/api/Assertions\n+   #51 = Utf8               assertThat\n+   #52 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #53 = Methodref          #54.#55       // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #54 = Class              #56           // org/assertj/core/api/ObjectAssert\n+   #55 = NameAndType        #57:#58       // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #56 = Utf8               org/assertj/core/api/ObjectAssert\n+   #57 = Utf8               isSameAs\n+   #58 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #59 = Methodref          #39.#60       // dev/langchain4j/rag/query/Metadata.chatMemoryId:()Ljava/lang/Object;\n+   #60 = NameAndType        #61:#62       // chatMemoryId:()Ljava/lang/Object;\n+   #61 = Utf8               chatMemoryId\n+   #62 = Utf8               ()Ljava/lang/Object;\n+   #63 = Methodref          #39.#64       // dev/langchain4j/rag/query/Metadata.chatMemory:()Ljava/util/List;\n+   #64 = NameAndType        #65:#66       // chatMemory:()Ljava/util/List;\n+   #65 = Utf8               chatMemory\n+   #66 = Utf8               ()Ljava/util/List;\n+   #67 = Methodref          #48.#68       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #68 = NameAndType        #51:#69       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #69 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #70 = Methodref          #71.#72       // org/assertj/core/api/ListAssert.isNotSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #71 = Class              #73           // org/assertj/core/api/ListAssert\n+   #72 = NameAndType        #74:#75       // isNotSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #73 = Utf8               org/assertj/core/api/ListAssert\n+   #74 = Utf8               isNotSameAs\n+   #75 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #76 = Methodref          #71.#77       // org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #77 = NameAndType        #78:#75       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+   #78 = Utf8               isEqualTo\n+   #79 = String             #80           // another user message\n+   #80 = Utf8               another user message\n+   #81 = String             #82           // Bye\n+   #82 = Utf8               Bye\n+   #83 = String             #84           // Bye-bye\n+   #84 = Utf8               Bye-bye\n+   #85 = Methodref          #54.#86       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #86 = NameAndType        #87:#58       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #87 = Utf8               isNotEqualTo\n+   #88 = Methodref          #54.#89       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #89 = NameAndType        #90:#58       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #90 = Utf8               doesNotHaveSameHashCodeAs\n+   #91 = Methodref          #54.#92       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #92 = NameAndType        #78:#58       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #93 = Methodref          #54.#94       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = NameAndType        #95:#58       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #95 = Utf8               hasSameHashCodeAs\n+   #96 = Methodref          #39.#97       // dev/langchain4j/rag/query/Metadata.toString:()Ljava/lang/String;\n+   #97 = NameAndType        #98:#99       // toString:()Ljava/lang/String;\n+   #98 = Utf8               toString\n+   #99 = Utf8               ()Ljava/lang/String;\n+  #100 = Methodref          #48.#101      // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #101 = NameAndType        #51:#102      // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #102 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #103 = String             #104          // Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] }\n+  #104 = Utf8               Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] }\n+  #105 = Methodref          #106.#107     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #106 = Class              #108          // org/assertj/core/api/AbstractStringAssert\n+  #107 = NameAndType        #78:#102      // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #108 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #109 = Class              #110          // dev/langchain4j/rag/query/MetadataTest\n+  #110 = Utf8               dev/langchain4j/rag/query/MetadataTest\n+  #111 = Utf8               Code\n+  #112 = Utf8               LineNumberTable\n+  #113 = Utf8               LocalVariableTable\n+  #114 = Utf8               this\n+  #115 = Utf8               Ldev/langchain4j/rag/query/MetadataTest;\n+  #116 = Utf8               test_create\n+  #117 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+  #118 = Utf8               I\n+  #119 = Utf8               Ljava/util/List;\n+  #120 = Utf8               metadata\n+  #121 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n+  #122 = Utf8               LocalVariableTypeTable\n+  #123 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #124 = Utf8               RuntimeVisibleAnnotations\n+  #125 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #126 = Utf8               test_equals_hashCode\n+  #127 = Utf8               metadata1\n+  #128 = Utf8               metadata2\n+  #129 = Utf8               metadata3\n+  #130 = Utf8               test_toString\n+  #131 = Utf8               Ljava/lang/String;\n+  #132 = Utf8               SourceFile\n+  #133 = Utf8               MetadataTest.java\n {\n   dev.langchain4j.rag.query.MetadataTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -157,59 +157,59 @@\n             0       5     0  this   Ldev/langchain4j/rag/query/MetadataTest;\n \n   void test_create();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=5, args_size=1\n-         0: ldc           #2                  // String user message\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String user message\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: astore_1\n          6: bipush        42\n          8: istore_2\n          9: iconst_2\n-        10: anewarray     #4                  // class dev/langchain4j/data/message/ChatMessage\n+        10: anewarray     #15                 // class dev/langchain4j/data/message/ChatMessage\n         13: dup\n         14: iconst_0\n-        15: ldc           #5                  // String Hello\n-        17: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        15: ldc           #17                 // String Hello\n+        17: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         20: aastore\n         21: dup\n         22: iconst_1\n-        23: ldc           #6                  // String Hi, how can I help you today?\n-        25: invokestatic  #7                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        23: ldc           #19                 // String Hi, how can I help you today?\n+        25: invokestatic  #21                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         28: aastore\n-        29: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        29: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         32: astore_3\n         33: aload_1\n         34: iload_2\n-        35: invokestatic  #9                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        35: invokestatic  #32                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         38: aload_3\n-        39: invokestatic  #10                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        39: invokestatic  #38                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         42: astore        4\n         44: aload         4\n-        46: invokevirtual #11                 // Method dev/langchain4j/rag/query/Metadata.userMessage:()Ldev/langchain4j/data/message/UserMessage;\n-        49: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        46: invokevirtual #43                 // Method dev/langchain4j/rag/query/Metadata.userMessage:()Ldev/langchain4j/data/message/UserMessage;\n+        49: invokestatic  #47                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         52: aload_1\n-        53: invokevirtual #13                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        53: invokevirtual #53                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         56: pop\n         57: aload         4\n-        59: invokevirtual #14                 // Method dev/langchain4j/rag/query/Metadata.chatMemoryId:()Ljava/lang/Object;\n-        62: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        59: invokevirtual #59                 // Method dev/langchain4j/rag/query/Metadata.chatMemoryId:()Ljava/lang/Object;\n+        62: invokestatic  #47                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         65: iload_2\n-        66: invokestatic  #9                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        69: invokevirtual #13                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        66: invokestatic  #32                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        69: invokevirtual #53                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         72: pop\n         73: aload         4\n-        75: invokevirtual #15                 // Method dev/langchain4j/rag/query/Metadata.chatMemory:()Ljava/util/List;\n-        78: invokestatic  #16                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        75: invokevirtual #63                 // Method dev/langchain4j/rag/query/Metadata.chatMemory:()Ljava/util/List;\n+        78: invokestatic  #67                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         81: aload_3\n-        82: invokevirtual #17                 // Method org/assertj/core/api/ListAssert.isNotSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+        82: invokevirtual #70                 // Method org/assertj/core/api/ListAssert.isNotSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n         85: aload_3\n-        86: invokevirtual #18                 // Method org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n+        86: invokevirtual #76                 // Method org/assertj/core/api/ListAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/ListAssert;\n         89: pop\n         90: return\n       LineNumberTable:\n         line 19: 0\n         line 20: 6\n         line 21: 9\n         line 22: 17\n@@ -229,94 +229,94 @@\n             9      82     2 chatMemoryId   I\n            33      58     3 chatMemory   Ljava/util/List;\n            44      47     4 metadata   Ldev/langchain4j/rag/query/Metadata;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            33      58     3 chatMemory   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n     RuntimeVisibleAnnotations:\n-      0: #52()\n+      0: #125()\n         org.junit.jupiter.api.Test\n \n   void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=4, args_size=1\n-         0: ldc           #2                  // String user message\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String user message\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: bipush        42\n-         7: invokestatic  #9                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         7: invokestatic  #32                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         10: iconst_2\n-        11: anewarray     #4                  // class dev/langchain4j/data/message/ChatMessage\n+        11: anewarray     #15                 // class dev/langchain4j/data/message/ChatMessage\n         14: dup\n         15: iconst_0\n-        16: ldc           #5                  // String Hello\n-        18: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        16: ldc           #17                 // String Hello\n+        18: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         21: aastore\n         22: dup\n         23: iconst_1\n-        24: ldc           #6                  // String Hi, how can I help you today?\n-        26: invokestatic  #7                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        24: ldc           #19                 // String Hi, how can I help you today?\n+        26: invokestatic  #21                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         29: aastore\n-        30: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        33: invokestatic  #10                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        30: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        33: invokestatic  #38                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         36: astore_1\n-        37: ldc           #19                 // String another user message\n-        39: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        37: ldc           #79                 // String another user message\n+        39: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         42: sipush        666\n-        45: invokestatic  #9                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        45: invokestatic  #32                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         48: iconst_2\n-        49: anewarray     #4                  // class dev/langchain4j/data/message/ChatMessage\n+        49: anewarray     #15                 // class dev/langchain4j/data/message/ChatMessage\n         52: dup\n         53: iconst_0\n-        54: ldc           #20                 // String Bye\n-        56: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        54: ldc           #81                 // String Bye\n+        56: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         59: aastore\n         60: dup\n         61: iconst_1\n-        62: ldc           #21                 // String Bye-bye\n-        64: invokestatic  #7                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        62: ldc           #83                 // String Bye-bye\n+        64: invokestatic  #21                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         67: aastore\n-        68: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        71: invokestatic  #10                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        68: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        71: invokestatic  #38                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         74: astore_2\n-        75: ldc           #2                  // String user message\n-        77: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        75: ldc           #7                  // String user message\n+        77: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         80: bipush        42\n-        82: invokestatic  #9                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        82: invokestatic  #32                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         85: iconst_2\n-        86: anewarray     #4                  // class dev/langchain4j/data/message/ChatMessage\n+        86: anewarray     #15                 // class dev/langchain4j/data/message/ChatMessage\n         89: dup\n         90: iconst_0\n-        91: ldc           #5                  // String Hello\n-        93: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        91: ldc           #17                 // String Hello\n+        93: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         96: aastore\n         97: dup\n         98: iconst_1\n-        99: ldc           #6                  // String Hi, how can I help you today?\n-       101: invokestatic  #7                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        99: ldc           #19                 // String Hi, how can I help you today?\n+       101: invokestatic  #21                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n        104: aastore\n-       105: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       108: invokestatic  #10                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+       105: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       108: invokestatic  #38                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n        111: astore_3\n        112: aload_1\n-       113: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       113: invokestatic  #47                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        116: aload_2\n-       117: invokevirtual #22                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       120: checkcast     #23                 // class org/assertj/core/api/ObjectAssert\n+       117: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       120: checkcast     #54                 // class org/assertj/core/api/ObjectAssert\n        123: aload_2\n-       124: invokevirtual #24                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       124: invokevirtual #88                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        127: pop\n        128: aload_1\n-       129: invokestatic  #12                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       129: invokestatic  #47                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        132: aload_3\n-       133: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       136: checkcast     #23                 // class org/assertj/core/api/ObjectAssert\n+       133: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       136: checkcast     #54                 // class org/assertj/core/api/ObjectAssert\n        139: aload_3\n-       140: invokevirtual #26                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       140: invokevirtual #93                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        143: pop\n        144: return\n       LineNumberTable:\n         line 43: 0\n         line 44: 2\n         line 45: 7\n         line 47: 18\n@@ -347,48 +347,48 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     145     0  this   Ldev/langchain4j/rag/query/MetadataTest;\n            37     108     1 metadata1   Ldev/langchain4j/rag/query/Metadata;\n            75      70     2 metadata2   Ldev/langchain4j/rag/query/Metadata;\n           112      33     3 metadata3   Ldev/langchain4j/rag/query/Metadata;\n     RuntimeVisibleAnnotations:\n-      0: #52()\n+      0: #125()\n         org.junit.jupiter.api.Test\n \n   void test_toString();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=3, args_size=1\n-         0: ldc           #2                  // String user message\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #7                  // String user message\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: bipush        42\n-         7: invokestatic  #9                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         7: invokestatic  #32                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         10: iconst_2\n-        11: anewarray     #4                  // class dev/langchain4j/data/message/ChatMessage\n+        11: anewarray     #15                 // class dev/langchain4j/data/message/ChatMessage\n         14: dup\n         15: iconst_0\n-        16: ldc           #5                  // String Hello\n-        18: invokestatic  #3                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        16: ldc           #17                 // String Hello\n+        18: invokestatic  #9                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         21: aastore\n         22: dup\n         23: iconst_1\n-        24: ldc           #6                  // String Hi, how can I help you today?\n-        26: invokestatic  #7                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        24: ldc           #19                 // String Hi, how can I help you today?\n+        26: invokestatic  #21                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         29: aastore\n-        30: invokestatic  #8                  // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        33: invokestatic  #10                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        30: invokestatic  #26                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        33: invokestatic  #38                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         36: astore_1\n         37: aload_1\n-        38: invokevirtual #27                 // Method dev/langchain4j/rag/query/Metadata.toString:()Ljava/lang/String;\n+        38: invokevirtual #96                 // Method dev/langchain4j/rag/query/Metadata.toString:()Ljava/lang/String;\n         41: astore_2\n         42: aload_2\n-        43: invokestatic  #28                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        46: ldc           #29                 // String Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] }\n-        48: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        43: invokestatic  #100                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        46: ldc           #103                // String Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] }\n+        48: invokevirtual #105                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         51: pop\n         52: return\n       LineNumberTable:\n         line 84: 0\n         line 85: 2\n         line 86: 7\n         line 88: 18\n@@ -400,11 +400,11 @@\n         line 102: 52\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      53     0  this   Ldev/langchain4j/rag/query/MetadataTest;\n            37      16     1 metadata   Ldev/langchain4j/rag/query/Metadata;\n            42      11     2 toString   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #52()\n+      0: #125()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"MetadataTest.java\"\n"}]}, {"source1": "dev/langchain4j/rag/query/QueryTest.class", "source2": "dev/langchain4j/rag/query/QueryTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,149 +1,149 @@\n-  SHA-256 checksum a4cba7af6778a6ebcba56832f4c50f43811422c06dc93f3f0cbc68ef80739637\n+  SHA-256 checksum 4e706c41c5b961273f48c3bda08c8f61214f10cbd62ef5405e167368388268b3\n   Compiled from \"QueryTest.java\"\n class dev.langchain4j.rag.query.QueryTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #32                         // dev/langchain4j/rag/query/QueryTest\n-  super_class: #33                        // java/lang/Object\n+  this_class: #108                        // dev/langchain4j/rag/query/QueryTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 5, attributes: 1\n Constant pool:\n-    #1 = Methodref          #33.#62       // java/lang/Object.\"<init>\":()V\n-    #2 = String             #44           // query\n-    #3 = Methodref          #63.#64       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-    #4 = Methodref          #63.#65       // dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-    #5 = Methodref          #66.#67       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #6 = Methodref          #68.#69       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-    #7 = Methodref          #63.#70       // dev/langchain4j/rag/query/Query.metadata:()Ldev/langchain4j/rag/query/Metadata;\n-    #8 = Methodref          #66.#71       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-    #9 = Methodref          #26.#72       // org/assertj/core/api/ObjectAssert.isNull:()V\n-   #10 = String             #73           // user message\n-   #11 = Methodref          #74.#75       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #12 = Methodref          #76.#77       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #13 = Class              #78           // dev/langchain4j/data/message/ChatMessage\n-   #14 = String             #79           // Hello\n-   #15 = String             #80           // Hi, how can I help you today?\n-   #16 = Methodref          #81.#82       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #17 = Methodref          #83.#84       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #18 = Methodref          #85.#86       // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-   #19 = Methodref          #63.#87       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-   #20 = Methodref          #26.#88       // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #21 = String             #89           // another user message\n-   #22 = String             #90           // Bye\n-   #23 = String             #91           // Bye-bye\n-   #24 = String             #92           // query 2\n-   #25 = Methodref          #26.#93       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #26 = Class              #94           // org/assertj/core/api/ObjectAssert\n-   #27 = Methodref          #26.#95       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #28 = Methodref          #26.#96       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #29 = Methodref          #26.#97       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #30 = Methodref          #63.#98       // dev/langchain4j/rag/query/Query.toString:()Ljava/lang/String;\n-   #31 = String             #99           // Query { text = \\\"query\\\", metadata = Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] } }\n-   #32 = Class              #100          // dev/langchain4j/rag/query/QueryTest\n-   #33 = Class              #101          // java/lang/Object\n-   #34 = Utf8               <init>\n-   #35 = Utf8               ()V\n-   #36 = Utf8               Code\n-   #37 = Utf8               LineNumberTable\n-   #38 = Utf8               LocalVariableTable\n-   #39 = Utf8               this\n-   #40 = Utf8               Ldev/langchain4j/rag/query/QueryTest;\n-   #41 = Utf8               test_create\n-   #42 = Utf8               queryText\n-   #43 = Utf8               Ljava/lang/String;\n-   #44 = Utf8               query\n-   #45 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #46 = Utf8               RuntimeVisibleAnnotations\n-   #47 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #48 = Utf8               test_create_with_metadata\n-   #49 = Utf8               metadata\n-   #50 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n-   #51 = Utf8               test_equals_hashCode\n-   #52 = Utf8               metadata1\n-   #53 = Utf8               query1\n-   #54 = Utf8               metadata2\n-   #55 = Utf8               query2\n-   #56 = Utf8               metadata3\n-   #57 = Utf8               query3\n-   #58 = Utf8               test_toString\n-   #59 = Utf8               toString\n-   #60 = Utf8               SourceFile\n-   #61 = Utf8               QueryTest.java\n-   #62 = NameAndType        #34:#35       // \"<init>\":()V\n-   #63 = Class              #102          // dev/langchain4j/rag/query/Query\n-   #64 = NameAndType        #103:#104     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #65 = NameAndType        #105:#106     // text:()Ljava/lang/String;\n-   #66 = Class              #107          // org/assertj/core/api/Assertions\n-   #67 = NameAndType        #108:#109     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #68 = Class              #110          // org/assertj/core/api/AbstractStringAssert\n-   #69 = NameAndType        #111:#109     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #70 = NameAndType        #49:#112      // metadata:()Ldev/langchain4j/rag/query/Metadata;\n-   #71 = NameAndType        #108:#113     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #72 = NameAndType        #114:#35      // isNull:()V\n-   #73 = Utf8               user message\n-   #74 = Class              #115          // dev/langchain4j/data/message/UserMessage\n-   #75 = NameAndType        #103:#116     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #76 = Class              #117          // java/lang/Integer\n-   #77 = NameAndType        #118:#119     // valueOf:(I)Ljava/lang/Integer;\n-   #78 = Utf8               dev/langchain4j/data/message/ChatMessage\n-   #79 = Utf8               Hello\n-   #80 = Utf8               Hi, how can I help you today?\n-   #81 = Class              #120          // dev/langchain4j/data/message/AiMessage\n-   #82 = NameAndType        #103:#121     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #83 = Class              #122          // java/util/Arrays\n-   #84 = NameAndType        #123:#124     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #85 = Class              #125          // dev/langchain4j/rag/query/Metadata\n-   #86 = NameAndType        #103:#126     // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-   #87 = NameAndType        #103:#127     // from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-   #88 = NameAndType        #128:#129     // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #89 = Utf8               another user message\n-   #90 = Utf8               Bye\n-   #91 = Utf8               Bye-bye\n-   #92 = Utf8               query 2\n-   #93 = NameAndType        #130:#129     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #94 = Utf8               org/assertj/core/api/ObjectAssert\n-   #95 = NameAndType        #131:#129     // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #96 = NameAndType        #111:#129     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #97 = NameAndType        #132:#129     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #98 = NameAndType        #59:#106      // toString:()Ljava/lang/String;\n-   #99 = Utf8               Query { text = \\\"query\\\", metadata = Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] } }\n-  #100 = Utf8               dev/langchain4j/rag/query/QueryTest\n-  #101 = Utf8               java/lang/Object\n-  #102 = Utf8               dev/langchain4j/rag/query/Query\n-  #103 = Utf8               from\n-  #104 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #105 = Utf8               text\n-  #106 = Utf8               ()Ljava/lang/String;\n-  #107 = Utf8               org/assertj/core/api/Assertions\n-  #108 = Utf8               assertThat\n-  #109 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #110 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #111 = Utf8               isEqualTo\n-  #112 = Utf8               ()Ldev/langchain4j/rag/query/Metadata;\n-  #113 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #114 = Utf8               isNull\n-  #115 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #116 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #117 = Utf8               java/lang/Integer\n-  #118 = Utf8               valueOf\n-  #119 = Utf8               (I)Ljava/lang/Integer;\n-  #120 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #121 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #122 = Utf8               java/util/Arrays\n-  #123 = Utf8               asList\n-  #124 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #125 = Utf8               dev/langchain4j/rag/query/Metadata\n-  #126 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-  #127 = Utf8               (Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-  #128 = Utf8               isSameAs\n-  #129 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #130 = Utf8               isNotEqualTo\n-  #131 = Utf8               doesNotHaveSameHashCodeAs\n-  #132 = Utf8               hasSameHashCodeAs\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // query\n+    #8 = Utf8               query\n+    #9 = Methodref          #10.#11       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #10 = Class              #12           // dev/langchain4j/rag/query/Query\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #12 = Utf8               dev/langchain4j/rag/query/Query\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #15 = Methodref          #10.#16       // dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+   #16 = NameAndType        #17:#18       // text:()Ljava/lang/String;\n+   #17 = Utf8               text\n+   #18 = Utf8               ()Ljava/lang/String;\n+   #19 = Methodref          #20.#21       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #20 = Class              #22           // org/assertj/core/api/Assertions\n+   #21 = NameAndType        #23:#24       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #22 = Utf8               org/assertj/core/api/Assertions\n+   #23 = Utf8               assertThat\n+   #24 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #25 = Methodref          #26.#27       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #26 = Class              #28           // org/assertj/core/api/AbstractStringAssert\n+   #27 = NameAndType        #29:#24       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #28 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #29 = Utf8               isEqualTo\n+   #30 = Methodref          #10.#31       // dev/langchain4j/rag/query/Query.metadata:()Ldev/langchain4j/rag/query/Metadata;\n+   #31 = NameAndType        #32:#33       // metadata:()Ldev/langchain4j/rag/query/Metadata;\n+   #32 = Utf8               metadata\n+   #33 = Utf8               ()Ldev/langchain4j/rag/query/Metadata;\n+   #34 = Methodref          #20.#35       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #35 = NameAndType        #23:#36       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #36 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #37 = Methodref          #38.#39       // org/assertj/core/api/ObjectAssert.isNull:()V\n+   #38 = Class              #40           // org/assertj/core/api/ObjectAssert\n+   #39 = NameAndType        #41:#6        // isNull:()V\n+   #40 = Utf8               org/assertj/core/api/ObjectAssert\n+   #41 = Utf8               isNull\n+   #42 = String             #43           // user message\n+   #43 = Utf8               user message\n+   #44 = Methodref          #45.#46       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #45 = Class              #47           // dev/langchain4j/data/message/UserMessage\n+   #46 = NameAndType        #13:#48       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #47 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #48 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #49 = Methodref          #50.#51       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #50 = Class              #52           // java/lang/Integer\n+   #51 = NameAndType        #53:#54       // valueOf:(I)Ljava/lang/Integer;\n+   #52 = Utf8               java/lang/Integer\n+   #53 = Utf8               valueOf\n+   #54 = Utf8               (I)Ljava/lang/Integer;\n+   #55 = Class              #56           // dev/langchain4j/data/message/ChatMessage\n+   #56 = Utf8               dev/langchain4j/data/message/ChatMessage\n+   #57 = String             #58           // Hello\n+   #58 = Utf8               Hello\n+   #59 = String             #60           // Hi, how can I help you today?\n+   #60 = Utf8               Hi, how can I help you today?\n+   #61 = Methodref          #62.#63       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #62 = Class              #64           // dev/langchain4j/data/message/AiMessage\n+   #63 = NameAndType        #13:#65       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #64 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #65 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #66 = Methodref          #67.#68       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #67 = Class              #69           // java/util/Arrays\n+   #68 = NameAndType        #70:#71       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #69 = Utf8               java/util/Arrays\n+   #70 = Utf8               asList\n+   #71 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #72 = Methodref          #73.#74       // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #73 = Class              #75           // dev/langchain4j/rag/query/Metadata\n+   #74 = NameAndType        #13:#76       // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #75 = Utf8               dev/langchain4j/rag/query/Metadata\n+   #76 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #77 = Methodref          #10.#78       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+   #78 = NameAndType        #13:#79       // from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+   #79 = Utf8               (Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+   #80 = Methodref          #38.#81       // org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #81 = NameAndType        #82:#83       // isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #82 = Utf8               isSameAs\n+   #83 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #84 = String             #85           // another user message\n+   #85 = Utf8               another user message\n+   #86 = String             #87           // Bye\n+   #87 = Utf8               Bye\n+   #88 = String             #89           // Bye-bye\n+   #89 = Utf8               Bye-bye\n+   #90 = String             #91           // query 2\n+   #91 = Utf8               query 2\n+   #92 = Methodref          #38.#93       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #93 = NameAndType        #94:#83       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = Utf8               isNotEqualTo\n+   #95 = Methodref          #38.#96       // org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #96 = NameAndType        #97:#83       // doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #97 = Utf8               doesNotHaveSameHashCodeAs\n+   #98 = Methodref          #38.#99       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #99 = NameAndType        #29:#83       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #100 = Methodref          #38.#101      // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #101 = NameAndType        #102:#83      // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+  #102 = Utf8               hasSameHashCodeAs\n+  #103 = Methodref          #10.#104      // dev/langchain4j/rag/query/Query.toString:()Ljava/lang/String;\n+  #104 = NameAndType        #105:#18      // toString:()Ljava/lang/String;\n+  #105 = Utf8               toString\n+  #106 = String             #107          // Query { text = \\\"query\\\", metadata = Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] } }\n+  #107 = Utf8               Query { text = \\\"query\\\", metadata = Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] } }\n+  #108 = Class              #109          // dev/langchain4j/rag/query/QueryTest\n+  #109 = Utf8               dev/langchain4j/rag/query/QueryTest\n+  #110 = Utf8               Code\n+  #111 = Utf8               LineNumberTable\n+  #112 = Utf8               LocalVariableTable\n+  #113 = Utf8               this\n+  #114 = Utf8               Ldev/langchain4j/rag/query/QueryTest;\n+  #115 = Utf8               test_create\n+  #116 = Utf8               queryText\n+  #117 = Utf8               Ljava/lang/String;\n+  #118 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #119 = Utf8               RuntimeVisibleAnnotations\n+  #120 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #121 = Utf8               test_create_with_metadata\n+  #122 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n+  #123 = Utf8               test_equals_hashCode\n+  #124 = Utf8               metadata1\n+  #125 = Utf8               query1\n+  #126 = Utf8               metadata2\n+  #127 = Utf8               query2\n+  #128 = Utf8               metadata3\n+  #129 = Utf8               query3\n+  #130 = Utf8               test_toString\n+  #131 = Utf8               SourceFile\n+  #132 = Utf8               QueryTest.java\n {\n   dev.langchain4j.rag.query.QueryTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -156,86 +156,86 @@\n             0       5     0  this   Ldev/langchain4j/rag/query/QueryTest;\n \n   void test_create();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=3, args_size=1\n-         0: ldc           #2                  // String query\n+         0: ldc           #7                  // String query\n          2: astore_1\n          3: aload_1\n-         4: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         4: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          7: astore_2\n          8: aload_2\n-         9: invokevirtual #4                  // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-        12: invokestatic  #5                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         9: invokevirtual #15                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+        12: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         15: aload_1\n-        16: invokevirtual #6                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        16: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         19: pop\n         20: aload_2\n-        21: invokevirtual #7                  // Method dev/langchain4j/rag/query/Query.metadata:()Ldev/langchain4j/rag/query/Metadata;\n-        24: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        27: invokevirtual #9                  // Method org/assertj/core/api/ObjectAssert.isNull:()V\n+        21: invokevirtual #30                 // Method dev/langchain4j/rag/query/Query.metadata:()Ldev/langchain4j/rag/query/Metadata;\n+        24: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        27: invokevirtual #37                 // Method org/assertj/core/api/ObjectAssert.isNull:()V\n         30: return\n       LineNumberTable:\n         line 16: 0\n         line 19: 3\n         line 22: 8\n         line 23: 20\n         line 24: 30\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      31     0  this   Ldev/langchain4j/rag/query/QueryTest;\n             3      28     1 queryText   Ljava/lang/String;\n             8      23     2 query   Ldev/langchain4j/rag/query/Query;\n     RuntimeVisibleAnnotations:\n-      0: #47()\n+      0: #120()\n         org.junit.jupiter.api.Test\n \n   void test_create_with_metadata();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=4, args_size=1\n-         0: ldc           #2                  // String query\n+         0: ldc           #7                  // String query\n          2: astore_1\n-         3: ldc           #10                 // String user message\n-         5: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         3: ldc           #42                 // String user message\n+         5: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          8: bipush        42\n-        10: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        10: invokestatic  #49                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         13: iconst_2\n-        14: anewarray     #13                 // class dev/langchain4j/data/message/ChatMessage\n+        14: anewarray     #55                 // class dev/langchain4j/data/message/ChatMessage\n         17: dup\n         18: iconst_0\n-        19: ldc           #14                 // String Hello\n-        21: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        19: ldc           #57                 // String Hello\n+        21: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         24: aastore\n         25: dup\n         26: iconst_1\n-        27: ldc           #15                 // String Hi, how can I help you today?\n-        29: invokestatic  #16                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        27: ldc           #59                 // String Hi, how can I help you today?\n+        29: invokestatic  #61                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         32: aastore\n-        33: invokestatic  #17                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        36: invokestatic  #18                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        33: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        36: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         39: astore_2\n         40: aload_1\n         41: aload_2\n-        42: invokestatic  #19                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        42: invokestatic  #77                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         45: astore_3\n         46: aload_3\n-        47: invokevirtual #4                  // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n-        50: invokestatic  #5                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        47: invokevirtual #15                 // Method dev/langchain4j/rag/query/Query.text:()Ljava/lang/String;\n+        50: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         53: aload_1\n-        54: invokevirtual #6                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        54: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         57: pop\n         58: aload_3\n-        59: invokevirtual #7                  // Method dev/langchain4j/rag/query/Query.metadata:()Ldev/langchain4j/rag/query/Metadata;\n-        62: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        59: invokevirtual #30                 // Method dev/langchain4j/rag/query/Query.metadata:()Ldev/langchain4j/rag/query/Metadata;\n+        62: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         65: aload_2\n-        66: invokevirtual #20                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        66: invokevirtual #80                 // Method org/assertj/core/api/ObjectAssert.isSameAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         69: pop\n         70: return\n       LineNumberTable:\n         line 30: 0\n         line 32: 3\n         line 33: 5\n         line 34: 10\n@@ -250,106 +250,106 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      71     0  this   Ldev/langchain4j/rag/query/QueryTest;\n             3      68     1 queryText   Ljava/lang/String;\n            40      31     2 metadata   Ldev/langchain4j/rag/query/Metadata;\n            46      25     3 query   Ldev/langchain4j/rag/query/Query;\n     RuntimeVisibleAnnotations:\n-      0: #47()\n+      0: #120()\n         org.junit.jupiter.api.Test\n \n   void test_equals_hashCode();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=7, args_size=1\n-         0: ldc           #10                 // String user message\n-         2: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #42                 // String user message\n+         2: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: bipush        42\n-         7: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         7: invokestatic  #49                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         10: iconst_2\n-        11: anewarray     #13                 // class dev/langchain4j/data/message/ChatMessage\n+        11: anewarray     #55                 // class dev/langchain4j/data/message/ChatMessage\n         14: dup\n         15: iconst_0\n-        16: ldc           #14                 // String Hello\n-        18: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        16: ldc           #57                 // String Hello\n+        18: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         21: aastore\n         22: dup\n         23: iconst_1\n-        24: ldc           #15                 // String Hi, how can I help you today?\n-        26: invokestatic  #16                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        24: ldc           #59                 // String Hi, how can I help you today?\n+        26: invokestatic  #61                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         29: aastore\n-        30: invokestatic  #17                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        33: invokestatic  #18                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        30: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        33: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         36: astore_1\n-        37: ldc           #2                  // String query\n+        37: ldc           #7                  // String query\n         39: aload_1\n-        40: invokestatic  #19                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        40: invokestatic  #77                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         43: astore_2\n-        44: ldc           #21                 // String another user message\n-        46: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        44: ldc           #84                 // String another user message\n+        46: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         49: sipush        666\n-        52: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        52: invokestatic  #49                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         55: iconst_2\n-        56: anewarray     #13                 // class dev/langchain4j/data/message/ChatMessage\n+        56: anewarray     #55                 // class dev/langchain4j/data/message/ChatMessage\n         59: dup\n         60: iconst_0\n-        61: ldc           #22                 // String Bye\n-        63: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        61: ldc           #86                 // String Bye\n+        63: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         66: aastore\n         67: dup\n         68: iconst_1\n-        69: ldc           #23                 // String Bye-bye\n-        71: invokestatic  #16                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        69: ldc           #88                 // String Bye-bye\n+        71: invokestatic  #61                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         74: aastore\n-        75: invokestatic  #17                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        78: invokestatic  #18                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        75: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        78: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         81: astore_3\n-        82: ldc           #24                 // String query 2\n+        82: ldc           #90                 // String query 2\n         84: aload_3\n-        85: invokestatic  #19                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        85: invokestatic  #77                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         88: astore        4\n-        90: ldc           #10                 // String user message\n-        92: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        90: ldc           #42                 // String user message\n+        92: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         95: bipush        42\n-        97: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        97: invokestatic  #49                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n        100: iconst_2\n-       101: anewarray     #13                 // class dev/langchain4j/data/message/ChatMessage\n+       101: anewarray     #55                 // class dev/langchain4j/data/message/ChatMessage\n        104: dup\n        105: iconst_0\n-       106: ldc           #14                 // String Hello\n-       108: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+       106: ldc           #57                 // String Hello\n+       108: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n        111: aastore\n        112: dup\n        113: iconst_1\n-       114: ldc           #15                 // String Hi, how can I help you today?\n-       116: invokestatic  #16                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+       114: ldc           #59                 // String Hi, how can I help you today?\n+       116: invokestatic  #61                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n        119: aastore\n-       120: invokestatic  #17                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       123: invokestatic  #18                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+       120: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       123: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n        126: astore        5\n-       128: ldc           #2                  // String query\n+       128: ldc           #7                  // String query\n        130: aload         5\n-       132: invokestatic  #19                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+       132: invokestatic  #77                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n        135: astore        6\n        137: aload_2\n-       138: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       138: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        141: aload         4\n-       143: invokevirtual #25                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       146: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n+       143: invokevirtual #92                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       146: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n        149: aload         4\n-       151: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       151: invokevirtual #95                 // Method org/assertj/core/api/ObjectAssert.doesNotHaveSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        154: pop\n        155: aload_2\n-       156: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       156: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        159: aload         6\n-       161: invokevirtual #28                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       164: checkcast     #26                 // class org/assertj/core/api/ObjectAssert\n+       161: invokevirtual #98                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       164: checkcast     #38                 // class org/assertj/core/api/ObjectAssert\n        167: aload         6\n-       169: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       169: invokevirtual #100                // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        172: pop\n        173: return\n       LineNumberTable:\n         line 53: 0\n         line 54: 2\n         line 55: 7\n         line 57: 18\n@@ -386,52 +386,52 @@\n            37     137     1 metadata1   Ldev/langchain4j/rag/query/Metadata;\n            44     130     2 query1   Ldev/langchain4j/rag/query/Query;\n            82      92     3 metadata2   Ldev/langchain4j/rag/query/Metadata;\n            90      84     4 query2   Ldev/langchain4j/rag/query/Query;\n           128      46     5 metadata3   Ldev/langchain4j/rag/query/Metadata;\n           137      37     6 query3   Ldev/langchain4j/rag/query/Query;\n     RuntimeVisibleAnnotations:\n-      0: #47()\n+      0: #120()\n         org.junit.jupiter.api.Test\n \n   void test_toString();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=4, args_size=1\n-         0: ldc           #10                 // String user message\n-         2: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         0: ldc           #42                 // String user message\n+         2: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          5: bipush        42\n-         7: invokestatic  #12                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+         7: invokestatic  #49                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         10: iconst_2\n-        11: anewarray     #13                 // class dev/langchain4j/data/message/ChatMessage\n+        11: anewarray     #55                 // class dev/langchain4j/data/message/ChatMessage\n         14: dup\n         15: iconst_0\n-        16: ldc           #14                 // String Hello\n-        18: invokestatic  #11                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        16: ldc           #57                 // String Hello\n+        18: invokestatic  #44                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         21: aastore\n         22: dup\n         23: iconst_1\n-        24: ldc           #15                 // String Hi, how can I help you today?\n-        26: invokestatic  #16                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        24: ldc           #59                 // String Hi, how can I help you today?\n+        26: invokestatic  #61                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         29: aastore\n-        30: invokestatic  #17                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        33: invokestatic  #18                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        30: invokestatic  #66                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        33: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         36: astore_1\n-        37: ldc           #2                  // String query\n+        37: ldc           #7                  // String query\n         39: aload_1\n-        40: invokestatic  #19                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        40: invokestatic  #77                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         43: astore_2\n         44: aload_2\n-        45: invokevirtual #30                 // Method dev/langchain4j/rag/query/Query.toString:()Ljava/lang/String;\n+        45: invokevirtual #103                // Method dev/langchain4j/rag/query/Query.toString:()Ljava/lang/String;\n         48: astore_3\n         49: aload_3\n-        50: invokestatic  #5                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        53: ldc           #31                 // String Query { text = \\\"query\\\", metadata = Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] } }\n-        55: invokevirtual #6                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        50: invokestatic  #19                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        53: ldc           #106                // String Query { text = \\\"query\\\", metadata = Metadata { userMessage = UserMessage { name = null contents = [TextContent { text = \\\"user message\\\" }] }, chatMemoryId = 42, chatMemory = [UserMessage { name = null contents = [TextContent { text = \\\"Hello\\\" }] }, AiMessage { text = \\\"Hi, how can I help you today?\\\" toolExecutionRequests = null }] } }\n+        55: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         58: pop\n         59: return\n       LineNumberTable:\n         line 97: 0\n         line 98: 2\n         line 99: 7\n         line 101: 18\n@@ -445,11 +445,11 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      60     0  this   Ldev/langchain4j/rag/query/QueryTest;\n            37      23     1 metadata   Ldev/langchain4j/rag/query/Metadata;\n            44      16     2 query   Ldev/langchain4j/rag/query/Query;\n            49      11     3 toString   Ljava/lang/String;\n     RuntimeVisibleAnnotations:\n-      0: #47()\n+      0: #120()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"QueryTest.java\"\n"}]}, {"source1": "dev/langchain4j/rag/query/router/DefaultQueryRouterTest.class", "source2": "dev/langchain4j/rag/query/router/DefaultQueryRouterTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,94 +1,94 @@\n-  SHA-256 checksum 29ab8f3f48bdadcd91fdda6056a6e1460e01a144e694d996ac0aa2262f51819f\n+  SHA-256 checksum f599833154caf65a7fea7785c1e7f301620de78cb8b98af2b28176eff405806f\n   Compiled from \"DefaultQueryRouterTest.java\"\n class dev.langchain4j.rag.query.router.DefaultQueryRouterTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #13                         // dev/langchain4j/rag/query/router/DefaultQueryRouterTest\n-  super_class: #14                        // java/lang/Object\n+  this_class: #55                         // dev/langchain4j/rag/query/router/DefaultQueryRouterTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 4, attributes: 1\n Constant pool:\n-   #1 = Methodref          #14.#38        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #39            // dev/langchain4j/rag/content/retriever/ContentRetriever\n-   #3 = Methodref          #40.#41        // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-   #4 = Class              #42            // dev/langchain4j/rag/query/router/DefaultQueryRouter\n-   #5 = Methodref          #4.#43         // dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-   #6 = String             #44            // query\n-   #7 = Methodref          #45.#46        // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #8 = InterfaceMethodref #47.#48        // dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #9 = Methodref          #49.#50        // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #10 = Methodref          #51.#52        // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #11 = Methodref          #53.#54        // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #12 = Methodref          #4.#55         // dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":(Ljava/util/Collection;)V\n-  #13 = Class              #56            // dev/langchain4j/rag/query/router/DefaultQueryRouterTest\n-  #14 = Class              #57            // java/lang/Object\n-  #15 = Utf8               <init>\n-  #16 = Utf8               ()V\n-  #17 = Utf8               Code\n-  #18 = Utf8               LineNumberTable\n-  #19 = Utf8               LocalVariableTable\n-  #20 = Utf8               this\n-  #21 = Utf8               Ldev/langchain4j/rag/query/router/DefaultQueryRouterTest;\n-  #22 = Utf8               should_route_to_single_retriever\n-  #23 = Utf8               retriever1\n-  #24 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-  #25 = Utf8               router\n-  #26 = Utf8               Ldev/langchain4j/rag/query/router/QueryRouter;\n-  #27 = Utf8               retrievers\n-  #28 = Utf8               Ljava/util/Collection;\n-  #29 = Utf8               LocalVariableTypeTable\n-  #30 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n-  #31 = Utf8               RuntimeVisibleAnnotations\n-  #32 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #33 = Utf8               should_route_to_multiple_retrievers\n-  #34 = Utf8               retriever2\n-  #35 = Utf8               should_route_to_multiple_retrievers_varargs\n-  #36 = Utf8               SourceFile\n-  #37 = Utf8               DefaultQueryRouterTest.java\n-  #38 = NameAndType        #15:#16        // \"<init>\":()V\n-  #39 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n-  #40 = Class              #58            // org/mockito/Mockito\n-  #41 = NameAndType        #59:#60        // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-  #42 = Utf8               dev/langchain4j/rag/query/router/DefaultQueryRouter\n-  #43 = NameAndType        #15:#61        // \"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-  #44 = Utf8               query\n-  #45 = Class              #62            // dev/langchain4j/rag/query/Query\n-  #46 = NameAndType        #63:#64        // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #47 = Class              #65            // dev/langchain4j/rag/query/router/QueryRouter\n-  #48 = NameAndType        #66:#67        // route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #49 = Class              #68            // org/assertj/core/api/Assertions\n-  #50 = NameAndType        #69:#70        // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #51 = Class              #71            // org/assertj/core/api/AbstractCollectionAssert\n-  #52 = NameAndType        #72:#73        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #53 = Class              #74            // java/util/Arrays\n-  #54 = NameAndType        #75:#76        // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #55 = NameAndType        #15:#77        // \"<init>\":(Ljava/util/Collection;)V\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #8 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #9 = Methodref          #10.#11        // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+  #10 = Class              #12            // org/mockito/Mockito\n+  #11 = NameAndType        #13:#14        // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+  #12 = Utf8               org/mockito/Mockito\n+  #13 = Utf8               mock\n+  #14 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n+  #15 = Class              #16            // dev/langchain4j/rag/query/router/DefaultQueryRouter\n+  #16 = Utf8               dev/langchain4j/rag/query/router/DefaultQueryRouter\n+  #17 = Methodref          #15.#18        // dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+  #18 = NameAndType        #5:#19         // \"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+  #19 = Utf8               ([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+  #20 = String             #21            // query\n+  #21 = Utf8               query\n+  #22 = Methodref          #23.#24        // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #23 = Class              #25            // dev/langchain4j/rag/query/Query\n+  #24 = NameAndType        #26:#27        // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #25 = Utf8               dev/langchain4j/rag/query/Query\n+  #26 = Utf8               from\n+  #27 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #28 = InterfaceMethodref #29.#30        // dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #29 = Class              #31            // dev/langchain4j/rag/query/router/QueryRouter\n+  #30 = NameAndType        #32:#33        // route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #31 = Utf8               dev/langchain4j/rag/query/router/QueryRouter\n+  #32 = Utf8               route\n+  #33 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #34 = Methodref          #35.#36        // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #35 = Class              #37            // org/assertj/core/api/Assertions\n+  #36 = NameAndType        #38:#39        // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #37 = Utf8               org/assertj/core/api/Assertions\n+  #38 = Utf8               assertThat\n+  #39 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #40 = Methodref          #41.#42        // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #41 = Class              #43            // org/assertj/core/api/AbstractCollectionAssert\n+  #42 = NameAndType        #44:#45        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #43 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n+  #44 = Utf8               containsExactly\n+  #45 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #46 = Methodref          #47.#48        // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #47 = Class              #49            // java/util/Arrays\n+  #48 = NameAndType        #50:#51        // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #49 = Utf8               java/util/Arrays\n+  #50 = Utf8               asList\n+  #51 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #52 = Methodref          #15.#53        // dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":(Ljava/util/Collection;)V\n+  #53 = NameAndType        #5:#54         // \"<init>\":(Ljava/util/Collection;)V\n+  #54 = Utf8               (Ljava/util/Collection;)V\n+  #55 = Class              #56            // dev/langchain4j/rag/query/router/DefaultQueryRouterTest\n   #56 = Utf8               dev/langchain4j/rag/query/router/DefaultQueryRouterTest\n-  #57 = Utf8               java/lang/Object\n-  #58 = Utf8               org/mockito/Mockito\n-  #59 = Utf8               mock\n-  #60 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n-  #61 = Utf8               ([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n-  #62 = Utf8               dev/langchain4j/rag/query/Query\n-  #63 = Utf8               from\n-  #64 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #65 = Utf8               dev/langchain4j/rag/query/router/QueryRouter\n-  #66 = Utf8               route\n-  #67 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #68 = Utf8               org/assertj/core/api/Assertions\n-  #69 = Utf8               assertThat\n-  #70 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #71 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n-  #72 = Utf8               containsExactly\n-  #73 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #74 = Utf8               java/util/Arrays\n-  #75 = Utf8               asList\n-  #76 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #77 = Utf8               (Ljava/util/Collection;)V\n+  #57 = Utf8               Code\n+  #58 = Utf8               LineNumberTable\n+  #59 = Utf8               LocalVariableTable\n+  #60 = Utf8               this\n+  #61 = Utf8               Ldev/langchain4j/rag/query/router/DefaultQueryRouterTest;\n+  #62 = Utf8               should_route_to_single_retriever\n+  #63 = Utf8               retriever1\n+  #64 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+  #65 = Utf8               router\n+  #66 = Utf8               Ldev/langchain4j/rag/query/router/QueryRouter;\n+  #67 = Utf8               retrievers\n+  #68 = Utf8               Ljava/util/Collection;\n+  #69 = Utf8               LocalVariableTypeTable\n+  #70 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n+  #71 = Utf8               RuntimeVisibleAnnotations\n+  #72 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #73 = Utf8               should_route_to_multiple_retrievers\n+  #74 = Utf8               retriever2\n+  #75 = Utf8               should_route_to_multiple_retrievers_varargs\n+  #76 = Utf8               SourceFile\n+  #77 = Utf8               DefaultQueryRouterTest.java\n {\n   dev.langchain4j.rag.query.router.DefaultQueryRouterTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -101,42 +101,42 @@\n             0       5     0  this   Ldev/langchain4j/rag/query/router/DefaultQueryRouterTest;\n \n   void should_route_to_single_retriever();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=4, args_size=1\n-         0: ldc           #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n-         2: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         5: checkcast     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         0: ldc           #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         2: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         5: checkcast     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n          8: astore_1\n-         9: new           #4                  // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n+         9: new           #15                 // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n         12: dup\n         13: iconst_1\n-        14: anewarray     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        14: anewarray     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         17: dup\n         18: iconst_0\n         19: aload_1\n         20: aastore\n-        21: invokespecial #5                  // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+        21: invokespecial #17                 // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n         24: astore_2\n         25: aload_2\n-        26: ldc           #6                  // String query\n-        28: invokestatic  #7                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-        31: invokeinterface #8,  2            // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        26: ldc           #20                 // String query\n+        28: invokestatic  #22                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        31: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         36: astore_3\n         37: aload_3\n-        38: invokestatic  #9                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        38: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         41: iconst_1\n-        42: anewarray     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        42: anewarray     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         45: dup\n         46: iconst_0\n         47: aload_1\n         48: aastore\n-        49: invokevirtual #10                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        49: invokevirtual #40                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         52: pop\n         53: return\n       LineNumberTable:\n         line 19: 0\n         line 20: 9\n         line 23: 25\n         line 26: 37\n@@ -147,63 +147,63 @@\n             9      45     1 retriever1   Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n            25      29     2 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            37      17     3 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            37      17     3 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #32()\n+      0: #72()\n         org.junit.jupiter.api.Test\n \n   void should_route_to_multiple_retrievers();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=5, args_size=1\n-         0: ldc           #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n-         2: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         5: checkcast     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         0: ldc           #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         2: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         5: checkcast     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n          8: astore_1\n-         9: ldc           #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n-        11: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        14: checkcast     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         9: ldc           #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        11: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        14: checkcast     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         17: astore_2\n-        18: new           #4                  // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n+        18: new           #15                 // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n         21: dup\n         22: iconst_2\n-        23: anewarray     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        23: anewarray     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         26: dup\n         27: iconst_0\n         28: aload_1\n         29: aastore\n         30: dup\n         31: iconst_1\n         32: aload_2\n         33: aastore\n-        34: invokestatic  #11                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        37: invokespecial #12                 // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":(Ljava/util/Collection;)V\n+        34: invokestatic  #46                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        37: invokespecial #52                 // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":(Ljava/util/Collection;)V\n         40: astore_3\n         41: aload_3\n-        42: ldc           #6                  // String query\n-        44: invokestatic  #7                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-        47: invokeinterface #8,  2            // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        42: ldc           #20                 // String query\n+        44: invokestatic  #22                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        47: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         52: astore        4\n         54: aload         4\n-        56: invokestatic  #9                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        56: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         59: iconst_2\n-        60: anewarray     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        60: anewarray     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         63: dup\n         64: iconst_0\n         65: aload_1\n         66: aastore\n         67: dup\n         68: iconst_1\n         69: aload_2\n         70: aastore\n-        71: invokevirtual #10                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        71: invokevirtual #40                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         74: pop\n         75: return\n       LineNumberTable:\n         line 33: 0\n         line 34: 9\n         line 35: 18\n         line 38: 41\n@@ -216,62 +216,62 @@\n            18      58     2 retriever2   Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n            41      35     3 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            54      22     4 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            54      22     4 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #32()\n+      0: #72()\n         org.junit.jupiter.api.Test\n \n   void should_route_to_multiple_retrievers_varargs();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=6, locals=5, args_size=1\n-         0: ldc           #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n-         2: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-         5: checkcast     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         0: ldc           #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         2: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+         5: checkcast     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n          8: astore_1\n-         9: ldc           #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n-        11: invokestatic  #3                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        14: checkcast     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+         9: ldc           #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        11: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        14: checkcast     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         17: astore_2\n-        18: new           #4                  // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n+        18: new           #15                 // class dev/langchain4j/rag/query/router/DefaultQueryRouter\n         21: dup\n         22: iconst_2\n-        23: anewarray     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        23: anewarray     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         26: dup\n         27: iconst_0\n         28: aload_1\n         29: aastore\n         30: dup\n         31: iconst_1\n         32: aload_2\n         33: aastore\n-        34: invokespecial #5                  // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n+        34: invokespecial #17                 // Method dev/langchain4j/rag/query/router/DefaultQueryRouter.\"<init>\":([Ldev/langchain4j/rag/content/retriever/ContentRetriever;)V\n         37: astore_3\n         38: aload_3\n-        39: ldc           #6                  // String query\n-        41: invokestatic  #7                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-        44: invokeinterface #8,  2            // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        39: ldc           #20                 // String query\n+        41: invokestatic  #22                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        44: invokeinterface #28,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         49: astore        4\n         51: aload         4\n-        53: invokestatic  #9                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        53: invokestatic  #34                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         56: iconst_2\n-        57: anewarray     #2                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        57: anewarray     #7                  // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         60: dup\n         61: iconst_0\n         62: aload_1\n         63: aastore\n         64: dup\n         65: iconst_1\n         66: aload_2\n         67: aastore\n-        68: invokevirtual #10                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        68: invokevirtual #40                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         71: pop\n         72: return\n       LineNumberTable:\n         line 48: 0\n         line 49: 9\n         line 50: 18\n         line 53: 38\n@@ -284,11 +284,11 @@\n            18      55     2 retriever2   Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n            38      35     3 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            51      22     4 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            51      22     4 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #32()\n+      0: #72()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"DefaultQueryRouterTest.java\"\n"}]}, {"source1": "dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest.class", "source2": "dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,186 +1,186 @@\n-  SHA-256 checksum faf53d981975c3ecfdb3f2e330588e7913dc2ed8262512fde6c938bf6d3844e8\n+  SHA-256 checksum 7dd7e7e2a3dd09176f1a122aab414ccf8ecacc6cc257f04fd5ed8dca4f9e45ac\n   Compiled from \"LanguageModelQueryRouterTest.java\"\n class dev.langchain4j.rag.query.router.LanguageModelQueryRouterTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #36                         // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest\n-  super_class: #37                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 2, methods: 5, attributes: 3\n Constant pool:\n-    #1 = Methodref          #37.#75       // java/lang/Object.\"<init>\":()V\n-    #2 = String             #76           // Do Labradors shed?\n-    #3 = Methodref          #77.#78       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-    #4 = Class              #79           // java/util/LinkedHashMap\n-    #5 = Methodref          #4.#75        // java/util/LinkedHashMap.\"<init>\":()V\n-    #6 = Fieldref           #36.#80       // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest.catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-    #7 = String             #81           // articles about cats\n-    #8 = InterfaceMethodref #82.#83       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-    #9 = Fieldref           #36.#84       // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest.dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #10 = String             #85           // articles about dogs\n-   #11 = String             #86           // 2\n-   #12 = Methodref          #87.#88       // dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #13 = Class              #89           // dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n-   #14 = Methodref          #13.#90       // dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n-   #15 = InterfaceMethodref #91.#92       // dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #16 = Methodref          #93.#94       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-   #17 = Class              #95           // dev/langchain4j/rag/content/retriever/ContentRetriever\n-   #18 = Methodref          #96.#97       // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #19 = Methodref          #87.#98       // dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-   #20 = Methodref          #93.#99       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #21 = String             #100          // Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n-   #22 = Methodref          #101.#102     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #23 = Methodref          #13.#103      // dev/langchain4j/rag/query/router/LanguageModelQueryRouter.builder:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-   #24 = Methodref          #104.#105     // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-   #25 = Methodref          #104.#106     // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.retrieverToDescription:(Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-   #26 = Methodref          #104.#107     // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.build:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n-   #27 = String             #108          // Which animal is the fluffiest?\n-   #28 = Class              #109          // java/util/HashMap\n-   #29 = Methodref          #28.#75       // java/util/HashMap.\"<init>\":()V\n-   #30 = String             #110          // 1, 2\n-   #31 = Methodref          #96.#111      // org/assertj/core/api/AbstractCollectionAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #32 = String             #112          // Which source should I use to get answer for \\'{{query}}\\'? Options: {{options}}\\'\n-   #33 = Methodref          #113.#114     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-   #34 = Methodref          #13.#115      // dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n-   #35 = String             #116          // Which source should I use to get answer for \\'Which animal is the fluffiest?\\'? Options: 1: articles about cats\\n2: articles about dogs\\'\n-   #36 = Class              #117          // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest\n-   #37 = Class              #118          // java/lang/Object\n-   #38 = Utf8               catArticlesRetriever\n-   #39 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #40 = Utf8               RuntimeVisibleAnnotations\n-   #41 = Utf8               Lorg/mockito/Mock;\n-   #42 = Utf8               dogArticlesRetriever\n-   #43 = Utf8               <init>\n-   #44 = Utf8               ()V\n-   #45 = Utf8               Code\n-   #46 = Utf8               LineNumberTable\n-   #47 = Utf8               LocalVariableTable\n-   #48 = Utf8               this\n-   #49 = Utf8               Ldev/langchain4j/rag/query/router/LanguageModelQueryRouterTest;\n-   #50 = Utf8               should_route_to_single_retriever\n-   #51 = Utf8               query\n-   #52 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #53 = Utf8               retrieverToDescription\n-   #54 = Utf8               Ljava/util/Map;\n-   #55 = Utf8               model\n-   #56 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #57 = Utf8               router\n-   #58 = Utf8               Ldev/langchain4j/rag/query/router/QueryRouter;\n-   #59 = Utf8               retrievers\n-   #60 = Utf8               Ljava/util/Collection;\n-   #61 = Utf8               LocalVariableTypeTable\n-   #62 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/content/retriever/ContentRetriever;Ljava/lang/String;>;\n-   #63 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n-   #64 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #65 = Utf8               should_route_to_single_retriever_builder\n-   #66 = Utf8               should_route_to_multiple_retrievers\n-   #67 = Utf8               should_route_to_multiple_retrievers_with_custom_prompt_template\n-   #68 = Utf8               promptTemplate\n-   #69 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n-   #70 = Utf8               SourceFile\n-   #71 = Utf8               LanguageModelQueryRouterTest.java\n-   #72 = Utf8               Lorg/junit/jupiter/api/extension/ExtendWith;\n-   #73 = Utf8               value\n-   #74 = Utf8               Lorg/mockito/junit/jupiter/MockitoExtension;\n-   #75 = NameAndType        #43:#44       // \"<init>\":()V\n-   #76 = Utf8               Do Labradors shed?\n-   #77 = Class              #119          // dev/langchain4j/rag/query/Query\n-   #78 = NameAndType        #120:#121     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #79 = Utf8               java/util/LinkedHashMap\n-   #80 = NameAndType        #38:#39       // catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #81 = Utf8               articles about cats\n-   #82 = Class              #122          // java/util/Map\n-   #83 = NameAndType        #123:#124     // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-   #84 = NameAndType        #42:#39       // dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #85 = Utf8               articles about dogs\n-   #86 = Utf8               2\n-   #87 = Class              #125          // dev/langchain4j/model/chat/mock/ChatModelMock\n-   #88 = NameAndType        #126:#127     // withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #89 = Utf8               dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n-   #90 = NameAndType        #43:#128      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n-   #91 = Class              #129          // dev/langchain4j/rag/query/router/QueryRouter\n-   #92 = NameAndType        #130:#131     // route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #93 = Class              #132          // org/assertj/core/api/Assertions\n-   #94 = NameAndType        #133:#134     // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-   #95 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n-   #96 = Class              #135          // org/assertj/core/api/AbstractCollectionAssert\n-   #97 = NameAndType        #136:#137     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #98 = NameAndType        #138:#139     // userMessageText:()Ljava/lang/String;\n-   #99 = NameAndType        #133:#140     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #100 = Utf8               Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n-  #101 = Class              #141          // org/assertj/core/api/AbstractStringAssert\n-  #102 = NameAndType        #142:#140     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #103 = NameAndType        #143:#146     // builder:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-  #104 = Class              #147          // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder\n-  #105 = NameAndType        #148:#149     // chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-  #106 = NameAndType        #53:#150      // retrieverToDescription:(Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-  #107 = NameAndType        #151:#152     // build:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n-  #108 = Utf8               Which animal is the fluffiest?\n-  #109 = Utf8               java/util/HashMap\n-  #110 = Utf8               1, 2\n-  #111 = NameAndType        #153:#137     // containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #112 = Utf8               Which source should I use to get answer for \\'{{query}}\\'? Options: {{options}}\\'\n-  #113 = Class              #154          // dev/langchain4j/model/input/PromptTemplate\n-  #114 = NameAndType        #120:#155     // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #115 = NameAndType        #43:#156      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #116 = Utf8               Which source should I use to get answer for \\'Which animal is the fluffiest?\\'? Options: 1: articles about cats\\n2: articles about dogs\\'\n-  #117 = Utf8               dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest\n-  #118 = Utf8               java/lang/Object\n-  #119 = Utf8               dev/langchain4j/rag/query/Query\n-  #120 = Utf8               from\n-  #121 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #122 = Utf8               java/util/Map\n-  #123 = Utf8               put\n-  #124 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #125 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n-  #126 = Utf8               withStaticResponse\n-  #127 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-  #128 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n-  #129 = Utf8               dev/langchain4j/rag/query/router/QueryRouter\n-  #130 = Utf8               route\n-  #131 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #132 = Utf8               org/assertj/core/api/Assertions\n-  #133 = Utf8               assertThat\n-  #134 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #135 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n-  #136 = Utf8               containsExactly\n-  #137 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #138 = Utf8               userMessageText\n-  #139 = Utf8               ()Ljava/lang/String;\n-  #140 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #141 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #142 = Utf8               isEqualTo\n-  #143 = Utf8               builder\n-  #144 = Utf8               LanguageModelQueryRouterBuilder\n-  #145 = Utf8               InnerClasses\n-  #146 = Utf8               ()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-  #147 = Utf8               dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder\n-  #148 = Utf8               chatLanguageModel\n-  #149 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-  #150 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-  #151 = Utf8               build\n-  #152 = Utf8               ()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n-  #153 = Utf8               containsExactlyInAnyOrder\n-  #154 = Utf8               dev/langchain4j/model/input/PromptTemplate\n-  #155 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #156 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // Do Labradors shed?\n+    #8 = Utf8               Do Labradors shed?\n+    #9 = Methodref          #10.#11       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #10 = Class              #12           // dev/langchain4j/rag/query/Query\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #12 = Utf8               dev/langchain4j/rag/query/Query\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #15 = Class              #16           // java/util/LinkedHashMap\n+   #16 = Utf8               java/util/LinkedHashMap\n+   #17 = Methodref          #15.#3        // java/util/LinkedHashMap.\"<init>\":()V\n+   #18 = Fieldref           #19.#20       // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest.catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #19 = Class              #21           // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest\n+   #20 = NameAndType        #22:#23       // catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #21 = Utf8               dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest\n+   #22 = Utf8               catArticlesRetriever\n+   #23 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #24 = String             #25           // articles about cats\n+   #25 = Utf8               articles about cats\n+   #26 = InterfaceMethodref #27.#28       // java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #27 = Class              #29           // java/util/Map\n+   #28 = NameAndType        #30:#31       // put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #29 = Utf8               java/util/Map\n+   #30 = Utf8               put\n+   #31 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #32 = Fieldref           #19.#33       // dev/langchain4j/rag/query/router/LanguageModelQueryRouterTest.dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #33 = NameAndType        #34:#23       // dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #34 = Utf8               dogArticlesRetriever\n+   #35 = String             #36           // articles about dogs\n+   #36 = Utf8               articles about dogs\n+   #37 = String             #38           // 2\n+   #38 = Utf8               2\n+   #39 = Methodref          #40.#41       // dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #40 = Class              #42           // dev/langchain4j/model/chat/mock/ChatModelMock\n+   #41 = NameAndType        #43:#44       // withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #42 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n+   #43 = Utf8               withStaticResponse\n+   #44 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #45 = Class              #46           // dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n+   #46 = Utf8               dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n+   #47 = Methodref          #45.#48       // dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n+   #48 = NameAndType        #5:#49        // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n+   #49 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n+   #50 = InterfaceMethodref #51.#52       // dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+   #51 = Class              #53           // dev/langchain4j/rag/query/router/QueryRouter\n+   #52 = NameAndType        #54:#55       // route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+   #53 = Utf8               dev/langchain4j/rag/query/router/QueryRouter\n+   #54 = Utf8               route\n+   #55 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+   #56 = Methodref          #57.#58       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #57 = Class              #59           // org/assertj/core/api/Assertions\n+   #58 = NameAndType        #60:#61       // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #59 = Utf8               org/assertj/core/api/Assertions\n+   #60 = Utf8               assertThat\n+   #61 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #62 = Class              #63           // dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #63 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #64 = Methodref          #65.#66       // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #65 = Class              #67           // org/assertj/core/api/AbstractCollectionAssert\n+   #66 = NameAndType        #68:#69       // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #67 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n+   #68 = Utf8               containsExactly\n+   #69 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #70 = Methodref          #40.#71       // dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+   #71 = NameAndType        #72:#73       // userMessageText:()Ljava/lang/String;\n+   #72 = Utf8               userMessageText\n+   #73 = Utf8               ()Ljava/lang/String;\n+   #74 = Methodref          #57.#75       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #75 = NameAndType        #60:#76       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #76 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #77 = String             #78           // Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n+   #78 = Utf8               Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n+   #79 = Methodref          #80.#81       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #80 = Class              #82           // org/assertj/core/api/AbstractStringAssert\n+   #81 = NameAndType        #83:#76       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #82 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #83 = Utf8               isEqualTo\n+   #84 = Methodref          #45.#85       // dev/langchain4j/rag/query/router/LanguageModelQueryRouter.builder:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #85 = NameAndType        #86:#87       // builder:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #86 = Utf8               builder\n+   #87 = Utf8               ()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #88 = Methodref          #89.#90       // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #89 = Class              #91           // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder\n+   #90 = NameAndType        #92:#93       // chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #91 = Utf8               dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder\n+   #92 = Utf8               chatLanguageModel\n+   #93 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #94 = Methodref          #89.#95       // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.retrieverToDescription:(Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #95 = NameAndType        #96:#97       // retrieverToDescription:(Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #96 = Utf8               retrieverToDescription\n+   #97 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+   #98 = Methodref          #89.#99       // dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.build:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n+   #99 = NameAndType        #100:#101     // build:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n+  #100 = Utf8               build\n+  #101 = Utf8               ()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n+  #102 = String             #103          // Which animal is the fluffiest?\n+  #103 = Utf8               Which animal is the fluffiest?\n+  #104 = Class              #105          // java/util/HashMap\n+  #105 = Utf8               java/util/HashMap\n+  #106 = Methodref          #104.#3       // java/util/HashMap.\"<init>\":()V\n+  #107 = String             #108          // 1, 2\n+  #108 = Utf8               1, 2\n+  #109 = Methodref          #65.#110      // org/assertj/core/api/AbstractCollectionAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #110 = NameAndType        #111:#69      // containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #111 = Utf8               containsExactlyInAnyOrder\n+  #112 = String             #113          // Which source should I use to get answer for \\'{{query}}\\'? Options: {{options}}\\'\n+  #113 = Utf8               Which source should I use to get answer for \\'{{query}}\\'? Options: {{options}}\\'\n+  #114 = Methodref          #115.#116     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #115 = Class              #117          // dev/langchain4j/model/input/PromptTemplate\n+  #116 = NameAndType        #13:#118      // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #117 = Utf8               dev/langchain4j/model/input/PromptTemplate\n+  #118 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #119 = Methodref          #45.#120      // dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #120 = NameAndType        #5:#121       // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #121 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #122 = String             #123          // Which source should I use to get answer for \\'Which animal is the fluffiest?\\'? Options: 1: articles about cats\\n2: articles about dogs\\'\n+  #123 = Utf8               Which source should I use to get answer for \\'Which animal is the fluffiest?\\'? Options: 1: articles about cats\\n2: articles about dogs\\'\n+  #124 = Utf8               RuntimeVisibleAnnotations\n+  #125 = Utf8               Lorg/mockito/Mock;\n+  #126 = Utf8               Code\n+  #127 = Utf8               LineNumberTable\n+  #128 = Utf8               LocalVariableTable\n+  #129 = Utf8               this\n+  #130 = Utf8               Ldev/langchain4j/rag/query/router/LanguageModelQueryRouterTest;\n+  #131 = Utf8               should_route_to_single_retriever\n+  #132 = Utf8               query\n+  #133 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #134 = Utf8               Ljava/util/Map;\n+  #135 = Utf8               model\n+  #136 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+  #137 = Utf8               router\n+  #138 = Utf8               Ldev/langchain4j/rag/query/router/QueryRouter;\n+  #139 = Utf8               retrievers\n+  #140 = Utf8               Ljava/util/Collection;\n+  #141 = Utf8               LocalVariableTypeTable\n+  #142 = Utf8               Ljava/util/Map<Ldev/langchain4j/rag/content/retriever/ContentRetriever;Ljava/lang/String;>;\n+  #143 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n+  #144 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #145 = Utf8               should_route_to_single_retriever_builder\n+  #146 = Utf8               should_route_to_multiple_retrievers\n+  #147 = Utf8               should_route_to_multiple_retrievers_with_custom_prompt_template\n+  #148 = Utf8               promptTemplate\n+  #149 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n+  #150 = Utf8               SourceFile\n+  #151 = Utf8               LanguageModelQueryRouterTest.java\n+  #152 = Utf8               Lorg/junit/jupiter/api/extension/ExtendWith;\n+  #153 = Utf8               value\n+  #154 = Utf8               Lorg/mockito/junit/jupiter/MockitoExtension;\n+  #155 = Utf8               InnerClasses\n+  #156 = Utf8               LanguageModelQueryRouterBuilder\n {\n   dev.langchain4j.rag.content.retriever.ContentRetriever catArticlesRetriever;\n     descriptor: Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n     flags: (0x0000)\n     RuntimeVisibleAnnotations:\n-      0: #41()\n+      0: #125()\n         org.mockito.Mock\n \n   dev.langchain4j.rag.content.retriever.ContentRetriever dogArticlesRetriever;\n     descriptor: Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n     flags: (0x0000)\n     RuntimeVisibleAnnotations:\n-      0: #41()\n+      0: #125()\n         org.mockito.Mock\n \n   dev.langchain4j.rag.query.router.LanguageModelQueryRouterTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n@@ -194,62 +194,62 @@\n             0       5     0  this   Ldev/langchain4j/rag/query/router/LanguageModelQueryRouterTest;\n \n   void should_route_to_single_retriever();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=6, args_size=1\n-         0: ldc           #2                  // String Do Labradors shed?\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #7                  // String Do Labradors shed?\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: new           #4                  // class java/util/LinkedHashMap\n+         6: new           #15                 // class java/util/LinkedHashMap\n          9: dup\n-        10: invokespecial #5                  // Method java/util/LinkedHashMap.\"<init>\":()V\n+        10: invokespecial #17                 // Method java/util/LinkedHashMap.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n         15: aload_0\n-        16: getfield      #6                  // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        19: ldc           #7                  // String articles about cats\n-        21: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        16: getfield      #18                 // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        19: ldc           #24                 // String articles about cats\n+        21: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         26: pop\n         27: aload_2\n         28: aload_0\n-        29: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        32: ldc           #10                 // String articles about dogs\n-        34: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        29: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        32: ldc           #35                 // String articles about dogs\n+        34: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         39: pop\n-        40: ldc           #11                 // String 2\n-        42: invokestatic  #12                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        40: ldc           #37                 // String 2\n+        42: invokestatic  #39                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         45: astore_3\n-        46: new           #13                 // class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n+        46: new           #45                 // class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n         49: dup\n         50: aload_3\n         51: aload_2\n-        52: invokespecial #14                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n+        52: invokespecial #47                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n         55: astore        4\n         57: aload         4\n         59: aload_1\n-        60: invokeinterface #15,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        60: invokeinterface #50,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         65: astore        5\n         67: aload         5\n-        69: invokestatic  #16                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        69: invokestatic  #56                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         72: iconst_1\n-        73: anewarray     #17                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        73: anewarray     #62                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         76: dup\n         77: iconst_0\n         78: aload_0\n-        79: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        79: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         82: aastore\n-        83: invokevirtual #18                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        83: invokevirtual #64                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         86: pop\n         87: aload_3\n-        88: invokevirtual #19                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-        91: invokestatic  #20                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        94: ldc           #21                 // String Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n-        96: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        88: invokevirtual #70                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+        91: invokestatic  #74                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        94: ldc           #77                 // String Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n+        96: invokevirtual #79                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         99: pop\n        100: return\n       LineNumberTable:\n         line 32: 0\n         line 35: 6\n         line 36: 14\n         line 37: 27\n@@ -268,71 +268,71 @@\n            57      44     4 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            67      34     5 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      87     2 retrieverToDescription   Ljava/util/Map<Ldev/langchain4j/rag/content/retriever/ContentRetriever;Ljava/lang/String;>;\n            67      34     5 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #144()\n         org.junit.jupiter.api.Test\n \n   void should_route_to_single_retriever_builder();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=6, args_size=1\n-         0: ldc           #2                  // String Do Labradors shed?\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #7                  // String Do Labradors shed?\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: new           #4                  // class java/util/LinkedHashMap\n+         6: new           #15                 // class java/util/LinkedHashMap\n          9: dup\n-        10: invokespecial #5                  // Method java/util/LinkedHashMap.\"<init>\":()V\n+        10: invokespecial #17                 // Method java/util/LinkedHashMap.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n         15: aload_0\n-        16: getfield      #6                  // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        19: ldc           #7                  // String articles about cats\n-        21: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        16: getfield      #18                 // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        19: ldc           #24                 // String articles about cats\n+        21: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         26: pop\n         27: aload_2\n         28: aload_0\n-        29: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        32: ldc           #10                 // String articles about dogs\n-        34: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        29: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        32: ldc           #35                 // String articles about dogs\n+        34: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         39: pop\n-        40: ldc           #11                 // String 2\n-        42: invokestatic  #12                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        40: ldc           #37                 // String 2\n+        42: invokestatic  #39                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         45: astore_3\n-        46: invokestatic  #23                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.builder:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+        46: invokestatic  #84                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.builder:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n         49: aload_3\n-        50: invokevirtual #24                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+        50: invokevirtual #88                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n         53: aload_2\n-        54: invokevirtual #25                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.retrieverToDescription:(Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n-        57: invokevirtual #26                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.build:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n+        54: invokevirtual #94                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.retrieverToDescription:(Ljava/util/Map;)Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder;\n+        57: invokevirtual #98                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder.build:()Ldev/langchain4j/rag/query/router/LanguageModelQueryRouter;\n         60: astore        4\n         62: aload         4\n         64: aload_1\n-        65: invokeinterface #15,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        65: invokeinterface #50,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         70: astore        5\n         72: aload         5\n-        74: invokestatic  #16                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        74: invokestatic  #56                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         77: iconst_1\n-        78: anewarray     #17                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        78: anewarray     #62                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         81: dup\n         82: iconst_0\n         83: aload_0\n-        84: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        84: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         87: aastore\n-        88: invokevirtual #18                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        88: invokevirtual #64                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         91: pop\n         92: aload_3\n-        93: invokevirtual #19                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-        96: invokestatic  #20                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        99: ldc           #21                 // String Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n-       101: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        93: invokevirtual #70                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+        96: invokestatic  #74                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        99: ldc           #77                 // String Based on the user query, determine the most suitable data source(s) to retrieve relevant information from the following options:\\n1: articles about cats\\n2: articles about dogs\\nIt is very important that your answer consists of either a single number or multiple numbers separated by commas and nothing else!\\nUser query: Do Labradors shed?\n+       101: invokevirtual #79                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        104: pop\n        105: return\n       LineNumberTable:\n         line 63: 0\n         line 66: 6\n         line 67: 14\n         line 68: 27\n@@ -354,69 +354,69 @@\n            62      44     4 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            72      34     5 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      92     2 retrieverToDescription   Ljava/util/Map<Ldev/langchain4j/rag/content/retriever/ContentRetriever;Ljava/lang/String;>;\n            72      34     5 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #144()\n         org.junit.jupiter.api.Test\n \n   void should_route_to_multiple_retrievers();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=6, args_size=1\n-         0: ldc           #27                 // String Which animal is the fluffiest?\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #102                // String Which animal is the fluffiest?\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_1\n-         6: new           #28                 // class java/util/HashMap\n+         6: new           #104                // class java/util/HashMap\n          9: dup\n-        10: invokespecial #29                 // Method java/util/HashMap.\"<init>\":()V\n+        10: invokespecial #106                // Method java/util/HashMap.\"<init>\":()V\n         13: astore_2\n         14: aload_2\n         15: aload_0\n-        16: getfield      #6                  // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        19: ldc           #7                  // String articles about cats\n-        21: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        16: getfield      #18                 // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        19: ldc           #24                 // String articles about cats\n+        21: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         26: pop\n         27: aload_2\n         28: aload_0\n-        29: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        32: ldc           #10                 // String articles about dogs\n-        34: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        29: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        32: ldc           #35                 // String articles about dogs\n+        34: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         39: pop\n-        40: ldc           #30                 // String 1, 2\n-        42: invokestatic  #12                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        40: ldc           #107                // String 1, 2\n+        42: invokestatic  #39                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         45: astore_3\n-        46: new           #13                 // class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n+        46: new           #45                 // class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n         49: dup\n         50: aload_3\n         51: aload_2\n-        52: invokespecial #14                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n+        52: invokespecial #47                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;)V\n         55: astore        4\n         57: aload         4\n         59: aload_1\n-        60: invokeinterface #15,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        60: invokeinterface #50,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         65: astore        5\n         67: aload         5\n-        69: invokestatic  #16                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        69: invokestatic  #56                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         72: iconst_2\n-        73: anewarray     #17                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        73: anewarray     #62                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         76: dup\n         77: iconst_0\n         78: aload_0\n-        79: getfield      #6                  // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        79: getfield      #18                 // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         82: aastore\n         83: dup\n         84: iconst_1\n         85: aload_0\n-        86: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        86: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         89: aastore\n-        90: invokevirtual #31                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        90: invokevirtual #109                // Method org/assertj/core/api/AbstractCollectionAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         93: pop\n         94: return\n       LineNumberTable:\n         line 97: 0\n         line 99: 6\n         line 100: 14\n         line 101: 27\n@@ -434,79 +434,79 @@\n            57      38     4 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            67      28     5 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            14      81     2 retrieverToDescription   Ljava/util/Map<Ldev/langchain4j/rag/content/retriever/ContentRetriever;Ljava/lang/String;>;\n            67      28     5 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #144()\n         org.junit.jupiter.api.Test\n \n   void should_route_to_multiple_retrievers_with_custom_prompt_template();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=7, args_size=1\n-         0: ldc           #32                 // String Which source should I use to get answer for \\'{{query}}\\'? Options: {{options}}\\'\n-         2: invokestatic  #33                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #112                // String Which source should I use to get answer for \\'{{query}}\\'? Options: {{options}}\\'\n+         2: invokestatic  #114                // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: ldc           #27                 // String Which animal is the fluffiest?\n-         8: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         6: ldc           #102                // String Which animal is the fluffiest?\n+         8: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         11: astore_2\n-        12: new           #4                  // class java/util/LinkedHashMap\n+        12: new           #15                 // class java/util/LinkedHashMap\n         15: dup\n-        16: invokespecial #5                  // Method java/util/LinkedHashMap.\"<init>\":()V\n+        16: invokespecial #17                 // Method java/util/LinkedHashMap.\"<init>\":()V\n         19: astore_3\n         20: aload_3\n         21: aload_0\n-        22: getfield      #6                  // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        25: ldc           #7                  // String articles about cats\n-        27: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        22: getfield      #18                 // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        25: ldc           #24                 // String articles about cats\n+        27: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         32: pop\n         33: aload_3\n         34: aload_0\n-        35: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-        38: ldc           #10                 // String articles about dogs\n-        40: invokeinterface #8,  3            // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        35: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        38: ldc           #35                 // String articles about dogs\n+        40: invokeinterface #26,  3           // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n         45: pop\n-        46: ldc           #30                 // String 1, 2\n-        48: invokestatic  #12                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        46: ldc           #107                // String 1, 2\n+        48: invokestatic  #39                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         51: astore        4\n-        53: new           #13                 // class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n+        53: new           #45                 // class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n         56: dup\n         57: aload         4\n         59: aload_3\n         60: aload_1\n-        61: invokespecial #34                 // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n+        61: invokespecial #119                // Method dev/langchain4j/rag/query/router/LanguageModelQueryRouter.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ljava/util/Map;Ldev/langchain4j/model/input/PromptTemplate;)V\n         64: astore        5\n         66: aload         5\n         68: aload_2\n-        69: invokeinterface #15,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        69: invokeinterface #50,  2           // InterfaceMethod dev/langchain4j/rag/query/router/QueryRouter.route:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         74: astore        6\n         76: aload         6\n-        78: invokestatic  #16                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        78: invokestatic  #56                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         81: iconst_2\n-        82: anewarray     #17                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n+        82: anewarray     #62                 // class dev/langchain4j/rag/content/retriever/ContentRetriever\n         85: dup\n         86: iconst_0\n         87: aload_0\n-        88: getfield      #6                  // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        88: getfield      #18                 // Field catArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         91: aastore\n         92: dup\n         93: iconst_1\n         94: aload_0\n-        95: getfield      #9                  // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        95: getfield      #32                 // Field dogArticlesRetriever:Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         98: aastore\n-        99: invokevirtual #31                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        99: invokevirtual #109                // Method org/assertj/core/api/AbstractCollectionAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        102: pop\n        103: aload         4\n-       105: invokevirtual #19                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-       108: invokestatic  #20                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       111: ldc           #35                 // String Which source should I use to get answer for \\'Which animal is the fluffiest?\\'? Options: 1: articles about cats\\n2: articles about dogs\\'\n-       113: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       105: invokevirtual #70                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+       108: invokestatic  #74                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       111: ldc           #122                // String Which source should I use to get answer for \\'Which animal is the fluffiest?\\'? Options: 1: articles about cats\\n2: articles about dogs\\'\n+       113: invokevirtual #79                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        116: pop\n        117: return\n       LineNumberTable:\n         line 118: 0\n         line 123: 6\n         line 126: 12\n         line 127: 20\n@@ -527,18 +527,18 @@\n            66      52     5 router   Ldev/langchain4j/rag/query/router/QueryRouter;\n            76      42     6 retrievers   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            20      98     3 retrieverToDescription   Ljava/util/Map<Ldev/langchain4j/rag/content/retriever/ContentRetriever;Ljava/lang/String;>;\n            76      42     6 retrievers   Ljava/util/Collection<Ldev/langchain4j/rag/content/retriever/ContentRetriever;>;\n     RuntimeVisibleAnnotations:\n-      0: #64()\n+      0: #144()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"LanguageModelQueryRouterTest.java\"\n RuntimeVisibleAnnotations:\n-  0: #72(#73=[c#74])\n+  0: #152(#153=[c#154])\n     org.junit.jupiter.api.extension.ExtendWith(\n       value=[class Lorg/mockito/junit/jupiter/MockitoExtension;]\n     )\n InnerClasses:\n-  public static #144= #104 of #13;        // LanguageModelQueryRouterBuilder=class dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder of class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n+  public static #156= #89 of #45;         // LanguageModelQueryRouterBuilder=class dev/langchain4j/rag/query/router/LanguageModelQueryRouter$LanguageModelQueryRouterBuilder of class dev/langchain4j/rag/query/router/LanguageModelQueryRouter\n"}]}, {"source1": "dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest.class", "source2": "dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,234 +1,234 @@\n-  SHA-256 checksum c20a243e2341fb2e71ba3bc89578aa861c7751b3636c8532291f00014c8d77d6\n+  SHA-256 checksum bf39e3295650b81dd9025e16b7674880dc9588d8786bf97b2150df8568ec7dd0\n   Compiled from \"CompressingQueryTransformerTest.java\"\n class dev.langchain4j.rag.query.transformer.CompressingQueryTransformerTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #52                         // dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest\n-  super_class: #42                        // java/lang/Object\n+  this_class: #179                        // dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 5, attributes: 2\n Constant pool:\n-    #1 = Methodref          #42.#90       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #91           // dev/langchain4j/data/message/ChatMessage\n-    #3 = String             #92           // Be polite\n-    #4 = Methodref          #93.#94       // dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-    #5 = String             #95           // Tell me about Klaus Heisler\n-    #6 = Methodref          #96.#97       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-    #7 = String             #98           // He is a cool guy\n-    #8 = Methodref          #99.#100      // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-    #9 = Class              #101          // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #10 = Methodref          #9.#102       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #11 = String             #103          // 12345\n-   #12 = Methodref          #104.#105     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #13 = String             #106          // current_time\n-   #14 = Methodref          #104.#107     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #15 = String             #108          // {}\n-   #16 = Methodref          #104.#109     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #17 = Methodref          #104.#110     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #18 = Methodref          #99.#111      // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-   #19 = Methodref          #112.#113     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #20 = String             #114          // How old is he?\n-   #21 = String             #115          // default\n-   #22 = Methodref          #116.#117     // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-   #23 = Methodref          #96.#118      // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-   #24 = Methodref          #31.#119      // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-   #25 = String             #120          // How old is Klaus Heisler?\n-   #26 = Methodref          #121.#122     // dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #27 = Class              #123          // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n-   #28 = Methodref          #27.#124      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n-   #29 = Methodref          #27.#125      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #30 = Methodref          #126.#127     // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-   #31 = Class              #128          // dev/langchain4j/rag/query/Query\n-   #32 = Methodref          #31.#129      // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #33 = Methodref          #130.#131     // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #34 = Methodref          #121.#132     // dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-   #35 = Methodref          #126.#133     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #36 = String             #134          // Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\\n\\nConversation:\\nUser: Tell me about Klaus Heisler\\nAI: He is a cool guy\\n\\nUser query: How old is he?\\n\\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!\n-   #37 = Methodref          #135.#136     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #38 = Methodref          #137.#138     // java/util/Collections.emptyList:()Ljava/util/List;\n-   #39 = String             #139          // Hello\n-   #40 = Class              #140          // dev/langchain4j/model/chat/ChatLanguageModel\n-   #41 = Methodref          #141.#142     // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-   #42 = Class              #143          // java/lang/Object\n-   #43 = Methodref          #141.#144     // org/mockito/Mockito.verifyNoInteractions:([Ljava/lang/Object;)V\n-   #44 = String             #145          // Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n-   #45 = Methodref          #146.#147     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-   #46 = Methodref          #27.#148      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n-   #47 = String             #149          // Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n-   #48 = Methodref          #27.#150      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-   #49 = Methodref          #151.#152     // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-   #50 = Methodref          #151.#153     // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-   #51 = Methodref          #151.#154     // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n-   #52 = Class              #155          // dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest\n-   #53 = Utf8               <init>\n-   #54 = Utf8               ()V\n-   #55 = Utf8               Code\n-   #56 = Utf8               LineNumberTable\n-   #57 = Utf8               LocalVariableTable\n-   #58 = Utf8               this\n-   #59 = Utf8               Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest;\n-   #60 = Utf8               should_compress_query_and_chat_memory_into_single_query\n-   #61 = Utf8               chatMemory\n-   #62 = Utf8               Ljava/util/List;\n-   #63 = Utf8               userMessage\n-   #64 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-   #65 = Utf8               metadata\n-   #66 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n-   #67 = Utf8               query\n-   #68 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #69 = Utf8               expectedResultingQuery\n-   #70 = Utf8               Ljava/lang/String;\n-   #71 = Utf8               model\n-   #72 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #73 = Utf8               transformer\n-   #74 = Utf8               Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n-   #75 = Utf8               queries\n-   #76 = Utf8               Ljava/util/Collection;\n-   #77 = Utf8               LocalVariableTypeTable\n-   #78 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-   #79 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n-   #80 = Utf8               RuntimeVisibleAnnotations\n-   #81 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #82 = Utf8               should_not_compress_when_empty_chat_memory\n-   #83 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModel;\n-   #84 = Utf8               should_compress_query_and_chat_memory_into_single_query_using_custom_prompt_template\n-   #85 = Utf8               promptTemplate\n-   #86 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n-   #87 = Utf8               should_compress_query_and_chat_memory_into_single_query_using_custom_prompt_template_builder\n-   #88 = Utf8               SourceFile\n-   #89 = Utf8               CompressingQueryTransformerTest.java\n-   #90 = NameAndType        #53:#54       // \"<init>\":()V\n-   #91 = Utf8               dev/langchain4j/data/message/ChatMessage\n-   #92 = Utf8               Be polite\n-   #93 = Class              #156          // dev/langchain4j/data/message/SystemMessage\n-   #94 = NameAndType        #157:#158     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-   #95 = Utf8               Tell me about Klaus Heisler\n-   #96 = Class              #159          // dev/langchain4j/data/message/UserMessage\n-   #97 = NameAndType        #157:#160     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-   #98 = Utf8               He is a cool guy\n-   #99 = Class              #161          // dev/langchain4j/data/message/AiMessage\n-  #100 = NameAndType        #157:#162     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #101 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #102 = NameAndType        #163:#166     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #103 = Utf8               12345\n-  #104 = Class              #167          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #105 = NameAndType        #168:#169     // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #106 = Utf8               current_time\n-  #107 = NameAndType        #170:#169     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #108 = Utf8               {}\n-  #109 = NameAndType        #171:#169     // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #110 = NameAndType        #172:#173     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #111 = NameAndType        #157:#174     // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #112 = Class              #175          // java/util/Arrays\n-  #113 = NameAndType        #176:#177     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #114 = Utf8               How old is he?\n-  #115 = Utf8               default\n-  #116 = Class              #178          // dev/langchain4j/rag/query/Metadata\n-  #117 = NameAndType        #157:#179     // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-  #118 = NameAndType        #180:#181     // text:()Ljava/lang/String;\n-  #119 = NameAndType        #157:#182     // from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-  #120 = Utf8               How old is Klaus Heisler?\n-  #121 = Class              #183          // dev/langchain4j/model/chat/mock/ChatModelMock\n-  #122 = NameAndType        #184:#185     // withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-  #123 = Utf8               dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n-  #124 = NameAndType        #53:#186      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n-  #125 = NameAndType        #187:#188     // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #126 = Class              #189          // org/assertj/core/api/Assertions\n-  #127 = NameAndType        #190:#191     // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #128 = Utf8               dev/langchain4j/rag/query/Query\n-  #129 = NameAndType        #157:#192     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #130 = Class              #193          // org/assertj/core/api/AbstractCollectionAssert\n-  #131 = NameAndType        #194:#195     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #132 = NameAndType        #196:#181     // userMessageText:()Ljava/lang/String;\n-  #133 = NameAndType        #190:#197     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #134 = Utf8               Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\\n\\nConversation:\\nUser: Tell me about Klaus Heisler\\nAI: He is a cool guy\\n\\nUser query: How old is he?\\n\\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!\n-  #135 = Class              #198          // org/assertj/core/api/AbstractStringAssert\n-  #136 = NameAndType        #199:#197     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #137 = Class              #200          // java/util/Collections\n-  #138 = NameAndType        #201:#202     // emptyList:()Ljava/util/List;\n-  #139 = Utf8               Hello\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/data/message/ChatMessage\n+    #8 = Utf8               dev/langchain4j/data/message/ChatMessage\n+    #9 = String             #10           // Be polite\n+   #10 = Utf8               Be polite\n+   #11 = Methodref          #12.#13       // dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #12 = Class              #14           // dev/langchain4j/data/message/SystemMessage\n+   #13 = NameAndType        #15:#16       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #14 = Utf8               dev/langchain4j/data/message/SystemMessage\n+   #15 = Utf8               from\n+   #16 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+   #17 = String             #18           // Tell me about Klaus Heisler\n+   #18 = Utf8               Tell me about Klaus Heisler\n+   #19 = Methodref          #20.#21       // dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #20 = Class              #22           // dev/langchain4j/data/message/UserMessage\n+   #21 = NameAndType        #15:#23       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #22 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #23 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+   #24 = String             #25           // He is a cool guy\n+   #25 = Utf8               He is a cool guy\n+   #26 = Methodref          #27.#28       // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #27 = Class              #29           // dev/langchain4j/data/message/AiMessage\n+   #28 = NameAndType        #15:#30       // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #29 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #30 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+   #31 = Class              #32           // dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #32 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+   #33 = Methodref          #31.#34       // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #34 = NameAndType        #35:#36       // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #35 = Utf8               builder\n+   #36 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #37 = String             #38           // 12345\n+   #38 = Utf8               12345\n+   #39 = Methodref          #40.#41       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #40 = Class              #42           // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #41 = NameAndType        #43:#44       // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #42 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+   #43 = Utf8               id\n+   #44 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #45 = String             #46           // current_time\n+   #46 = Utf8               current_time\n+   #47 = Methodref          #40.#48       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #48 = NameAndType        #49:#44       // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #49 = Utf8               name\n+   #50 = String             #51           // {}\n+   #51 = Utf8               {}\n+   #52 = Methodref          #40.#53       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #53 = NameAndType        #54:#44       // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+   #54 = Utf8               arguments\n+   #55 = Methodref          #40.#56       // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #56 = NameAndType        #57:#58       // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #57 = Utf8               build\n+   #58 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+   #59 = Methodref          #27.#60       // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+   #60 = NameAndType        #15:#61       // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+   #61 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+   #62 = Methodref          #63.#64       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #63 = Class              #65           // java/util/Arrays\n+   #64 = NameAndType        #66:#67       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #65 = Utf8               java/util/Arrays\n+   #66 = Utf8               asList\n+   #67 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #68 = String             #69           // How old is he?\n+   #69 = Utf8               How old is he?\n+   #70 = String             #71           // default\n+   #71 = Utf8               default\n+   #72 = Methodref          #73.#74       // dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #73 = Class              #75           // dev/langchain4j/rag/query/Metadata\n+   #74 = NameAndType        #15:#76       // from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #75 = Utf8               dev/langchain4j/rag/query/Metadata\n+   #76 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+   #77 = Methodref          #20.#78       // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+   #78 = NameAndType        #79:#80       // text:()Ljava/lang/String;\n+   #79 = Utf8               text\n+   #80 = Utf8               ()Ljava/lang/String;\n+   #81 = Methodref          #82.#83       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+   #82 = Class              #84           // dev/langchain4j/rag/query/Query\n+   #83 = NameAndType        #15:#85       // from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+   #84 = Utf8               dev/langchain4j/rag/query/Query\n+   #85 = Utf8               (Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+   #86 = String             #87           // How old is Klaus Heisler?\n+   #87 = Utf8               How old is Klaus Heisler?\n+   #88 = Methodref          #89.#90       // dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #89 = Class              #91           // dev/langchain4j/model/chat/mock/ChatModelMock\n+   #90 = NameAndType        #92:#93       // withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #91 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n+   #92 = Utf8               withStaticResponse\n+   #93 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #94 = Class              #95           // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n+   #95 = Utf8               dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n+   #96 = Methodref          #94.#97       // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+   #97 = NameAndType        #5:#98        // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+   #98 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+   #99 = Methodref          #94.#100      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #100 = NameAndType        #101:#102     // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #101 = Utf8               transform\n+  #102 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #103 = Methodref          #104.#105     // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #104 = Class              #106          // org/assertj/core/api/Assertions\n+  #105 = NameAndType        #107:#108     // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #106 = Utf8               org/assertj/core/api/Assertions\n+  #107 = Utf8               assertThat\n+  #108 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #109 = Methodref          #82.#110      // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #110 = NameAndType        #15:#111      // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #111 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #112 = Methodref          #113.#114     // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #113 = Class              #115          // org/assertj/core/api/AbstractCollectionAssert\n+  #114 = NameAndType        #116:#117     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #115 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n+  #116 = Utf8               containsExactly\n+  #117 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #118 = Methodref          #89.#119      // dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+  #119 = NameAndType        #120:#80      // userMessageText:()Ljava/lang/String;\n+  #120 = Utf8               userMessageText\n+  #121 = Methodref          #104.#122     // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #122 = NameAndType        #107:#123     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #123 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #124 = String             #125          // Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\\n\\nConversation:\\nUser: Tell me about Klaus Heisler\\nAI: He is a cool guy\\n\\nUser query: How old is he?\\n\\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!\n+  #125 = Utf8               Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\\n\\nConversation:\\nUser: Tell me about Klaus Heisler\\nAI: He is a cool guy\\n\\nUser query: How old is he?\\n\\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!\n+  #126 = Methodref          #127.#128     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #127 = Class              #129          // org/assertj/core/api/AbstractStringAssert\n+  #128 = NameAndType        #130:#123     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #129 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #130 = Utf8               isEqualTo\n+  #131 = Methodref          #132.#133     // java/util/Collections.emptyList:()Ljava/util/List;\n+  #132 = Class              #134          // java/util/Collections\n+  #133 = NameAndType        #135:#136     // emptyList:()Ljava/util/List;\n+  #134 = Utf8               java/util/Collections\n+  #135 = Utf8               emptyList\n+  #136 = Utf8               ()Ljava/util/List;\n+  #137 = String             #138          // Hello\n+  #138 = Utf8               Hello\n+  #139 = Class              #140          // dev/langchain4j/model/chat/ChatLanguageModel\n   #140 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n-  #141 = Class              #203          // org/mockito/Mockito\n-  #142 = NameAndType        #204:#205     // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-  #143 = Utf8               java/lang/Object\n-  #144 = NameAndType        #206:#207     // verifyNoInteractions:([Ljava/lang/Object;)V\n-  #145 = Utf8               Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n-  #146 = Class              #208          // dev/langchain4j/model/input/PromptTemplate\n-  #147 = NameAndType        #157:#209     // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #148 = NameAndType        #53:#210      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #149 = Utf8               Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n-  #150 = NameAndType        #163:#212     // builder:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-  #151 = Class              #213          // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder\n-  #152 = NameAndType        #214:#215     // chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-  #153 = NameAndType        #85:#216      // promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-  #154 = NameAndType        #172:#217     // build:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n-  #155 = Utf8               dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest\n-  #156 = Utf8               dev/langchain4j/data/message/SystemMessage\n-  #157 = Utf8               from\n-  #158 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n-  #159 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #160 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n-  #161 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #162 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #163 = Utf8               builder\n-  #164 = Utf8               Builder\n-  #165 = Utf8               InnerClasses\n-  #166 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #167 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #168 = Utf8               id\n-  #169 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #170 = Utf8               name\n-  #171 = Utf8               arguments\n-  #172 = Utf8               build\n-  #173 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #174 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #175 = Utf8               java/util/Arrays\n-  #176 = Utf8               asList\n-  #177 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #178 = Utf8               dev/langchain4j/rag/query/Metadata\n-  #179 = Utf8               (Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n-  #180 = Utf8               text\n-  #181 = Utf8               ()Ljava/lang/String;\n-  #182 = Utf8               (Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n-  #183 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n-  #184 = Utf8               withStaticResponse\n-  #185 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-  #186 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n-  #187 = Utf8               transform\n-  #188 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #189 = Utf8               org/assertj/core/api/Assertions\n-  #190 = Utf8               assertThat\n-  #191 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #192 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #193 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n-  #194 = Utf8               containsExactly\n-  #195 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #196 = Utf8               userMessageText\n-  #197 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #198 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #199 = Utf8               isEqualTo\n-  #200 = Utf8               java/util/Collections\n-  #201 = Utf8               emptyList\n-  #202 = Utf8               ()Ljava/util/List;\n-  #203 = Utf8               org/mockito/Mockito\n-  #204 = Utf8               mock\n-  #205 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n-  #206 = Utf8               verifyNoInteractions\n-  #207 = Utf8               ([Ljava/lang/Object;)V\n-  #208 = Utf8               dev/langchain4j/model/input/PromptTemplate\n-  #209 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #210 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #211 = Utf8               CompressingQueryTransformerBuilder\n-  #212 = Utf8               ()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-  #213 = Utf8               dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder\n-  #214 = Utf8               chatLanguageModel\n-  #215 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-  #216 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-  #217 = Utf8               ()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n+  #141 = Methodref          #142.#143     // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+  #142 = Class              #144          // org/mockito/Mockito\n+  #143 = NameAndType        #145:#146     // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+  #144 = Utf8               org/mockito/Mockito\n+  #145 = Utf8               mock\n+  #146 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n+  #147 = Methodref          #142.#148     // org/mockito/Mockito.verifyNoInteractions:([Ljava/lang/Object;)V\n+  #148 = NameAndType        #149:#150     // verifyNoInteractions:([Ljava/lang/Object;)V\n+  #149 = Utf8               verifyNoInteractions\n+  #150 = Utf8               ([Ljava/lang/Object;)V\n+  #151 = String             #152          // Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n+  #152 = Utf8               Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n+  #153 = Methodref          #154.#155     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #154 = Class              #156          // dev/langchain4j/model/input/PromptTemplate\n+  #155 = NameAndType        #15:#157      // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #156 = Utf8               dev/langchain4j/model/input/PromptTemplate\n+  #157 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+  #158 = Methodref          #94.#159      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #159 = NameAndType        #5:#160       // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #160 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+  #161 = String             #162          // Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n+  #162 = Utf8               Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n+  #163 = Methodref          #94.#164      // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #164 = NameAndType        #35:#165      // builder:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #165 = Utf8               ()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #166 = Methodref          #167.#168     // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #167 = Class              #169          // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder\n+  #168 = NameAndType        #170:#171     // chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #169 = Utf8               dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder\n+  #170 = Utf8               chatLanguageModel\n+  #171 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #172 = Methodref          #167.#173     // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #173 = NameAndType        #174:#175     // promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #174 = Utf8               promptTemplate\n+  #175 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+  #176 = Methodref          #167.#177     // dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n+  #177 = NameAndType        #57:#178      // build:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n+  #178 = Utf8               ()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n+  #179 = Class              #180          // dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest\n+  #180 = Utf8               dev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest\n+  #181 = Utf8               Code\n+  #182 = Utf8               LineNumberTable\n+  #183 = Utf8               LocalVariableTable\n+  #184 = Utf8               this\n+  #185 = Utf8               Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformerTest;\n+  #186 = Utf8               should_compress_query_and_chat_memory_into_single_query\n+  #187 = Utf8               chatMemory\n+  #188 = Utf8               Ljava/util/List;\n+  #189 = Utf8               userMessage\n+  #190 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+  #191 = Utf8               metadata\n+  #192 = Utf8               Ldev/langchain4j/rag/query/Metadata;\n+  #193 = Utf8               query\n+  #194 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #195 = Utf8               expectedResultingQuery\n+  #196 = Utf8               Ljava/lang/String;\n+  #197 = Utf8               model\n+  #198 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+  #199 = Utf8               transformer\n+  #200 = Utf8               Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n+  #201 = Utf8               queries\n+  #202 = Utf8               Ljava/util/Collection;\n+  #203 = Utf8               LocalVariableTypeTable\n+  #204 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #205 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n+  #206 = Utf8               RuntimeVisibleAnnotations\n+  #207 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #208 = Utf8               should_not_compress_when_empty_chat_memory\n+  #209 = Utf8               Ldev/langchain4j/model/chat/ChatLanguageModel;\n+  #210 = Utf8               should_compress_query_and_chat_memory_into_single_query_using_custom_prompt_template\n+  #211 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n+  #212 = Utf8               should_compress_query_and_chat_memory_into_single_query_using_custom_prompt_template_builder\n+  #213 = Utf8               SourceFile\n+  #214 = Utf8               CompressingQueryTransformerTest.java\n+  #215 = Utf8               InnerClasses\n+  #216 = Utf8               Builder\n+  #217 = Utf8               CompressingQueryTransformerBuilder\n {\n   dev.langchain4j.rag.query.transformer.CompressingQueryTransformerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -242,92 +242,92 @@\n \n   void should_compress_query_and_chat_memory_into_single_query();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=8, locals=9, args_size=1\n          0: iconst_4\n-         1: anewarray     #2                  // class dev/langchain4j/data/message/ChatMessage\n+         1: anewarray     #7                  // class dev/langchain4j/data/message/ChatMessage\n          4: dup\n          5: iconst_0\n-         6: ldc           #3                  // String Be polite\n-         8: invokestatic  #4                  // Method dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n+         6: ldc           #9                  // String Be polite\n+         8: invokestatic  #11                 // Method dev/langchain4j/data/message/SystemMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/SystemMessage;\n         11: aastore\n         12: dup\n         13: iconst_1\n-        14: ldc           #5                  // String Tell me about Klaus Heisler\n-        16: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        14: ldc           #17                 // String Tell me about Klaus Heisler\n+        16: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         19: aastore\n         20: dup\n         21: iconst_2\n-        22: ldc           #7                  // String He is a cool guy\n-        24: invokestatic  #8                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        22: ldc           #24                 // String He is a cool guy\n+        24: invokestatic  #26                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         27: aastore\n         28: dup\n         29: iconst_3\n         30: iconst_1\n-        31: anewarray     #9                  // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+        31: anewarray     #31                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n         34: dup\n         35: iconst_0\n-        36: invokestatic  #10                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        39: ldc           #11                 // String 12345\n-        41: invokevirtual #12                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        44: ldc           #13                 // String current_time\n-        46: invokevirtual #14                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        49: ldc           #15                 // String {}\n-        51: invokevirtual #16                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        54: invokevirtual #17                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        36: invokestatic  #33                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        39: ldc           #37                 // String 12345\n+        41: invokevirtual #39                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        44: ldc           #45                 // String current_time\n+        46: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        49: ldc           #50                 // String {}\n+        51: invokevirtual #52                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        54: invokevirtual #55                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         57: aastore\n-        58: invokestatic  #18                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+        58: invokestatic  #59                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n         61: aastore\n-        62: invokestatic  #19                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        62: invokestatic  #62                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         65: astore_1\n-        66: ldc           #20                 // String How old is he?\n-        68: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        66: ldc           #68                 // String How old is he?\n+        68: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         71: astore_2\n         72: aload_2\n-        73: ldc           #21                 // String default\n+        73: ldc           #70                 // String default\n         75: aload_1\n-        76: invokestatic  #22                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        76: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         79: astore_3\n         80: aload_2\n-        81: invokevirtual #23                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        81: invokevirtual #77                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n         84: aload_3\n-        85: invokestatic  #24                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        85: invokestatic  #81                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         88: astore        4\n-        90: ldc           #25                 // String How old is Klaus Heisler?\n+        90: ldc           #86                 // String How old is Klaus Heisler?\n         92: astore        5\n         94: aload         5\n-        96: invokestatic  #26                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        96: invokestatic  #88                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         99: astore        6\n-       101: new           #27                 // class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n+       101: new           #94                 // class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n        104: dup\n        105: aload         6\n-       107: invokespecial #28                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+       107: invokespecial #96                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n        110: astore        7\n        112: aload         7\n        114: aload         4\n-       116: invokevirtual #29                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+       116: invokevirtual #99                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n        119: astore        8\n        121: aload         8\n-       123: invokestatic  #30                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+       123: invokestatic  #103                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n        126: iconst_1\n-       127: anewarray     #31                 // class dev/langchain4j/rag/query/Query\n+       127: anewarray     #82                 // class dev/langchain4j/rag/query/Query\n        130: dup\n        131: iconst_0\n        132: aload         5\n-       134: invokestatic  #32                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       134: invokestatic  #109                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        137: aastore\n-       138: invokevirtual #33                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       138: invokevirtual #112                // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        141: pop\n        142: aload         6\n-       144: invokevirtual #34                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-       147: invokestatic  #35                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       150: ldc           #36                 // String Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\\n\\nConversation:\\nUser: Tell me about Klaus Heisler\\nAI: He is a cool guy\\n\\nUser query: How old is he?\\n\\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!\n-       152: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       144: invokevirtual #118                // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+       147: invokestatic  #121                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       150: ldc           #124                // String Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\\n\\nConversation:\\nUser: Tell me about Klaus Heisler\\nAI: He is a cool guy\\n\\nUser query: How old is he?\\n\\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!\n+       152: invokevirtual #126                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        155: pop\n        156: return\n       LineNumberTable:\n         line 30: 0\n         line 31: 8\n         line 32: 16\n         line 33: 24\n@@ -360,67 +360,67 @@\n           112      45     7 transformer   Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n           121      36     8 queries   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            66      91     1 chatMemory   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n           121      36     8 queries   Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #207()\n         org.junit.jupiter.api.Test\n \n   void should_not_compress_when_empty_chat_memory();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=8, args_size=1\n-         0: invokestatic  #38                 // Method java/util/Collections.emptyList:()Ljava/util/List;\n+         0: invokestatic  #131                // Method java/util/Collections.emptyList:()Ljava/util/List;\n          3: astore_1\n-         4: ldc           #39                 // String Hello\n-         6: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+         4: ldc           #137                // String Hello\n+         6: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n          9: astore_2\n         10: aload_2\n-        11: ldc           #21                 // String default\n+        11: ldc           #70                 // String default\n         13: aload_1\n-        14: invokestatic  #22                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        14: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         17: astore_3\n         18: aload_2\n-        19: invokevirtual #23                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        19: invokevirtual #77                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n         22: aload_3\n-        23: invokestatic  #24                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        23: invokestatic  #81                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         26: astore        4\n-        28: ldc           #40                 // class dev/langchain4j/model/chat/ChatLanguageModel\n-        30: invokestatic  #41                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        33: checkcast     #40                 // class dev/langchain4j/model/chat/ChatLanguageModel\n+        28: ldc           #139                // class dev/langchain4j/model/chat/ChatLanguageModel\n+        30: invokestatic  #141                // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        33: checkcast     #139                // class dev/langchain4j/model/chat/ChatLanguageModel\n         36: astore        5\n-        38: new           #27                 // class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n+        38: new           #94                 // class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n         41: dup\n         42: aload         5\n-        44: invokespecial #28                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+        44: invokespecial #96                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n         47: astore        6\n         49: aload         6\n         51: aload         4\n-        53: invokevirtual #29                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        53: invokevirtual #99                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         56: astore        7\n         58: aload         7\n-        60: invokestatic  #30                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        60: invokestatic  #103                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         63: iconst_1\n-        64: anewarray     #31                 // class dev/langchain4j/rag/query/Query\n+        64: anewarray     #82                 // class dev/langchain4j/rag/query/Query\n         67: dup\n         68: iconst_0\n         69: aload         4\n         71: aastore\n-        72: invokevirtual #33                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        72: invokevirtual #112                // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         75: pop\n         76: iconst_1\n-        77: anewarray     #42                 // class java/lang/Object\n+        77: anewarray     #2                  // class java/lang/Object\n         80: dup\n         81: iconst_0\n         82: aload         5\n         84: aastore\n-        85: invokestatic  #43                 // Method org/mockito/Mockito.verifyNoInteractions:([Ljava/lang/Object;)V\n+        85: invokestatic  #147                // Method org/mockito/Mockito.verifyNoInteractions:([Ljava/lang/Object;)V\n         88: return\n       LineNumberTable:\n         line 79: 0\n         line 81: 4\n         line 82: 10\n         line 84: 18\n         line 86: 28\n@@ -440,83 +440,83 @@\n            49      40     6 transformer   Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n            58      31     7 queries   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             4      85     1 chatMemory   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            58      31     7 queries   Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #207()\n         org.junit.jupiter.api.Test\n \n   void should_compress_query_and_chat_memory_into_single_query_using_custom_prompt_template();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=10, args_size=1\n-         0: ldc           #44                 // String Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n-         2: invokestatic  #45                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #151                // String Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n+         2: invokestatic  #153                // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n          6: iconst_2\n-         7: anewarray     #2                  // class dev/langchain4j/data/message/ChatMessage\n+         7: anewarray     #7                  // class dev/langchain4j/data/message/ChatMessage\n         10: dup\n         11: iconst_0\n-        12: ldc           #5                  // String Tell me about Klaus Heisler\n-        14: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        12: ldc           #17                 // String Tell me about Klaus Heisler\n+        14: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         17: aastore\n         18: dup\n         19: iconst_1\n-        20: ldc           #7                  // String He is a cool guy\n-        22: invokestatic  #8                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        20: ldc           #24                 // String He is a cool guy\n+        22: invokestatic  #26                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         25: aastore\n-        26: invokestatic  #19                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        26: invokestatic  #62                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         29: astore_2\n-        30: ldc           #20                 // String How old is he?\n-        32: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        30: ldc           #68                 // String How old is he?\n+        32: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         35: astore_3\n         36: aload_3\n-        37: ldc           #21                 // String default\n+        37: ldc           #70                 // String default\n         39: aload_2\n-        40: invokestatic  #22                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        40: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         43: astore        4\n         45: aload_3\n-        46: invokevirtual #23                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        46: invokevirtual #77                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n         49: aload         4\n-        51: invokestatic  #24                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        51: invokestatic  #81                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         54: astore        5\n-        56: ldc           #25                 // String How old is Klaus Heisler?\n+        56: ldc           #86                 // String How old is Klaus Heisler?\n         58: astore        6\n         60: aload         6\n-        62: invokestatic  #26                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        62: invokestatic  #88                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         65: astore        7\n-        67: new           #27                 // class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n+        67: new           #94                 // class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n         70: dup\n         71: aload         7\n         73: aload_1\n-        74: invokespecial #46                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+        74: invokespecial #158                // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n         77: astore        8\n         79: aload         8\n         81: aload         5\n-        83: invokevirtual #29                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        83: invokevirtual #99                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         86: astore        9\n         88: aload         9\n-        90: invokestatic  #30                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        90: invokestatic  #103                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         93: iconst_1\n-        94: anewarray     #31                 // class dev/langchain4j/rag/query/Query\n+        94: anewarray     #82                 // class dev/langchain4j/rag/query/Query\n         97: dup\n         98: iconst_0\n         99: aload         6\n-       101: invokestatic  #32                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       101: invokestatic  #109                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        104: aastore\n-       105: invokevirtual #33                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       105: invokevirtual #112                // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        108: pop\n        109: aload         7\n-       111: invokevirtual #34                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-       114: invokestatic  #35                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       117: ldc           #47                 // String Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n-       119: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       111: invokevirtual #118                // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+       114: invokestatic  #121                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       117: ldc           #161                // String Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n+       119: invokevirtual #126                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        122: pop\n        123: return\n       LineNumberTable:\n         line 102: 0\n         line 105: 6\n         line 106: 14\n         line 107: 22\n@@ -544,84 +544,84 @@\n            79      45     8 transformer   Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n            88      36     9 queries   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            30      94     2 chatMemory   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            88      36     9 queries   Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #207()\n         org.junit.jupiter.api.Test\n \n   void should_compress_query_and_chat_memory_into_single_query_using_custom_prompt_template_builder();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=10, args_size=1\n-         0: ldc           #44                 // String Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n-         2: invokestatic  #45                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #151                // String Given the following conversation: {{chatMemory}} reformulate the following query: {{query}}\n+         2: invokestatic  #153                // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n          6: iconst_2\n-         7: anewarray     #2                  // class dev/langchain4j/data/message/ChatMessage\n+         7: anewarray     #7                  // class dev/langchain4j/data/message/ChatMessage\n         10: dup\n         11: iconst_0\n-        12: ldc           #5                  // String Tell me about Klaus Heisler\n-        14: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        12: ldc           #17                 // String Tell me about Klaus Heisler\n+        14: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         17: aastore\n         18: dup\n         19: iconst_1\n-        20: ldc           #7                  // String He is a cool guy\n-        22: invokestatic  #8                  // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        20: ldc           #24                 // String He is a cool guy\n+        22: invokestatic  #26                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         25: aastore\n-        26: invokestatic  #19                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        26: invokestatic  #62                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n         29: astore_2\n-        30: ldc           #20                 // String How old is he?\n-        32: invokestatic  #6                  // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n+        30: ldc           #68                 // String How old is he?\n+        32: invokestatic  #19                 // Method dev/langchain4j/data/message/UserMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/UserMessage;\n         35: astore_3\n         36: aload_3\n-        37: ldc           #21                 // String default\n+        37: ldc           #70                 // String default\n         39: aload_2\n-        40: invokestatic  #22                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n+        40: invokestatic  #72                 // Method dev/langchain4j/rag/query/Metadata.from:(Ldev/langchain4j/data/message/UserMessage;Ljava/lang/Object;Ljava/util/List;)Ldev/langchain4j/rag/query/Metadata;\n         43: astore        4\n         45: aload_3\n-        46: invokevirtual #23                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        46: invokevirtual #77                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n         49: aload         4\n-        51: invokestatic  #24                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n+        51: invokestatic  #81                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;Ldev/langchain4j/rag/query/Metadata;)Ldev/langchain4j/rag/query/Query;\n         54: astore        5\n-        56: ldc           #25                 // String How old is Klaus Heisler?\n+        56: ldc           #86                 // String How old is Klaus Heisler?\n         58: astore        6\n         60: aload         6\n-        62: invokestatic  #26                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+        62: invokestatic  #88                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         65: astore        7\n-        67: invokestatic  #48                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+        67: invokestatic  #163                // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n         70: aload         7\n-        72: invokevirtual #49                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+        72: invokevirtual #166                // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n         75: aload_1\n-        76: invokevirtual #50                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n-        79: invokevirtual #51                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n+        76: invokevirtual #172                // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder;\n+        79: invokevirtual #176                // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n         82: astore        8\n         84: aload         8\n         86: aload         5\n-        88: invokevirtual #29                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        88: invokevirtual #99                 // Method dev/langchain4j/rag/query/transformer/CompressingQueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         91: astore        9\n         93: aload         9\n-        95: invokestatic  #30                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        95: invokestatic  #103                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         98: iconst_1\n-        99: anewarray     #31                 // class dev/langchain4j/rag/query/Query\n+        99: anewarray     #82                 // class dev/langchain4j/rag/query/Query\n        102: dup\n        103: iconst_0\n        104: aload         6\n-       106: invokestatic  #32                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+       106: invokestatic  #109                // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n        109: aastore\n-       110: invokevirtual #33                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+       110: invokevirtual #112                // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n        113: pop\n        114: aload         7\n-       116: invokevirtual #34                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-       119: invokestatic  #35                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       122: ldc           #47                 // String Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n-       124: invokevirtual #37                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       116: invokevirtual #118                // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+       119: invokestatic  #121                // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       122: ldc           #161                // String Given the following conversation: User: Tell me about Klaus Heisler\\nAI: He is a cool guy reformulate the following query: How old is he?\n+       124: invokevirtual #126                // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        127: pop\n        128: return\n       LineNumberTable:\n         line 136: 0\n         line 139: 6\n         line 140: 14\n         line 141: 22\n@@ -652,14 +652,14 @@\n            84      45     8 transformer   Ldev/langchain4j/rag/query/transformer/CompressingQueryTransformer;\n            93      36     9 queries   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            30      99     2 chatMemory   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            93      36     9 queries   Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n     RuntimeVisibleAnnotations:\n-      0: #81()\n+      0: #207()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"CompressingQueryTransformerTest.java\"\n InnerClasses:\n-  public static final #164= #104 of #9;   // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n-  public static #211= #151 of #27;        // CompressingQueryTransformerBuilder=class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder of class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n+  public static final #216= #40 of #31;   // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static #217= #167 of #94;        // CompressingQueryTransformerBuilder=class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer$CompressingQueryTransformerBuilder of class dev/langchain4j/rag/query/transformer/CompressingQueryTransformer\n"}]}, {"source1": "dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest.class", "source2": "dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,71 +1,71 @@\n-  SHA-256 checksum 9c84977cbf339620d86e3961be6f673e09d1620ee7f58cea95467e2e172cb266\n+  SHA-256 checksum 68d67d456ba8dcd1cb0c7e771b1bd9b43b1576e35bc2284cae72605da44a4402\n   Compiled from \"DefaultQueryTransformerTest.java\"\n class dev.langchain4j.rag.query.transformer.DefaultQueryTransformerTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #10                         // dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest\n-  super_class: #11                        // java/lang/Object\n+  this_class: #36                         // dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 2, attributes: 1\n Constant pool:\n-   #1 = Methodref          #11.#32        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #33            // dev/langchain4j/rag/query/transformer/DefaultQueryTransformer\n-   #3 = Methodref          #2.#32         // dev/langchain4j/rag/query/transformer/DefaultQueryTransformer.\"<init>\":()V\n-   #4 = String             #22            // query\n-   #5 = Methodref          #8.#34         // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #6 = InterfaceMethodref #35.#36        // dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #7 = Methodref          #37.#38        // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-   #8 = Class              #39            // dev/langchain4j/rag/query/Query\n-   #9 = Methodref          #40.#41        // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #10 = Class              #42            // dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest\n-  #11 = Class              #43            // java/lang/Object\n-  #12 = Utf8               <init>\n-  #13 = Utf8               ()V\n-  #14 = Utf8               Code\n-  #15 = Utf8               LineNumberTable\n-  #16 = Utf8               LocalVariableTable\n-  #17 = Utf8               this\n-  #18 = Utf8               Ldev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest;\n-  #19 = Utf8               should_return_same_query\n-  #20 = Utf8               transformer\n-  #21 = Utf8               Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n-  #22 = Utf8               query\n-  #23 = Utf8               Ldev/langchain4j/rag/query/Query;\n-  #24 = Utf8               transformed\n-  #25 = Utf8               Ljava/util/Collection;\n-  #26 = Utf8               LocalVariableTypeTable\n-  #27 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n-  #28 = Utf8               RuntimeVisibleAnnotations\n-  #29 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #30 = Utf8               SourceFile\n-  #31 = Utf8               DefaultQueryTransformerTest.java\n-  #32 = NameAndType        #12:#13        // \"<init>\":()V\n-  #33 = Utf8               dev/langchain4j/rag/query/transformer/DefaultQueryTransformer\n-  #34 = NameAndType        #44:#45        // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #35 = Class              #46            // dev/langchain4j/rag/query/transformer/QueryTransformer\n-  #36 = NameAndType        #47:#48        // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #37 = Class              #49            // org/assertj/core/api/Assertions\n-  #38 = NameAndType        #50:#51        // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #39 = Utf8               dev/langchain4j/rag/query/Query\n-  #40 = Class              #52            // org/assertj/core/api/AbstractCollectionAssert\n-  #41 = NameAndType        #53:#54        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #42 = Utf8               dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest\n-  #43 = Utf8               java/lang/Object\n-  #44 = Utf8               from\n-  #45 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #46 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n-  #47 = Utf8               transform\n-  #48 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #49 = Utf8               org/assertj/core/api/Assertions\n-  #50 = Utf8               assertThat\n-  #51 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #52 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n-  #53 = Utf8               containsExactly\n-  #54 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/rag/query/transformer/DefaultQueryTransformer\n+   #8 = Utf8               dev/langchain4j/rag/query/transformer/DefaultQueryTransformer\n+   #9 = Methodref          #7.#3          // dev/langchain4j/rag/query/transformer/DefaultQueryTransformer.\"<init>\":()V\n+  #10 = String             #11            // query\n+  #11 = Utf8               query\n+  #12 = Methodref          #13.#14        // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #13 = Class              #15            // dev/langchain4j/rag/query/Query\n+  #14 = NameAndType        #16:#17        // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #15 = Utf8               dev/langchain4j/rag/query/Query\n+  #16 = Utf8               from\n+  #17 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+  #18 = InterfaceMethodref #19.#20        // dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #19 = Class              #21            // dev/langchain4j/rag/query/transformer/QueryTransformer\n+  #20 = NameAndType        #22:#23        // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #21 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n+  #22 = Utf8               transform\n+  #23 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+  #24 = Methodref          #25.#26        // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #25 = Class              #27            // org/assertj/core/api/Assertions\n+  #26 = NameAndType        #28:#29        // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #27 = Utf8               org/assertj/core/api/Assertions\n+  #28 = Utf8               assertThat\n+  #29 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+  #30 = Methodref          #31.#32        // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #31 = Class              #33            // org/assertj/core/api/AbstractCollectionAssert\n+  #32 = NameAndType        #34:#35        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #33 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n+  #34 = Utf8               containsExactly\n+  #35 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #36 = Class              #37            // dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest\n+  #37 = Utf8               dev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest\n+  #38 = Utf8               Code\n+  #39 = Utf8               LineNumberTable\n+  #40 = Utf8               LocalVariableTable\n+  #41 = Utf8               this\n+  #42 = Utf8               Ldev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest;\n+  #43 = Utf8               should_return_same_query\n+  #44 = Utf8               transformer\n+  #45 = Utf8               Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n+  #46 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #47 = Utf8               transformed\n+  #48 = Utf8               Ljava/util/Collection;\n+  #49 = Utf8               LocalVariableTypeTable\n+  #50 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n+  #51 = Utf8               RuntimeVisibleAnnotations\n+  #52 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #53 = Utf8               SourceFile\n+  #54 = Utf8               DefaultQueryTransformerTest.java\n {\n   dev.langchain4j.rag.query.transformer.DefaultQueryTransformerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -78,34 +78,34 @@\n             0       5     0  this   Ldev/langchain4j/rag/query/transformer/DefaultQueryTransformerTest;\n \n   void should_return_same_query();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=4, args_size=1\n-         0: new           #2                  // class dev/langchain4j/rag/query/transformer/DefaultQueryTransformer\n+         0: new           #7                  // class dev/langchain4j/rag/query/transformer/DefaultQueryTransformer\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/rag/query/transformer/DefaultQueryTransformer.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/rag/query/transformer/DefaultQueryTransformer.\"<init>\":()V\n          7: astore_1\n-         8: ldc           #4                  // String query\n-        10: invokestatic  #5                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         8: ldc           #10                 // String query\n+        10: invokestatic  #12                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         13: astore_2\n         14: aload_1\n         15: aload_2\n-        16: invokeinterface #6,  2            // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        16: invokeinterface #18,  2           // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         21: astore_3\n         22: aload_3\n-        23: invokestatic  #7                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        23: invokestatic  #24                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         26: iconst_1\n-        27: anewarray     #8                  // class dev/langchain4j/rag/query/Query\n+        27: anewarray     #13                 // class dev/langchain4j/rag/query/Query\n         30: dup\n         31: iconst_0\n         32: aload_2\n         33: aastore\n-        34: invokevirtual #9                  // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        34: invokevirtual #30                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         37: pop\n         38: return\n       LineNumberTable:\n         line 16: 0\n         line 17: 8\n         line 20: 14\n         line 23: 22\n@@ -116,11 +116,11 @@\n             8      31     1 transformer   Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n            14      25     2 query   Ldev/langchain4j/rag/query/Query;\n            22      17     3 transformed   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            22      17     3 transformed   Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n     RuntimeVisibleAnnotations:\n-      0: #29()\n+      0: #52()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"DefaultQueryTransformerTest.java\"\n"}]}, {"source1": "dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest.class", "source2": "dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,171 +1,171 @@\n-  SHA-256 checksum 27a9ecd8d496e57e4a3a0dc94b187383f28c58e253e0a5113338b803e8f410d6\n+  SHA-256 checksum a35acf6f556edc379fa30332d3595dde4a2cd18af4973e8f35e61c72e7fb17f5\n   Compiled from \"ExpandingQueryTransformerTest.java\"\n class dev.langchain4j.rag.query.transformer.ExpandingQueryTransformerTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #34                         // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest\n-  super_class: #35                        // java/lang/Object\n+  this_class: #119                        // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 5, attributes: 2\n Constant pool:\n-    #1 = Methodref          #35.#73       // java/lang/Object.\"<init>\":()V\n-    #2 = String             #47           // query\n-    #3 = Methodref          #9.#74        // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-    #4 = Methodref          #75.#76       // dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-    #5 = Class              #77           // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n-    #6 = Methodref          #5.#78        // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n-    #7 = InterfaceMethodref #79.#80       // dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-    #8 = Methodref          #81.#82       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-    #9 = Class              #83           // dev/langchain4j/rag/query/Query\n-   #10 = String             #84           // query 1\n-   #11 = String             #85           // query 2\n-   #12 = String             #86           // query 3\n-   #13 = Methodref          #87.#88       // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #14 = Methodref          #75.#89       // dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-   #15 = Methodref          #81.#90       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #16 = String             #91           // Generate 3 different versions of a provided user query. Each version should be worded differently, using synonyms or alternative sentence structures, but they should all retain the original meaning. These versions will be used to retrieve relevant documents. It is very important to provide each query version on a separate line, without enumerations, hyphens, or any additional formatting!\\nUser query: query\n-   #17 = Methodref          #92.#93       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #18 = String             #94           // does not matter\n-   #19 = Methodref          #5.#95        // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n-   #20 = Class              #96           // java/lang/CharSequence\n-   #21 = String             #97           // Generate 5 different versions\n-   #22 = Methodref          #92.#98       // org/assertj/core/api/AbstractStringAssert.contains:([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-   #23 = String             #99           // Generate 7 variations of {{query}}\n-   #24 = Methodref          #100.#101     // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-   #25 = Methodref          #5.#102       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n-   #26 = String             #103          // Generate 7 variations of query\n-   #27 = String             #104          // Generate {{n}} variations of {{query}}\n-   #28 = Methodref          #5.#105       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-   #29 = Methodref          #106.#107     // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-   #30 = Methodref          #106.#108     // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-   #31 = Methodref          #109.#110     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #32 = Methodref          #106.#111     // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.n:(Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-   #33 = Methodref          #106.#112     // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n-   #34 = Class              #113          // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest\n-   #35 = Class              #114          // java/lang/Object\n-   #36 = Utf8               <init>\n-   #37 = Utf8               ()V\n-   #38 = Utf8               Code\n-   #39 = Utf8               LineNumberTable\n-   #40 = Utf8               LocalVariableTable\n-   #41 = Utf8               this\n-   #42 = Utf8               Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest;\n-   #43 = Utf8               should_expand_query\n-   #44 = Utf8               (Ljava/lang/String;)V\n-   #45 = Utf8               queriesString\n-   #46 = Utf8               Ljava/lang/String;\n-   #47 = Utf8               query\n-   #48 = Utf8               Ldev/langchain4j/rag/query/Query;\n-   #49 = Utf8               model\n-   #50 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #51 = Utf8               transformer\n-   #52 = Utf8               Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n-   #53 = Utf8               queries\n-   #54 = Utf8               Ljava/util/Collection;\n-   #55 = Utf8               LocalVariableTypeTable\n-   #56 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n-   #57 = Utf8               RuntimeVisibleAnnotations\n-   #58 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n-   #59 = Utf8               Lorg/junit/jupiter/params/provider/ValueSource;\n-   #60 = Utf8               strings\n-   #61 = Utf8               query 1\\nquery 2\\nquery 3\n-   #62 = Utf8               query 1\\n\\nquery 2\\n\\nquery 3\n-   #63 = Utf8               should_expand_query_with_custom_N\n-   #64 = Utf8               n\n-   #65 = Utf8               I\n-   #66 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #67 = Utf8               should_expand_query_with_custom_prompt_template\n-   #68 = Utf8               promptTemplate\n-   #69 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n-   #70 = Utf8               should_expand_query_with_custom_prompt_template_and_n_builder\n-   #71 = Utf8               SourceFile\n-   #72 = Utf8               ExpandingQueryTransformerTest.java\n-   #73 = NameAndType        #36:#37       // \"<init>\":()V\n-   #74 = NameAndType        #115:#116     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #75 = Class              #117          // dev/langchain4j/model/chat/mock/ChatModelMock\n-   #76 = NameAndType        #118:#119     // withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-   #77 = Utf8               dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n-   #78 = NameAndType        #36:#120      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n-   #79 = Class              #121          // dev/langchain4j/rag/query/transformer/QueryTransformer\n-   #80 = NameAndType        #122:#123     // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-   #81 = Class              #124          // org/assertj/core/api/Assertions\n-   #82 = NameAndType        #125:#126     // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-   #83 = Utf8               dev/langchain4j/rag/query/Query\n-   #84 = Utf8               query 1\n-   #85 = Utf8               query 2\n-   #86 = Utf8               query 3\n-   #87 = Class              #127          // org/assertj/core/api/AbstractCollectionAssert\n-   #88 = NameAndType        #128:#129     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #89 = NameAndType        #130:#131     // userMessageText:()Ljava/lang/String;\n-   #90 = NameAndType        #125:#132     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #91 = Utf8               Generate 3 different versions of a provided user query. Each version should be worded differently, using synonyms or alternative sentence structures, but they should all retain the original meaning. These versions will be used to retrieve relevant documents. It is very important to provide each query version on a separate line, without enumerations, hyphens, or any additional formatting!\\nUser query: query\n-   #92 = Class              #133          // org/assertj/core/api/AbstractStringAssert\n-   #93 = NameAndType        #134:#132     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #94 = Utf8               does not matter\n-   #95 = NameAndType        #36:#135      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n-   #96 = Utf8               java/lang/CharSequence\n-   #97 = Utf8               Generate 5 different versions\n-   #98 = NameAndType        #136:#137     // contains:([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-   #99 = Utf8               Generate 7 variations of {{query}}\n-  #100 = Class              #138          // dev/langchain4j/model/input/PromptTemplate\n-  #101 = NameAndType        #115:#139     // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #102 = NameAndType        #36:#140      // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #103 = Utf8               Generate 7 variations of query\n-  #104 = Utf8               Generate {{n}} variations of {{query}}\n-  #105 = NameAndType        #141:#144     // builder:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #106 = Class              #145          // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder\n-  #107 = NameAndType        #146:#147     // chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #108 = NameAndType        #68:#148      // promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #109 = Class              #149          // java/lang/Integer\n-  #110 = NameAndType        #150:#151     // valueOf:(I)Ljava/lang/Integer;\n-  #111 = NameAndType        #64:#152      // n:(Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #112 = NameAndType        #153:#154     // build:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n-  #113 = Utf8               dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest\n-  #114 = Utf8               java/lang/Object\n-  #115 = Utf8               from\n-  #116 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #117 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n-  #118 = Utf8               withStaticResponse\n-  #119 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n-  #120 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n-  #121 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n-  #122 = Utf8               transform\n-  #123 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n-  #124 = Utf8               org/assertj/core/api/Assertions\n-  #125 = Utf8               assertThat\n-  #126 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #127 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n-  #128 = Utf8               containsExactly\n-  #129 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #130 = Utf8               userMessageText\n-  #131 = Utf8               ()Ljava/lang/String;\n-  #132 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #133 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #134 = Utf8               isEqualTo\n-  #135 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n-  #136 = Utf8               contains\n-  #137 = Utf8               ([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n-  #138 = Utf8               dev/langchain4j/model/input/PromptTemplate\n-  #139 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n-  #140 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n-  #141 = Utf8               builder\n-  #142 = Utf8               ExpandingQueryTransformerBuilder\n-  #143 = Utf8               InnerClasses\n-  #144 = Utf8               ()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #145 = Utf8               dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder\n-  #146 = Utf8               chatLanguageModel\n-  #147 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #148 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #149 = Utf8               java/lang/Integer\n-  #150 = Utf8               valueOf\n-  #151 = Utf8               (I)Ljava/lang/Integer;\n-  #152 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-  #153 = Utf8               build\n-  #154 = Utf8               ()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // query\n+    #8 = Utf8               query\n+    #9 = Methodref          #10.#11       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #10 = Class              #12           // dev/langchain4j/rag/query/Query\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #12 = Utf8               dev/langchain4j/rag/query/Query\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #15 = Methodref          #16.#17       // dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #16 = Class              #18           // dev/langchain4j/model/chat/mock/ChatModelMock\n+   #17 = NameAndType        #19:#20       // withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #18 = Utf8               dev/langchain4j/model/chat/mock/ChatModelMock\n+   #19 = Utf8               withStaticResponse\n+   #20 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+   #21 = Class              #22           // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n+   #22 = Utf8               dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n+   #23 = Methodref          #21.#24       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+   #24 = NameAndType        #5:#25        // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+   #25 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+   #26 = InterfaceMethodref #27.#28       // dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+   #27 = Class              #29           // dev/langchain4j/rag/query/transformer/QueryTransformer\n+   #28 = NameAndType        #30:#31       // transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+   #29 = Utf8               dev/langchain4j/rag/query/transformer/QueryTransformer\n+   #30 = Utf8               transform\n+   #31 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+   #32 = Methodref          #33.#34       // org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #33 = Class              #35           // org/assertj/core/api/Assertions\n+   #34 = NameAndType        #36:#37       // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #35 = Utf8               org/assertj/core/api/Assertions\n+   #36 = Utf8               assertThat\n+   #37 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #38 = String             #39           // query 1\n+   #39 = Utf8               query 1\n+   #40 = String             #41           // query 2\n+   #41 = Utf8               query 2\n+   #42 = String             #43           // query 3\n+   #43 = Utf8               query 3\n+   #44 = Methodref          #45.#46       // org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #45 = Class              #47           // org/assertj/core/api/AbstractCollectionAssert\n+   #46 = NameAndType        #48:#49       // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #47 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n+   #48 = Utf8               containsExactly\n+   #49 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #50 = Methodref          #16.#51       // dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+   #51 = NameAndType        #52:#53       // userMessageText:()Ljava/lang/String;\n+   #52 = Utf8               userMessageText\n+   #53 = Utf8               ()Ljava/lang/String;\n+   #54 = Methodref          #33.#55       // org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #55 = NameAndType        #36:#56       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #56 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #57 = String             #58           // Generate 3 different versions of a provided user query. Each version should be worded differently, using synonyms or alternative sentence structures, but they should all retain the original meaning. These versions will be used to retrieve relevant documents. It is very important to provide each query version on a separate line, without enumerations, hyphens, or any additional formatting!\\nUser query: query\n+   #58 = Utf8               Generate 3 different versions of a provided user query. Each version should be worded differently, using synonyms or alternative sentence structures, but they should all retain the original meaning. These versions will be used to retrieve relevant documents. It is very important to provide each query version on a separate line, without enumerations, hyphens, or any additional formatting!\\nUser query: query\n+   #59 = Methodref          #60.#61       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #60 = Class              #62           // org/assertj/core/api/AbstractStringAssert\n+   #61 = NameAndType        #63:#56       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #62 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #63 = Utf8               isEqualTo\n+   #64 = String             #65           // does not matter\n+   #65 = Utf8               does not matter\n+   #66 = Methodref          #21.#67       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n+   #67 = NameAndType        #5:#68        // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n+   #68 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n+   #69 = Class              #70           // java/lang/CharSequence\n+   #70 = Utf8               java/lang/CharSequence\n+   #71 = String             #72           // Generate 5 different versions\n+   #72 = Utf8               Generate 5 different versions\n+   #73 = Methodref          #60.#74       // org/assertj/core/api/AbstractStringAssert.contains:([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+   #74 = NameAndType        #75:#76       // contains:([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+   #75 = Utf8               contains\n+   #76 = Utf8               ([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+   #77 = String             #78           // Generate 7 variations of {{query}}\n+   #78 = Utf8               Generate 7 variations of {{query}}\n+   #79 = Methodref          #80.#81       // dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+   #80 = Class              #82           // dev/langchain4j/model/input/PromptTemplate\n+   #81 = NameAndType        #13:#83       // from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+   #82 = Utf8               dev/langchain4j/model/input/PromptTemplate\n+   #83 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+   #84 = Methodref          #21.#85       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+   #85 = NameAndType        #5:#86        // \"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+   #86 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+   #87 = String             #88           // Generate 7 variations of query\n+   #88 = Utf8               Generate 7 variations of query\n+   #89 = String             #90           // Generate {{n}} variations of {{query}}\n+   #90 = Utf8               Generate {{n}} variations of {{query}}\n+   #91 = Methodref          #21.#92       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+   #92 = NameAndType        #93:#94       // builder:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+   #93 = Utf8               builder\n+   #94 = Utf8               ()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+   #95 = Methodref          #96.#97       // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+   #96 = Class              #98           // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder\n+   #97 = NameAndType        #99:#100      // chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+   #98 = Utf8               dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder\n+   #99 = Utf8               chatLanguageModel\n+  #100 = Utf8               (Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #101 = Methodref          #96.#102      // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #102 = NameAndType        #103:#104     // promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #103 = Utf8               promptTemplate\n+  #104 = Utf8               (Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #105 = Methodref          #106.#107     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+  #106 = Class              #108          // java/lang/Integer\n+  #107 = NameAndType        #109:#110     // valueOf:(I)Ljava/lang/Integer;\n+  #108 = Utf8               java/lang/Integer\n+  #109 = Utf8               valueOf\n+  #110 = Utf8               (I)Ljava/lang/Integer;\n+  #111 = Methodref          #96.#112      // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.n:(Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #112 = NameAndType        #113:#114     // n:(Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #113 = Utf8               n\n+  #114 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+  #115 = Methodref          #96.#116      // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n+  #116 = NameAndType        #117:#118     // build:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n+  #117 = Utf8               build\n+  #118 = Utf8               ()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n+  #119 = Class              #120          // dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest\n+  #120 = Utf8               dev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest\n+  #121 = Utf8               Code\n+  #122 = Utf8               LineNumberTable\n+  #123 = Utf8               LocalVariableTable\n+  #124 = Utf8               this\n+  #125 = Utf8               Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest;\n+  #126 = Utf8               should_expand_query\n+  #127 = Utf8               (Ljava/lang/String;)V\n+  #128 = Utf8               queriesString\n+  #129 = Utf8               Ljava/lang/String;\n+  #130 = Utf8               Ldev/langchain4j/rag/query/Query;\n+  #131 = Utf8               model\n+  #132 = Utf8               Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+  #133 = Utf8               transformer\n+  #134 = Utf8               Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n+  #135 = Utf8               queries\n+  #136 = Utf8               Ljava/util/Collection;\n+  #137 = Utf8               LocalVariableTypeTable\n+  #138 = Utf8               Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n+  #139 = Utf8               RuntimeVisibleAnnotations\n+  #140 = Utf8               Lorg/junit/jupiter/params/ParameterizedTest;\n+  #141 = Utf8               Lorg/junit/jupiter/params/provider/ValueSource;\n+  #142 = Utf8               strings\n+  #143 = Utf8               query 1\\nquery 2\\nquery 3\n+  #144 = Utf8               query 1\\n\\nquery 2\\n\\nquery 3\n+  #145 = Utf8               should_expand_query_with_custom_N\n+  #146 = Utf8               I\n+  #147 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #148 = Utf8               should_expand_query_with_custom_prompt_template\n+  #149 = Utf8               Ldev/langchain4j/model/input/PromptTemplate;\n+  #150 = Utf8               should_expand_query_with_custom_prompt_template_and_n_builder\n+  #151 = Utf8               SourceFile\n+  #152 = Utf8               ExpandingQueryTransformerTest.java\n+  #153 = Utf8               InnerClasses\n+  #154 = Utf8               ExpandingQueryTransformerBuilder\n {\n   dev.langchain4j.rag.query.transformer.ExpandingQueryTransformerTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -178,55 +178,55 @@\n             0       5     0  this   Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest;\n \n   void should_expand_query(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=6, args_size=2\n-         0: ldc           #2                  // String query\n-         2: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+         0: ldc           #7                  // String query\n+         2: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n          5: astore_2\n          6: aload_1\n-         7: invokestatic  #4                  // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+         7: invokestatic  #15                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         10: astore_3\n-        11: new           #5                  // class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n+        11: new           #21                 // class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n         14: dup\n         15: aload_3\n-        16: invokespecial #6                  // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n+        16: invokespecial #23                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;)V\n         19: astore        4\n         21: aload         4\n         23: aload_2\n-        24: invokeinterface #7,  2            // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        24: invokeinterface #26,  2           // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         29: astore        5\n         31: aload         5\n-        33: invokestatic  #8                  // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        33: invokestatic  #32                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n         36: iconst_3\n-        37: anewarray     #9                  // class dev/langchain4j/rag/query/Query\n+        37: anewarray     #10                 // class dev/langchain4j/rag/query/Query\n         40: dup\n         41: iconst_0\n-        42: ldc           #10                 // String query 1\n-        44: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        42: ldc           #38                 // String query 1\n+        44: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         47: aastore\n         48: dup\n         49: iconst_1\n-        50: ldc           #11                 // String query 2\n-        52: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        50: ldc           #40                 // String query 2\n+        52: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         55: aastore\n         56: dup\n         57: iconst_2\n-        58: ldc           #12                 // String query 3\n-        60: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        58: ldc           #42                 // String query 3\n+        60: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         63: aastore\n-        64: invokevirtual #13                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        64: invokevirtual #44                 // Method org/assertj/core/api/AbstractCollectionAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         67: pop\n         68: aload_3\n-        69: invokevirtual #14                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-        72: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        75: ldc           #16                 // String Generate 3 different versions of a provided user query. Each version should be worded differently, using synonyms or alternative sentence structures, but they should all retain the original meaning. These versions will be used to retrieve relevant documents. It is very important to provide each query version on a separate line, without enumerations, hyphens, or any additional formatting!\\nUser query: query\n-        77: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        69: invokevirtual #50                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+        72: invokestatic  #54                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        75: ldc           #57                 // String Generate 3 different versions of a provided user query. Each version should be worded differently, using synonyms or alternative sentence structures, but they should all retain the original meaning. These versions will be used to retrieve relevant documents. It is very important to provide each query version on a separate line, without enumerations, hyphens, or any additional formatting!\\nUser query: query\n+        77: invokevirtual #59                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         80: pop\n         81: return\n       LineNumberTable:\n         line 24: 0\n         line 26: 6\n         line 28: 11\n         line 31: 21\n@@ -245,54 +245,54 @@\n            11      71     3 model   Ldev/langchain4j/model/chat/mock/ChatModelMock;\n            21      61     4 transformer   Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n            31      51     5 queries   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            31      51     5 queries   Ljava/util/Collection<Ldev/langchain4j/rag/query/Query;>;\n     RuntimeVisibleAnnotations:\n-      0: #58()\n+      0: #140()\n         org.junit.jupiter.params.ParameterizedTest\n-      1: #59(#60=[s#61,s#62])\n+      1: #141(#142=[s#143,s#144])\n         org.junit.jupiter.params.provider.ValueSource(\n           strings=[\"query 1\\nquery 2\\nquery 3\",\"query 1\\n\\nquery 2\\n\\nquery 3\"]\n         )\n \n   void should_expand_query_with_custom_N();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=5, args_size=1\n          0: iconst_5\n          1: istore_1\n-         2: ldc           #18                 // String does not matter\n-         4: invokestatic  #4                  // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+         2: ldc           #64                 // String does not matter\n+         4: invokestatic  #15                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n          7: astore_2\n-         8: new           #5                  // class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n+         8: new           #21                 // class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n         11: dup\n         12: aload_2\n         13: iload_1\n-        14: invokespecial #19                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n+        14: invokespecial #66                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;I)V\n         17: astore_3\n-        18: ldc           #2                  // String query\n-        20: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        18: ldc           #7                  // String query\n+        20: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         23: astore        4\n         25: aload_3\n         26: aload         4\n-        28: invokeinterface #7,  2            // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        28: invokeinterface #26,  2           // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         33: pop\n         34: aload_2\n-        35: invokevirtual #14                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-        38: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        35: invokevirtual #50                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+        38: invokestatic  #54                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         41: iconst_1\n-        42: anewarray     #20                 // class java/lang/CharSequence\n+        42: anewarray     #69                 // class java/lang/CharSequence\n         45: dup\n         46: iconst_0\n-        47: ldc           #21                 // String Generate 5 different versions\n+        47: ldc           #71                 // String Generate 5 different versions\n         49: aastore\n-        50: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.contains:([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n+        50: invokevirtual #73                 // Method org/assertj/core/api/AbstractStringAssert.contains:([Ljava/lang/CharSequence;)Lorg/assertj/core/api/AbstractCharSequenceAssert;\n         53: pop\n         54: return\n       LineNumberTable:\n         line 54: 0\n         line 56: 2\n         line 58: 8\n         line 60: 18\n@@ -303,46 +303,46 @@\n         Start  Length  Slot  Name   Signature\n             0      55     0  this   Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest;\n             2      53     1     n   I\n             8      47     2 model   Ldev/langchain4j/model/chat/mock/ChatModelMock;\n            18      37     3 transformer   Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n            25      30     4 query   Ldev/langchain4j/rag/query/Query;\n     RuntimeVisibleAnnotations:\n-      0: #66()\n+      0: #147()\n         org.junit.jupiter.api.Test\n \n   void should_expand_query_with_custom_prompt_template();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=4, locals=5, args_size=1\n-         0: ldc           #23                 // String Generate 7 variations of {{query}}\n-         2: invokestatic  #24                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #77                 // String Generate 7 variations of {{query}}\n+         2: invokestatic  #79                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: ldc           #18                 // String does not matter\n-         8: invokestatic  #4                  // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+         6: ldc           #64                 // String does not matter\n+         8: invokestatic  #15                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         11: astore_2\n-        12: new           #5                  // class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n+        12: new           #21                 // class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n         15: dup\n         16: aload_2\n         17: aload_1\n-        18: invokespecial #25                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n+        18: invokespecial #84                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.\"<init>\":(Ldev/langchain4j/model/chat/ChatLanguageModel;Ldev/langchain4j/model/input/PromptTemplate;)V\n         21: astore_3\n-        22: ldc           #2                  // String query\n-        24: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        22: ldc           #7                  // String query\n+        24: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         27: astore        4\n         29: aload_3\n         30: aload         4\n-        32: invokeinterface #7,  2            // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        32: invokeinterface #26,  2           // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         37: pop\n         38: aload_2\n-        39: invokevirtual #14                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-        42: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        45: ldc           #26                 // String Generate 7 variations of query\n-        47: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        39: invokevirtual #50                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+        42: invokestatic  #54                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        45: ldc           #87                 // String Generate 7 variations of query\n+        47: invokevirtual #59                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         50: pop\n         51: return\n       LineNumberTable:\n         line 73: 0\n         line 75: 6\n         line 77: 12\n         line 79: 22\n@@ -353,50 +353,50 @@\n         Start  Length  Slot  Name   Signature\n             0      52     0  this   Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest;\n             6      46     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            12      40     2 model   Ldev/langchain4j/model/chat/mock/ChatModelMock;\n            22      30     3 transformer   Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n            29      23     4 query   Ldev/langchain4j/rag/query/Query;\n     RuntimeVisibleAnnotations:\n-      0: #66()\n+      0: #147()\n         org.junit.jupiter.api.Test\n \n   void should_expand_query_with_custom_prompt_template_and_n_builder();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=2, locals=5, args_size=1\n-         0: ldc           #27                 // String Generate {{n}} variations of {{query}}\n-         2: invokestatic  #24                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n+         0: ldc           #89                 // String Generate {{n}} variations of {{query}}\n+         2: invokestatic  #79                 // Method dev/langchain4j/model/input/PromptTemplate.from:(Ljava/lang/String;)Ldev/langchain4j/model/input/PromptTemplate;\n          5: astore_1\n-         6: ldc           #18                 // String does not matter\n-         8: invokestatic  #4                  // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n+         6: ldc           #64                 // String does not matter\n+         8: invokestatic  #15                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.withStaticResponse:(Ljava/lang/String;)Ldev/langchain4j/model/chat/mock/ChatModelMock;\n         11: astore_2\n-        12: invokestatic  #28                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+        12: invokestatic  #91                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer.builder:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n         15: aload_2\n-        16: invokevirtual #29                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+        16: invokevirtual #95                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.chatLanguageModel:(Ldev/langchain4j/model/chat/ChatLanguageModel;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n         19: aload_1\n-        20: invokevirtual #30                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+        20: invokevirtual #101                // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.promptTemplate:(Ldev/langchain4j/model/input/PromptTemplate;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n         23: bipush        7\n-        25: invokestatic  #31                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        28: invokevirtual #32                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.n:(Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n-        31: invokevirtual #33                 // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n+        25: invokestatic  #105                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        28: invokevirtual #111                // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.n:(Ljava/lang/Integer;)Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder;\n+        31: invokevirtual #115                // Method dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder.build:()Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformer;\n         34: astore_3\n-        35: ldc           #2                  // String query\n-        37: invokestatic  #3                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        35: ldc           #7                  // String query\n+        37: invokestatic  #9                  // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n         40: astore        4\n         42: aload_3\n         43: aload         4\n-        45: invokeinterface #7,  2            // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n+        45: invokeinterface #26,  2           // InterfaceMethod dev/langchain4j/rag/query/transformer/QueryTransformer.transform:(Ldev/langchain4j/rag/query/Query;)Ljava/util/Collection;\n         50: pop\n         51: aload_2\n-        52: invokevirtual #14                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n-        55: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        58: ldc           #26                 // String Generate 7 variations of query\n-        60: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        52: invokevirtual #50                 // Method dev/langchain4j/model/chat/mock/ChatModelMock.userMessageText:()Ljava/lang/String;\n+        55: invokestatic  #54                 // Method org/assertj/core/api/Assertions.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        58: ldc           #87                 // String Generate 7 variations of query\n+        60: invokevirtual #59                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         63: pop\n         64: return\n       LineNumberTable:\n         line 92: 0\n         line 94: 6\n         line 96: 12\n         line 97: 16\n@@ -411,13 +411,13 @@\n         Start  Length  Slot  Name   Signature\n             0      65     0  this   Ldev/langchain4j/rag/query/transformer/ExpandingQueryTransformerTest;\n             6      59     1 promptTemplate   Ldev/langchain4j/model/input/PromptTemplate;\n            12      53     2 model   Ldev/langchain4j/model/chat/mock/ChatModelMock;\n            35      30     3 transformer   Ldev/langchain4j/rag/query/transformer/QueryTransformer;\n            42      23     4 query   Ldev/langchain4j/rag/query/Query;\n     RuntimeVisibleAnnotations:\n-      0: #66()\n+      0: #147()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"ExpandingQueryTransformerTest.java\"\n InnerClasses:\n-  public static #142= #106 of #5;         // ExpandingQueryTransformerBuilder=class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder of class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n+  public static #154= #96 of #21;         // ExpandingQueryTransformerBuilder=class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer$ExpandingQueryTransformerBuilder of class dev/langchain4j/rag/query/transformer/ExpandingQueryTransformer\n"}]}, {"source1": "dev/langchain4j/retriever/RetrieverTest$TestRetriever.class", "source2": "dev/langchain4j/retriever/RetrieverTest$TestRetriever.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,53 +1,53 @@\n-  SHA-256 checksum f3be74db17a669412cec51874115000241b7e3ce340dc937a11ccb61782ee1d5\n+  SHA-256 checksum 76b2da523c3b6af14df5b0cb68d08b74a16e58e6618ac8a60b26887feef3885a\n   Compiled from \"RetrieverTest.java\"\n public class dev.langchain4j.retriever.RetrieverTest$TestRetriever extends java.lang.Object implements dev.langchain4j.retriever.Retriever<java.lang.String>\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/retriever/RetrieverTest$TestRetriever\n-  super_class: #5                         // java/lang/Object\n+  this_class: #15                         // dev/langchain4j/retriever/RetrieverTest$TestRetriever\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 3\n Constant pool:\n-   #1 = Methodref          #5.#25         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #26            // abc\n-   #3 = Methodref          #27.#28        // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #4 = Class              #30            // dev/langchain4j/retriever/RetrieverTest$TestRetriever\n-   #5 = Class              #31            // java/lang/Object\n-   #6 = Class              #32            // dev/langchain4j/retriever/Retriever\n-   #7 = Utf8               <init>\n-   #8 = Utf8               ()V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               TestRetriever\n-  #14 = Utf8               InnerClasses\n-  #15 = Utf8               Ldev/langchain4j/retriever/RetrieverTest$TestRetriever;\n-  #16 = Utf8               findRelevant\n-  #17 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n-  #18 = Utf8               text\n-  #19 = Utf8               Ljava/lang/String;\n-  #20 = Utf8               Signature\n-  #21 = Utf8               (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;\n-  #22 = Utf8               Ljava/lang/Object;Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n-  #23 = Utf8               SourceFile\n-  #24 = Utf8               RetrieverTest.java\n-  #25 = NameAndType        #7:#8          // \"<init>\":()V\n-  #26 = Utf8               abc\n-  #27 = Class              #33            // java/util/Collections\n-  #28 = NameAndType        #34:#35        // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #29 = Class              #36            // dev/langchain4j/retriever/RetrieverTest\n-  #30 = Utf8               dev/langchain4j/retriever/RetrieverTest$TestRetriever\n-  #31 = Utf8               java/lang/Object\n-  #32 = Utf8               dev/langchain4j/retriever/Retriever\n-  #33 = Utf8               java/util/Collections\n-  #34 = Utf8               singletonList\n-  #35 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #36 = Utf8               dev/langchain4j/retriever/RetrieverTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // abc\n+   #8 = Utf8               abc\n+   #9 = Methodref          #10.#11        // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #10 = Class              #12            // java/util/Collections\n+  #11 = NameAndType        #13:#14        // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #12 = Utf8               java/util/Collections\n+  #13 = Utf8               singletonList\n+  #14 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #15 = Class              #16            // dev/langchain4j/retriever/RetrieverTest$TestRetriever\n+  #16 = Utf8               dev/langchain4j/retriever/RetrieverTest$TestRetriever\n+  #17 = Class              #18            // dev/langchain4j/retriever/Retriever\n+  #18 = Utf8               dev/langchain4j/retriever/Retriever\n+  #19 = Utf8               Code\n+  #20 = Utf8               LineNumberTable\n+  #21 = Utf8               LocalVariableTable\n+  #22 = Utf8               this\n+  #23 = Utf8               Ldev/langchain4j/retriever/RetrieverTest$TestRetriever;\n+  #24 = Utf8               findRelevant\n+  #25 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n+  #26 = Utf8               text\n+  #27 = Utf8               Ljava/lang/String;\n+  #28 = Utf8               Signature\n+  #29 = Utf8               (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;\n+  #30 = Utf8               Ljava/lang/Object;Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n+  #31 = Utf8               SourceFile\n+  #32 = Utf8               RetrieverTest.java\n+  #33 = Utf8               InnerClasses\n+  #34 = Class              #35            // dev/langchain4j/retriever/RetrieverTest\n+  #35 = Utf8               dev/langchain4j/retriever/RetrieverTest\n+  #36 = Utf8               TestRetriever\n {\n   public dev.langchain4j.retriever.RetrieverTest$TestRetriever();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -60,22 +60,22 @@\n             0       5     0  this   Ldev/langchain4j/retriever/RetrieverTest$TestRetriever;\n \n   public java.util.List<java.lang.String> findRelevant(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=2, args_size=2\n-         0: ldc           #2                  // String abc\n-         2: invokestatic  #3                  // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         0: ldc           #7                  // String abc\n+         2: invokestatic  #9                  // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n          5: areturn\n       LineNumberTable:\n         line 18: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       6     0  this   Ldev/langchain4j/retriever/RetrieverTest$TestRetriever;\n             0       6     1  text   Ljava/lang/String;\n-    Signature: #21                          // (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;\n+    Signature: #29                          // (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;\n }\n-Signature: #22                          // Ljava/lang/Object;Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n+Signature: #30                          // Ljava/lang/Object;Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n SourceFile: \"RetrieverTest.java\"\n InnerClasses:\n-  public static #13= #4 of #29;           // TestRetriever=class dev/langchain4j/retriever/RetrieverTest$TestRetriever of class dev/langchain4j/retriever/RetrieverTest\n+  public static #36= #15 of #34;          // TestRetriever=class dev/langchain4j/retriever/RetrieverTest$TestRetriever of class dev/langchain4j/retriever/RetrieverTest\n"}]}, {"source1": "dev/langchain4j/retriever/RetrieverTest.class", "source2": "dev/langchain4j/retriever/RetrieverTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,174 +1,174 @@\n-  SHA-256 checksum ec7492a3b56d91fecc7af46914308a7dc751d6c71a2d78ce97f7905912c1c223\n+  SHA-256 checksum 1628fc6ceb50b3fb423c88766de8bf69f612e54c473216ce76cb3c37ab4a8ee0\n   Compiled from \"RetrieverTest.java\"\n class dev.langchain4j.retriever.RetrieverTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #27                         // dev/langchain4j/retriever/RetrieverTest\n-  super_class: #28                        // java/lang/Object\n+  this_class: #19                         // dev/langchain4j/retriever/RetrieverTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 5, attributes: 3\n Constant pool:\n-    #1 = Methodref          #28.#61       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #62           // dev/langchain4j/retriever/RetrieverTest$TestRetriever\n-    #3 = Methodref          #2.#61        // dev/langchain4j/retriever/RetrieverTest$TestRetriever.\"<init>\":()V\n-    #4 = String             #63           // test\n-    #5 = InterfaceMethodref #64.#65       // dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/String;)Ljava/util/List;\n-    #6 = Methodref          #27.#66       // dev/langchain4j/retriever/RetrieverTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-    #7 = Class              #67           // java/lang/String\n-    #8 = String             #68           // abc\n-    #9 = Methodref          #69.#70       // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #10 = Class              #71           // java/lang/RuntimeException\n-   #11 = Methodref          #27.#72       // dev/langchain4j/retriever/RetrieverTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #12 = InvokeDynamic      #0:#77        // #0:call:(Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #13 = Methodref          #78.#79       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #14 = String             #80           // Not implemented\n-   #15 = Methodref          #81.#82       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #16 = InvokeDynamic      #1:#85        // #1:findRelevant:()Ldev/langchain4j/retriever/Retriever;\n-   #17 = String             #86           // does not matter\n-   #18 = InterfaceMethodref #64.#87       // dev/langchain4j/retriever/Retriever.toContentRetriever:()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #19 = Methodref          #88.#89       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #20 = InterfaceMethodref #90.#91       // dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-   #21 = Class              #92           // dev/langchain4j/rag/content/Content\n-   #22 = Methodref          #21.#93       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #23 = Methodref          #69.#94       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #24 = Methodref          #95.#96       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #25 = Methodref          #97.#98       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #26 = InterfaceMethodref #64.#99       // dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n-   #27 = Class              #100          // dev/langchain4j/retriever/RetrieverTest\n-   #28 = Class              #101          // java/lang/Object\n-   #29 = Class              #102          // org/assertj/core/api/WithAssertions\n-   #30 = Utf8               TestRetriever\n-   #31 = Utf8               InnerClasses\n-   #32 = Utf8               <init>\n-   #33 = Utf8               ()V\n-   #34 = Utf8               Code\n-   #35 = Utf8               LineNumberTable\n-   #36 = Utf8               LocalVariableTable\n-   #37 = Utf8               this\n-   #38 = Utf8               Ldev/langchain4j/retriever/RetrieverTest;\n-   #39 = Utf8               testFindRelevant\n-   #40 = Utf8               retriever\n-   #41 = Utf8               Ldev/langchain4j/retriever/Retriever;\n-   #42 = Utf8               LocalVariableTypeTable\n-   #43 = Utf8               Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n-   #44 = Utf8               RuntimeVisibleAnnotations\n-   #45 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #46 = Utf8               should_convert_to_content_retriever\n-   #47 = Utf8               query\n-   #48 = Utf8               Ljava/lang/String;\n-   #49 = Utf8               contentRetriever\n-   #50 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #51 = Utf8               Ldev/langchain4j/retriever/Retriever<Ldev/langchain4j/data/segment/TextSegment;>;\n-   #52 = Utf8               lambda$should_convert_to_content_retriever$1\n-   #53 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n-   #54 = Utf8               text\n-   #55 = Utf8               lambda$testFindRelevant$0\n-   #56 = Utf8               (Ldev/langchain4j/retriever/Retriever;)V\n-   #57 = Utf8               Exceptions\n-   #58 = Class              #103          // java/lang/Throwable\n-   #59 = Utf8               SourceFile\n-   #60 = Utf8               RetrieverTest.java\n-   #61 = NameAndType        #32:#33       // \"<init>\":()V\n-   #62 = Utf8               dev/langchain4j/retriever/RetrieverTest$TestRetriever\n-   #63 = Utf8               test\n-   #64 = Class              #104          // dev/langchain4j/retriever/Retriever\n-   #65 = NameAndType        #105:#53      // findRelevant:(Ljava/lang/String;)Ljava/util/List;\n-   #66 = NameAndType        #106:#107     // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #67 = Utf8               java/lang/String\n-   #68 = Utf8               abc\n-   #69 = Class              #108          // org/assertj/core/api/ListAssert\n-   #70 = NameAndType        #109:#110     // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #71 = Utf8               java/lang/RuntimeException\n-   #72 = NameAndType        #111:#112     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #73 = Utf8               BootstrapMethods\n-   #74 = MethodHandle       6:#113        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #75 = MethodType         #33           //  ()V\n-   #76 = MethodHandle       6:#114        // REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n-   #77 = NameAndType        #115:#118     // call:(Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #78 = Class              #119          // org/assertj/core/api/ThrowableTypeAssert\n-   #79 = NameAndType        #120:#121     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #80 = Utf8               Not implemented\n-   #81 = Class              #122          // org/assertj/core/api/ThrowableAssertAlternative\n-   #82 = NameAndType        #123:#124     // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #83 = MethodType         #53           //  (Ljava/lang/String;)Ljava/util/List;\n-   #84 = MethodHandle       6:#125        // REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n-   #85 = NameAndType        #105:#126     // findRelevant:()Ldev/langchain4j/retriever/Retriever;\n-   #86 = Utf8               does not matter\n-   #87 = NameAndType        #127:#128     // toContentRetriever:()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-   #88 = Class              #129          // dev/langchain4j/rag/query/Query\n-   #89 = NameAndType        #130:#131     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-   #90 = Class              #132          // dev/langchain4j/rag/content/retriever/ContentRetriever\n-   #91 = NameAndType        #133:#134     // retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-   #92 = Utf8               dev/langchain4j/rag/content/Content\n-   #93 = NameAndType        #130:#135     // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-   #94 = NameAndType        #136:#110     // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #95 = Class              #137          // dev/langchain4j/data/segment/TextSegment\n-   #96 = NameAndType        #130:#138     // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #97 = Class              #139          // java/util/Collections\n-   #98 = NameAndType        #140:#141     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #99 = NameAndType        #105:#142     // findRelevant:(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n-  #100 = Utf8               dev/langchain4j/retriever/RetrieverTest\n-  #101 = Utf8               java/lang/Object\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/retriever/RetrieverTest$TestRetriever\n+    #8 = Utf8               dev/langchain4j/retriever/RetrieverTest$TestRetriever\n+    #9 = Methodref          #7.#3         // dev/langchain4j/retriever/RetrieverTest$TestRetriever.\"<init>\":()V\n+   #10 = String             #11           // test\n+   #11 = Utf8               test\n+   #12 = InterfaceMethodref #13.#14       // dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/String;)Ljava/util/List;\n+   #13 = Class              #15           // dev/langchain4j/retriever/Retriever\n+   #14 = NameAndType        #16:#17       // findRelevant:(Ljava/lang/String;)Ljava/util/List;\n+   #15 = Utf8               dev/langchain4j/retriever/Retriever\n+   #16 = Utf8               findRelevant\n+   #17 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n+   #18 = Methodref          #19.#20       // dev/langchain4j/retriever/RetrieverTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #19 = Class              #21           // dev/langchain4j/retriever/RetrieverTest\n+   #20 = NameAndType        #22:#23       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #21 = Utf8               dev/langchain4j/retriever/RetrieverTest\n+   #22 = Utf8               assertThat\n+   #23 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #24 = Class              #25           // java/lang/String\n+   #25 = Utf8               java/lang/String\n+   #26 = String             #27           // abc\n+   #27 = Utf8               abc\n+   #28 = Methodref          #29.#30       // org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #29 = Class              #31           // org/assertj/core/api/ListAssert\n+   #30 = NameAndType        #32:#33       // containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #31 = Utf8               org/assertj/core/api/ListAssert\n+   #32 = Utf8               containsOnly\n+   #33 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #34 = Class              #35           // java/lang/RuntimeException\n+   #35 = Utf8               java/lang/RuntimeException\n+   #36 = Methodref          #19.#37       // dev/langchain4j/retriever/RetrieverTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #37 = NameAndType        #38:#39       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #38 = Utf8               assertThatExceptionOfType\n+   #39 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #40 = InvokeDynamic      #0:#41        // #0:call:(Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #41 = NameAndType        #42:#43       // call:(Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #42 = Utf8               call\n+   #43 = Utf8               (Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #44 = Methodref          #45.#46       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #45 = Class              #47           // org/assertj/core/api/ThrowableTypeAssert\n+   #46 = NameAndType        #48:#49       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #47 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #48 = Utf8               isThrownBy\n+   #49 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #50 = String             #51           // Not implemented\n+   #51 = Utf8               Not implemented\n+   #52 = Methodref          #53.#54       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #53 = Class              #55           // org/assertj/core/api/ThrowableAssertAlternative\n+   #54 = NameAndType        #56:#57       // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #55 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #56 = Utf8               withMessage\n+   #57 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #58 = InvokeDynamic      #1:#59        // #1:findRelevant:()Ldev/langchain4j/retriever/Retriever;\n+   #59 = NameAndType        #16:#60       // findRelevant:()Ldev/langchain4j/retriever/Retriever;\n+   #60 = Utf8               ()Ldev/langchain4j/retriever/Retriever;\n+   #61 = String             #62           // does not matter\n+   #62 = Utf8               does not matter\n+   #63 = InterfaceMethodref #13.#64       // dev/langchain4j/retriever/Retriever.toContentRetriever:()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #64 = NameAndType        #65:#66       // toContentRetriever:()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #65 = Utf8               toContentRetriever\n+   #66 = Utf8               ()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+   #67 = Methodref          #68.#69       // dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #68 = Class              #70           // dev/langchain4j/rag/query/Query\n+   #69 = NameAndType        #71:#72       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #70 = Utf8               dev/langchain4j/rag/query/Query\n+   #71 = Utf8               from\n+   #72 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+   #73 = InterfaceMethodref #74.#75       // dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+   #74 = Class              #76           // dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #75 = NameAndType        #77:#78       // retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+   #76 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n+   #77 = Utf8               retrieve\n+   #78 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+   #79 = Class              #80           // dev/langchain4j/rag/content/Content\n+   #80 = Utf8               dev/langchain4j/rag/content/Content\n+   #81 = Methodref          #79.#82       // dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #82 = NameAndType        #71:#83       // from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #83 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+   #84 = Methodref          #29.#85       // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #85 = NameAndType        #86:#33       // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #86 = Utf8               containsExactly\n+   #87 = Methodref          #88.#89       // dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #88 = Class              #90           // dev/langchain4j/data/segment/TextSegment\n+   #89 = NameAndType        #71:#91       // from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #90 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #91 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #92 = Methodref          #93.#94       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #93 = Class              #95           // java/util/Collections\n+   #94 = NameAndType        #96:#97       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #95 = Utf8               java/util/Collections\n+   #96 = Utf8               singletonList\n+   #97 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #98 = InterfaceMethodref #13.#99       // dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n+   #99 = NameAndType        #16:#100      // findRelevant:(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n+  #100 = Utf8               (Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n+  #101 = Class              #102          // org/assertj/core/api/WithAssertions\n   #102 = Utf8               org/assertj/core/api/WithAssertions\n-  #103 = Utf8               java/lang/Throwable\n-  #104 = Utf8               dev/langchain4j/retriever/Retriever\n-  #105 = Utf8               findRelevant\n-  #106 = Utf8               assertThat\n-  #107 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #108 = Utf8               org/assertj/core/api/ListAssert\n-  #109 = Utf8               containsOnly\n-  #110 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #111 = Utf8               assertThatExceptionOfType\n-  #112 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #113 = Methodref          #143.#144     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #114 = Methodref          #27.#145      // dev/langchain4j/retriever/RetrieverTest.lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n-  #115 = Utf8               call\n-  #116 = Class              #147          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #117 = Utf8               ThrowingCallable\n-  #118 = Utf8               (Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #119 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #120 = Utf8               isThrownBy\n-  #121 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #122 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #123 = Utf8               withMessage\n-  #124 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #125 = Methodref          #27.#148      // dev/langchain4j/retriever/RetrieverTest.lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n-  #126 = Utf8               ()Ldev/langchain4j/retriever/Retriever;\n-  #127 = Utf8               toContentRetriever\n-  #128 = Utf8               ()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n-  #129 = Utf8               dev/langchain4j/rag/query/Query\n-  #130 = Utf8               from\n-  #131 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-  #132 = Utf8               dev/langchain4j/rag/content/retriever/ContentRetriever\n-  #133 = Utf8               retrieve\n-  #134 = Utf8               (Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-  #135 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n-  #136 = Utf8               containsExactly\n-  #137 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #138 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #139 = Utf8               java/util/Collections\n-  #140 = Utf8               singletonList\n-  #141 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #142 = Utf8               (Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n-  #143 = Class              #149          // java/lang/invoke/LambdaMetafactory\n-  #144 = NameAndType        #150:#153     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #145 = NameAndType        #55:#56       // lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n-  #146 = Class              #154          // org/assertj/core/api/ThrowableAssert\n-  #147 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #148 = NameAndType        #52:#53       // lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n-  #149 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #150 = Utf8               metafactory\n-  #151 = Class              #156          // java/lang/invoke/MethodHandles$Lookup\n-  #152 = Utf8               Lookup\n-  #153 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #154 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #155 = Class              #157          // java/lang/invoke/MethodHandles\n-  #156 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #157 = Utf8               java/lang/invoke/MethodHandles\n+  #103 = Utf8               Code\n+  #104 = Utf8               LineNumberTable\n+  #105 = Utf8               LocalVariableTable\n+  #106 = Utf8               this\n+  #107 = Utf8               Ldev/langchain4j/retriever/RetrieverTest;\n+  #108 = Utf8               testFindRelevant\n+  #109 = Utf8               retriever\n+  #110 = Utf8               Ldev/langchain4j/retriever/Retriever;\n+  #111 = Utf8               LocalVariableTypeTable\n+  #112 = Utf8               Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n+  #113 = Utf8               RuntimeVisibleAnnotations\n+  #114 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #115 = Utf8               should_convert_to_content_retriever\n+  #116 = Utf8               query\n+  #117 = Utf8               Ljava/lang/String;\n+  #118 = Utf8               contentRetriever\n+  #119 = Utf8               Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+  #120 = Utf8               Ldev/langchain4j/retriever/Retriever<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #121 = Utf8               lambda$should_convert_to_content_retriever$1\n+  #122 = Utf8               text\n+  #123 = Utf8               lambda$testFindRelevant$0\n+  #124 = Utf8               (Ldev/langchain4j/retriever/Retriever;)V\n+  #125 = Utf8               Exceptions\n+  #126 = Class              #127          // java/lang/Throwable\n+  #127 = Utf8               java/lang/Throwable\n+  #128 = Utf8               SourceFile\n+  #129 = Utf8               RetrieverTest.java\n+  #130 = Utf8               BootstrapMethods\n+  #131 = MethodHandle       6:#132        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #132 = Methodref          #133.#134     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #133 = Class              #135          // java/lang/invoke/LambdaMetafactory\n+  #134 = NameAndType        #136:#137     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #135 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #136 = Utf8               metafactory\n+  #137 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #138 = MethodType         #6            //  ()V\n+  #139 = MethodHandle       6:#140        // REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n+  #140 = Methodref          #19.#141      // dev/langchain4j/retriever/RetrieverTest.lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n+  #141 = NameAndType        #123:#124     // lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n+  #142 = MethodType         #17           //  (Ljava/lang/String;)Ljava/util/List;\n+  #143 = MethodHandle       6:#144        // REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n+  #144 = Methodref          #19.#145      // dev/langchain4j/retriever/RetrieverTest.lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n+  #145 = NameAndType        #121:#17      // lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n+  #146 = Utf8               InnerClasses\n+  #147 = Utf8               TestRetriever\n+  #148 = Class              #149          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #149 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #150 = Class              #151          // org/assertj/core/api/ThrowableAssert\n+  #151 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #152 = Utf8               ThrowingCallable\n+  #153 = Class              #154          // java/lang/invoke/MethodHandles$Lookup\n+  #154 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #155 = Class              #156          // java/lang/invoke/MethodHandles\n+  #156 = Utf8               java/lang/invoke/MethodHandles\n+  #157 = Utf8               Lookup\n {\n   dev.langchain4j.retriever.RetrieverTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -181,39 +181,39 @@\n             0       5     0  this   Ldev/langchain4j/retriever/RetrieverTest;\n \n   public void testFindRelevant();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/retriever/RetrieverTest$TestRetriever\n+         0: new           #7                  // class dev/langchain4j/retriever/RetrieverTest$TestRetriever\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/retriever/RetrieverTest$TestRetriever.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/retriever/RetrieverTest$TestRetriever.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String test\n-        12: invokeinterface #5,  2            // InterfaceMethod dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/String;)Ljava/util/List;\n-        17: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        10: ldc           #10                 // String test\n+        12: invokeinterface #12,  2           // InterfaceMethod dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/String;)Ljava/util/List;\n+        17: invokevirtual #18                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         20: iconst_1\n-        21: anewarray     #7                  // class java/lang/String\n+        21: anewarray     #24                 // class java/lang/String\n         24: dup\n         25: iconst_0\n-        26: ldc           #8                  // String abc\n+        26: ldc           #26                 // String abc\n         28: aastore\n-        29: invokevirtual #9                  // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        29: invokevirtual #28                 // Method org/assertj/core/api/ListAssert.containsOnly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         32: pop\n         33: aload_0\n-        34: ldc           #10                 // class java/lang/RuntimeException\n-        36: invokevirtual #11                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        34: ldc           #34                 // class java/lang/RuntimeException\n+        36: invokevirtual #36                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         39: aload_1\n-        40: invokedynamic #12,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        45: invokevirtual #13                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        48: ldc           #14                 // String Not implemented\n-        50: invokevirtual #15                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        40: invokedynamic #40,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/retriever/Retriever;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        45: invokevirtual #44                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        48: ldc           #50                 // String Not implemented\n+        50: invokevirtual #52                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         53: pop\n         54: return\n       LineNumberTable:\n         line 24: 0\n         line 25: 8\n         line 26: 29\n         line 28: 33\n@@ -224,43 +224,43 @@\n         Start  Length  Slot  Name   Signature\n             0      55     0  this   Ldev/langchain4j/retriever/RetrieverTest;\n             8      47     1 retriever   Ldev/langchain4j/retriever/Retriever;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      47     1 retriever   Ldev/langchain4j/retriever/Retriever<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #45()\n+      0: #114()\n         org.junit.jupiter.api.Test\n \n   public void should_convert_to_content_retriever();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=4, args_size=1\n-         0: invokedynamic #16,  0             // InvokeDynamic #1:findRelevant:()Ldev/langchain4j/retriever/Retriever;\n+         0: invokedynamic #58,  0             // InvokeDynamic #1:findRelevant:()Ldev/langchain4j/retriever/Retriever;\n          5: astore_1\n-         6: ldc           #17                 // String does not matter\n+         6: ldc           #61                 // String does not matter\n          8: astore_2\n          9: aload_1\n-        10: invokeinterface #18,  1           // InterfaceMethod dev/langchain4j/retriever/Retriever.toContentRetriever:()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n+        10: invokeinterface #63,  1           // InterfaceMethod dev/langchain4j/retriever/Retriever.toContentRetriever:()Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n         15: astore_3\n         16: aload_0\n         17: aload_3\n         18: aload_2\n-        19: invokestatic  #19                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n-        22: invokeinterface #20,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n-        27: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        19: invokestatic  #67                 // Method dev/langchain4j/rag/query/Query.from:(Ljava/lang/String;)Ldev/langchain4j/rag/query/Query;\n+        22: invokeinterface #73,  2           // InterfaceMethod dev/langchain4j/rag/content/retriever/ContentRetriever.retrieve:(Ldev/langchain4j/rag/query/Query;)Ljava/util/List;\n+        27: invokevirtual #18                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         30: iconst_1\n-        31: anewarray     #21                 // class dev/langchain4j/rag/content/Content\n+        31: anewarray     #79                 // class dev/langchain4j/rag/content/Content\n         34: dup\n         35: iconst_0\n         36: aload_2\n-        37: invokestatic  #22                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n+        37: invokestatic  #81                 // Method dev/langchain4j/rag/content/Content.from:(Ljava/lang/String;)Ldev/langchain4j/rag/content/Content;\n         40: aastore\n-        41: invokevirtual #23                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        41: invokevirtual #84                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         44: pop\n         45: return\n       LineNumberTable:\n         line 37: 0\n         line 39: 6\n         line 42: 9\n         line 45: 16\n@@ -271,60 +271,60 @@\n             6      40     1 retriever   Ldev/langchain4j/retriever/Retriever;\n             9      37     2 query   Ljava/lang/String;\n            16      30     3 contentRetriever   Ldev/langchain4j/rag/content/retriever/ContentRetriever;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             6      40     1 retriever   Ldev/langchain4j/retriever/Retriever<Ldev/langchain4j/data/segment/TextSegment;>;\n     RuntimeVisibleAnnotations:\n-      0: #45()\n+      0: #114()\n         org.junit.jupiter.api.Test\n \n   private static java.util.List lambda$should_convert_to_content_retriever$1(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ljava/util/List;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokestatic  #24                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-         4: invokestatic  #25                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         1: invokestatic  #87                 // Method dev/langchain4j/data/segment/TextSegment.from:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+         4: invokestatic  #92                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n          7: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  text   Ljava/lang/String;\n \n   private static void lambda$testFindRelevant$0(dev.langchain4j.retriever.Retriever) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/retriever/Retriever;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #4                  // String test\n-         3: ldc           #4                  // String test\n-         5: invokeinterface #26,  3           // InterfaceMethod dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n+         1: ldc           #10                 // String test\n+         3: ldc           #10                 // String test\n+         5: invokeinterface #98,  3           // InterfaceMethod dev/langchain4j/retriever/Retriever.findRelevant:(Ljava/lang/Object;Ljava/lang/String;)Ljava/util/List;\n         10: pop\n         11: return\n       LineNumberTable:\n         line 29: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0 retriever   Ldev/langchain4j/retriever/Retriever;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"RetrieverTest.java\"\n-InnerClasses:\n-  public static #30= #2 of #27;           // TestRetriever=class dev/langchain4j/retriever/RetrieverTest$TestRetriever of class dev/langchain4j/retriever/RetrieverTest\n-  public static #117= #116 of #146;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #152= #151 of #155; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #74 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #131 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #75 ()V\n-      #76 REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n-      #75 ()V\n-  1: #74 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #138 ()V\n+      #139 REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$testFindRelevant$0:(Ldev/langchain4j/retriever/Retriever;)V\n+      #138 ()V\n+  1: #131 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #83 (Ljava/lang/String;)Ljava/util/List;\n-      #84 REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n-      #83 (Ljava/lang/String;)Ljava/util/List;\n+      #142 (Ljava/lang/String;)Ljava/util/List;\n+      #143 REF_invokeStatic dev/langchain4j/retriever/RetrieverTest.lambda$should_convert_to_content_retriever$1:(Ljava/lang/String;)Ljava/util/List;\n+      #142 (Ljava/lang/String;)Ljava/util/List;\n+InnerClasses:\n+  public static #147= #7 of #19;          // TestRetriever=class dev/langchain4j/retriever/RetrieverTest$TestRetriever of class dev/langchain4j/retriever/RetrieverTest\n+  public static #152= #148 of #150;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #157= #153 of #155; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/spi/ExampleService.class", "source2": "dev/langchain4j/spi/ExampleService.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,24 +1,24 @@\n-  SHA-256 checksum 3ad59d134ad825776bb9fed7bfac4a81d065cf2f7ec6d6dbc88d13e4532c8617\n+  SHA-256 checksum 310f2d855efb70cd4f351b4407cb40f81d04dfd9f61bf4639ac8a52999ae545c\n   Compiled from \"ExampleService.java\"\n public interface dev.langchain4j.spi.ExampleService\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/spi/ExampleService\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 1, attributes: 1\n Constant pool:\n-  #1 = Class              #7              // dev/langchain4j/spi/ExampleService\n-  #2 = Class              #8              // java/lang/Object\n-  #3 = Utf8               getGreeting\n-  #4 = Utf8               ()Ljava/lang/String;\n-  #5 = Utf8               SourceFile\n-  #6 = Utf8               ExampleService.java\n-  #7 = Utf8               dev/langchain4j/spi/ExampleService\n-  #8 = Utf8               java/lang/Object\n+  #1 = Class              #2              // dev/langchain4j/spi/ExampleService\n+  #2 = Utf8               dev/langchain4j/spi/ExampleService\n+  #3 = Class              #4              // java/lang/Object\n+  #4 = Utf8               java/lang/Object\n+  #5 = Utf8               getGreeting\n+  #6 = Utf8               ()Ljava/lang/String;\n+  #7 = Utf8               SourceFile\n+  #8 = Utf8               ExampleService.java\n {\n   public abstract java.lang.String getGreeting();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT\n }\n SourceFile: \"ExampleService.java\"\n"}]}, {"source1": "dev/langchain4j/spi/ExampleServiceGoodbye.class", "source2": "dev/langchain4j/spi/ExampleServiceGoodbye.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,38 +1,38 @@\n-  SHA-256 checksum 91964900f930088c65d1c71eb35a015ba5aec87e4561b85f42d59aef11c59c37\n+  SHA-256 checksum eb5471e24911f27428787f6d3979ddeae60200d8d41e7046ac1893aecdb45a61\n   Compiled from \"ExampleServiceGoodbye.java\"\n public class dev.langchain4j.spi.ExampleServiceGoodbye implements dev.langchain4j.spi.ExampleService\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/spi/ExampleServiceGoodbye\n-  super_class: #4                         // java/lang/Object\n+  this_class: #9                          // dev/langchain4j/spi/ExampleServiceGoodbye\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 1\n Constant pool:\n-   #1 = Methodref          #4.#17         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #18            // Goodbye\n-   #3 = Class              #19            // dev/langchain4j/spi/ExampleServiceGoodbye\n-   #4 = Class              #20            // java/lang/Object\n-   #5 = Class              #21            // dev/langchain4j/spi/ExampleService\n-   #6 = Utf8               <init>\n-   #7 = Utf8               ()V\n-   #8 = Utf8               Code\n-   #9 = Utf8               LineNumberTable\n-  #10 = Utf8               LocalVariableTable\n-  #11 = Utf8               this\n-  #12 = Utf8               Ldev/langchain4j/spi/ExampleServiceGoodbye;\n-  #13 = Utf8               getGreeting\n-  #14 = Utf8               ()Ljava/lang/String;\n-  #15 = Utf8               SourceFile\n-  #16 = Utf8               ExampleServiceGoodbye.java\n-  #17 = NameAndType        #6:#7          // \"<init>\":()V\n-  #18 = Utf8               Goodbye\n-  #19 = Utf8               dev/langchain4j/spi/ExampleServiceGoodbye\n-  #20 = Utf8               java/lang/Object\n-  #21 = Utf8               dev/langchain4j/spi/ExampleService\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // Goodbye\n+   #8 = Utf8               Goodbye\n+   #9 = Class              #10            // dev/langchain4j/spi/ExampleServiceGoodbye\n+  #10 = Utf8               dev/langchain4j/spi/ExampleServiceGoodbye\n+  #11 = Class              #12            // dev/langchain4j/spi/ExampleService\n+  #12 = Utf8               dev/langchain4j/spi/ExampleService\n+  #13 = Utf8               Code\n+  #14 = Utf8               LineNumberTable\n+  #15 = Utf8               LocalVariableTable\n+  #16 = Utf8               this\n+  #17 = Utf8               Ldev/langchain4j/spi/ExampleServiceGoodbye;\n+  #18 = Utf8               getGreeting\n+  #19 = Utf8               ()Ljava/lang/String;\n+  #20 = Utf8               SourceFile\n+  #21 = Utf8               ExampleServiceGoodbye.java\n {\n   public dev.langchain4j.spi.ExampleServiceGoodbye();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -45,15 +45,15 @@\n             0       5     0  this   Ldev/langchain4j/spi/ExampleServiceGoodbye;\n \n   public java.lang.String getGreeting();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n-         0: ldc           #2                  // String Goodbye\n+         0: ldc           #7                  // String Goodbye\n          2: areturn\n       LineNumberTable:\n         line 6: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       3     0  this   Ldev/langchain4j/spi/ExampleServiceGoodbye;\n }\n"}]}, {"source1": "dev/langchain4j/spi/ExampleServiceHello.class", "source2": "dev/langchain4j/spi/ExampleServiceHello.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,38 +1,38 @@\n-  SHA-256 checksum 5ce3766fdc9e1dbeea2f14be82301ae043856bd14fcaec72b225ce1622def833\n+  SHA-256 checksum 9e110855382c4105ae439ba4f447582a3b9e037f3b6499eacab985724401b5ce\n   Compiled from \"ExampleServiceHello.java\"\n public class dev.langchain4j.spi.ExampleServiceHello implements dev.langchain4j.spi.ExampleService\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/spi/ExampleServiceHello\n-  super_class: #4                         // java/lang/Object\n+  this_class: #9                          // dev/langchain4j/spi/ExampleServiceHello\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 1\n Constant pool:\n-   #1 = Methodref          #4.#17         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #18            // Hello\n-   #3 = Class              #19            // dev/langchain4j/spi/ExampleServiceHello\n-   #4 = Class              #20            // java/lang/Object\n-   #5 = Class              #21            // dev/langchain4j/spi/ExampleService\n-   #6 = Utf8               <init>\n-   #7 = Utf8               ()V\n-   #8 = Utf8               Code\n-   #9 = Utf8               LineNumberTable\n-  #10 = Utf8               LocalVariableTable\n-  #11 = Utf8               this\n-  #12 = Utf8               Ldev/langchain4j/spi/ExampleServiceHello;\n-  #13 = Utf8               getGreeting\n-  #14 = Utf8               ()Ljava/lang/String;\n-  #15 = Utf8               SourceFile\n-  #16 = Utf8               ExampleServiceHello.java\n-  #17 = NameAndType        #6:#7          // \"<init>\":()V\n-  #18 = Utf8               Hello\n-  #19 = Utf8               dev/langchain4j/spi/ExampleServiceHello\n-  #20 = Utf8               java/lang/Object\n-  #21 = Utf8               dev/langchain4j/spi/ExampleService\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // Hello\n+   #8 = Utf8               Hello\n+   #9 = Class              #10            // dev/langchain4j/spi/ExampleServiceHello\n+  #10 = Utf8               dev/langchain4j/spi/ExampleServiceHello\n+  #11 = Class              #12            // dev/langchain4j/spi/ExampleService\n+  #12 = Utf8               dev/langchain4j/spi/ExampleService\n+  #13 = Utf8               Code\n+  #14 = Utf8               LineNumberTable\n+  #15 = Utf8               LocalVariableTable\n+  #16 = Utf8               this\n+  #17 = Utf8               Ldev/langchain4j/spi/ExampleServiceHello;\n+  #18 = Utf8               getGreeting\n+  #19 = Utf8               ()Ljava/lang/String;\n+  #20 = Utf8               SourceFile\n+  #21 = Utf8               ExampleServiceHello.java\n {\n   public dev.langchain4j.spi.ExampleServiceHello();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -45,15 +45,15 @@\n             0       5     0  this   Ldev/langchain4j/spi/ExampleServiceHello;\n \n   public java.lang.String getGreeting();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n-         0: ldc           #2                  // String Hello\n+         0: ldc           #7                  // String Hello\n          2: areturn\n       LineNumberTable:\n         line 6: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       3     0  this   Ldev/langchain4j/spi/ExampleServiceHello;\n }\n"}]}, {"source1": "dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.class", "source2": "dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,43 +1,43 @@\n-  SHA-256 checksum a2dae2d97b9505f9763371f8b9c808619c784a5c993cf8422b4efede1db9c9fa\n+  SHA-256 checksum 28dff3f7a8e6f462db8afd03a4d074b1ca4e69fee8272afc5f018362e24b05dd\n   Compiled from \"ServiceHelperTest.java\"\n public class dev.langchain4j.spi.ServiceHelperTest$ExampleServiceWithNoProviders implements dev.langchain4j.spi.ServiceHelperTest$ServiceWithNoProviders\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #3                          // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n-  super_class: #4                         // java/lang/Object\n+  this_class: #9                          // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #4.#19         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #20            // Hello\n-   #3 = Class              #22            // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n-   #4 = Class              #23            // java/lang/Object\n-   #5 = Class              #24            // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-   #6 = Utf8               <init>\n-   #7 = Utf8               ()V\n-   #8 = Utf8               Code\n-   #9 = Utf8               LineNumberTable\n-  #10 = Utf8               LocalVariableTable\n-  #11 = Utf8               this\n-  #12 = Utf8               ExampleServiceWithNoProviders\n-  #13 = Utf8               InnerClasses\n-  #14 = Utf8               Ldev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders;\n-  #15 = Utf8               build\n-  #16 = Utf8               ()Ljava/lang/String;\n-  #17 = Utf8               SourceFile\n-  #18 = Utf8               ServiceHelperTest.java\n-  #19 = NameAndType        #6:#7          // \"<init>\":()V\n-  #20 = Utf8               Hello\n-  #21 = Class              #26            // dev/langchain4j/spi/ServiceHelperTest\n-  #22 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n-  #23 = Utf8               java/lang/Object\n-  #24 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-  #25 = Utf8               ServiceWithNoProviders\n-  #26 = Utf8               dev/langchain4j/spi/ServiceHelperTest\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // Hello\n+   #8 = Utf8               Hello\n+   #9 = Class              #10            // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n+  #10 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n+  #11 = Class              #12            // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+  #12 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+  #13 = Utf8               Code\n+  #14 = Utf8               LineNumberTable\n+  #15 = Utf8               LocalVariableTable\n+  #16 = Utf8               this\n+  #17 = Utf8               Ldev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders;\n+  #18 = Utf8               build\n+  #19 = Utf8               ()Ljava/lang/String;\n+  #20 = Utf8               SourceFile\n+  #21 = Utf8               ServiceHelperTest.java\n+  #22 = Utf8               InnerClasses\n+  #23 = Class              #24            // dev/langchain4j/spi/ServiceHelperTest\n+  #24 = Utf8               dev/langchain4j/spi/ServiceHelperTest\n+  #25 = Utf8               ExampleServiceWithNoProviders\n+  #26 = Utf8               ServiceWithNoProviders\n {\n   public dev.langchain4j.spi.ServiceHelperTest$ExampleServiceWithNoProviders();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -50,19 +50,19 @@\n             0       5     0  this   Ldev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders;\n \n   public java.lang.String build();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n-         0: ldc           #2                  // String Hello\n+         0: ldc           #7                  // String Hello\n          2: areturn\n       LineNumberTable:\n         line 21: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       3     0  this   Ldev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders;\n }\n SourceFile: \"ServiceHelperTest.java\"\n InnerClasses:\n-  public static #12= #3 of #21;           // ExampleServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n-  static #25= #5 of #21;                  // ServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n+  public static #25= #9 of #23;           // ExampleServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n+  static #26= #11 of #23;                 // ServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n"}]}, {"source1": "dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.class", "source2": "dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,30 +1,30 @@\n-  SHA-256 checksum 0f512976993aaace9cfd7cb396c8ab4a4ea7efd4a77771ec2aa450d39000b934\n+  SHA-256 checksum 8ffef77637b8fbb9f182c9fa9063cf919277c6d0a83a2621c7a547c4c7597b36\n   Compiled from \"ServiceHelperTest.java\"\n interface dev.langchain4j.spi.ServiceHelperTest$ServiceWithNoProviders\n   minor version: 0\n   major version: 52\n   flags: (0x0600) ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 1, attributes: 2\n Constant pool:\n-   #1 = Class              #8             // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-   #2 = Class              #11            // java/lang/Object\n-   #3 = Utf8               build\n-   #4 = Utf8               ()Ljava/lang/String;\n-   #5 = Utf8               SourceFile\n-   #6 = Utf8               ServiceHelperTest.java\n-   #7 = Class              #12            // dev/langchain4j/spi/ServiceHelperTest\n-   #8 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-   #9 = Utf8               ServiceWithNoProviders\n-  #10 = Utf8               InnerClasses\n-  #11 = Utf8               java/lang/Object\n-  #12 = Utf8               dev/langchain4j/spi/ServiceHelperTest\n+   #1 = Class              #2             // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+   #2 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               build\n+   #6 = Utf8               ()Ljava/lang/String;\n+   #7 = Utf8               SourceFile\n+   #8 = Utf8               ServiceHelperTest.java\n+   #9 = Utf8               InnerClasses\n+  #10 = Class              #11            // dev/langchain4j/spi/ServiceHelperTest\n+  #11 = Utf8               dev/langchain4j/spi/ServiceHelperTest\n+  #12 = Utf8               ServiceWithNoProviders\n {\n   public abstract java.lang.String build();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT\n }\n SourceFile: \"ServiceHelperTest.java\"\n InnerClasses:\n-  static #9= #1 of #7;                    // ServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n+  static #12= #1 of #10;                  // ServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n"}]}, {"source1": "dev/langchain4j/spi/ServiceHelperTest.class", "source2": "dev/langchain4j/spi/ServiceHelperTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,231 +1,231 @@\n-  SHA-256 checksum 8da720c62cd5f0c95b55d714e1768f914d6da10650f52a75b0e64699ab09ea5c\n+  SHA-256 checksum d8a765d35fcd272d6fcbdd9f9eb62123fcfa8b9cd3137a69286f788fe50ddd5d\n   Compiled from \"ServiceHelperTest.java\"\n class dev.langchain4j.spi.ServiceHelperTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #33                         // dev/langchain4j/spi/ServiceHelperTest\n-  super_class: #21                        // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/spi/ServiceHelperTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 11, attributes: 3\n Constant pool:\n-    #1 = Methodref          #21.#82       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #33.#83       // dev/langchain4j/spi/ServiceHelperTest.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-    #3 = InvokeDynamic      #0:#89        // #0:extractThrows:()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n-    #4 = Methodref          #90.#91       // org/assertj/core/api/AbstractCollectionAssert.extracting:(Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n-    #5 = Class              #92           // java/lang/String\n-    #6 = String             #93           // Hello\n-    #7 = String             #94           // Goodbye\n-    #8 = Methodref          #95.#96       // org/assertj/core/api/AbstractListAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-    #9 = Class              #97           // dev/langchain4j/spi/ExampleService\n-   #10 = InvokeDynamic      #1:#101       // #1:get:()Ljava/util/function/Supplier;\n-   #11 = Methodref          #102.#103     // dev/langchain4j/spi/ServiceHelper.loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #12 = Methodref          #33.#104      // dev/langchain4j/spi/ServiceHelperTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #13 = Class              #105          // java/lang/Class\n-   #14 = Class              #106          // dev/langchain4j/spi/ExampleServiceHello\n-   #15 = Class              #107          // dev/langchain4j/spi/ExampleServiceGoodbye\n-   #16 = Methodref          #108.#109     // org/assertj/core/api/ObjectAssert.isInstanceOfAny:([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-   #17 = InvokeDynamic      #2:#110       // #2:apply:()Ljava/util/function/Function;\n-   #18 = InvokeDynamic      #3:#101       // #3:get:()Ljava/util/function/Supplier;\n-   #19 = Methodref          #102.#113     // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #20 = Methodref          #33.#114      // dev/langchain4j/spi/ServiceHelperTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #21 = Class              #115          // java/lang/Object\n-   #22 = Methodref          #116.#117     // org/assertj/core/api/AbstractStringAssert.isIn:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #23 = Class              #118          // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-   #24 = InvokeDynamic      #4:#101       // #4:get:()Ljava/util/function/Supplier;\n-   #25 = Class              #121          // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n-   #26 = Methodref          #108.#122     // org/assertj/core/api/ObjectAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-   #27 = InvokeDynamic      #5:#110       // #5:apply:()Ljava/util/function/Function;\n-   #28 = InvokeDynamic      #6:#101       // #6:get:()Ljava/util/function/Supplier;\n-   #29 = String             #126          // Holla\n-   #30 = Methodref          #116.#127     // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #31 = Methodref          #102.#128     // dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n-   #32 = Methodref          #33.#129      // dev/langchain4j/spi/ServiceHelperTest.assertServices:(Ljava/util/Collection;)V\n-   #33 = Class              #130          // dev/langchain4j/spi/ServiceHelperTest\n-   #34 = Methodref          #13.#131      // java/lang/Class.getClassLoader:()Ljava/lang/ClassLoader;\n-   #35 = Methodref          #102.#132     // dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n-   #36 = Methodref          #90.#133      // org/assertj/core/api/AbstractCollectionAssert.isEmpty:()V\n-   #37 = Class              #134          // dev/langchain4j/spi/SupplierService\n-   #38 = InvokeDynamic      #7:#101       // #7:get:()Ljava/util/function/Supplier;\n-   #39 = Methodref          #102.#136     // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #40 = String             #137          // Hello world!\n-   #41 = Class              #138          // dev/langchain4j/spi/SupplierServiceNotFound\n-   #42 = InvokeDynamic      #8:#101       // #8:get:()Ljava/util/function/Supplier;\n-   #43 = String             #140          // Not found\n-   #44 = InvokeDynamic      #9:#142       // #9:getGreeting:()Ldev/langchain4j/spi/ExampleService;\n-   #45 = Class              #143          // org/assertj/core/api/WithAssertions\n-   #46 = Utf8               ExampleServiceWithNoProviders\n-   #47 = Utf8               InnerClasses\n-   #48 = Utf8               ServiceWithNoProviders\n-   #49 = Utf8               <init>\n-   #50 = Utf8               ()V\n-   #51 = Utf8               Code\n-   #52 = Utf8               LineNumberTable\n-   #53 = Utf8               LocalVariableTable\n-   #54 = Utf8               this\n-   #55 = Utf8               Ldev/langchain4j/spi/ServiceHelperTest;\n-   #56 = Utf8               assertServices\n-   #57 = Utf8               (Ljava/util/Collection;)V\n-   #58 = Utf8               services\n-   #59 = Utf8               Ljava/util/Collection;\n-   #60 = Utf8               LocalVariableTypeTable\n-   #61 = Utf8               Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;\n-   #62 = Utf8               Signature\n-   #63 = Utf8               (Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;)V\n-   #64 = Utf8               test_loadService\n-   #65 = Utf8               service\n-   #66 = Utf8               Ldev/langchain4j/spi/ExampleService;\n-   #67 = Utf8               Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n-   #68 = Utf8               RuntimeVisibleAnnotations\n-   #69 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #70 = Utf8               test_loadFactories\n-   #71 = Utf8               test_supplierServices\n-   #72 = Utf8               lambda$test_supplierServices$5\n-   #73 = Utf8               ()Ljava/lang/String;\n-   #74 = Utf8               lambda$test_supplierServices$4\n-   #75 = Utf8               lambda$test_loadService$3\n-   #76 = Utf8               lambda$test_loadService$2\n-   #77 = Utf8               lambda$test_loadService$1\n-   #78 = Utf8               ()Ldev/langchain4j/spi/ExampleService;\n-   #79 = Utf8               lambda$null$0\n-   #80 = Utf8               SourceFile\n-   #81 = Utf8               ServiceHelperTest.java\n-   #82 = NameAndType        #49:#50       // \"<init>\":()V\n-   #83 = NameAndType        #144:#145     // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-   #84 = Utf8               BootstrapMethods\n-   #85 = MethodHandle       6:#146        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #86 = MethodType         #147          //  (Ljava/lang/Object;)Ljava/lang/Object;\n-   #87 = MethodHandle       9:#148        // REF_invokeInterface dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n-   #88 = MethodType         #149          //  (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n-   #89 = NameAndType        #150:#151     // extractThrows:()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n-   #90 = Class              #152          // org/assertj/core/api/AbstractCollectionAssert\n-   #91 = NameAndType        #153:#154     // extracting:(Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n-   #92 = Utf8               java/lang/String\n-   #93 = Utf8               Hello\n-   #94 = Utf8               Goodbye\n-   #95 = Class              #155          // org/assertj/core/api/AbstractListAssert\n-   #96 = NameAndType        #156:#157     // containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #97 = Utf8               dev/langchain4j/spi/ExampleService\n-   #98 = MethodType         #158          //  ()Ljava/lang/Object;\n-   #99 = MethodHandle       6:#159        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n-  #100 = MethodType         #78           //  ()Ldev/langchain4j/spi/ExampleService;\n-  #101 = NameAndType        #160:#161     // get:()Ljava/util/function/Supplier;\n-  #102 = Class              #162          // dev/langchain4j/spi/ServiceHelper\n-  #103 = NameAndType        #163:#164     // loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #104 = NameAndType        #144:#165     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #105 = Utf8               java/lang/Class\n-  #106 = Utf8               dev/langchain4j/spi/ExampleServiceHello\n-  #107 = Utf8               dev/langchain4j/spi/ExampleServiceGoodbye\n-  #108 = Class              #166          // org/assertj/core/api/ObjectAssert\n-  #109 = NameAndType        #167:#168     // isInstanceOfAny:([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #110 = NameAndType        #169:#170     // apply:()Ljava/util/function/Function;\n-  #111 = MethodHandle       6:#171        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$2:()Ljava/lang/String;\n-  #112 = MethodType         #73           //  ()Ljava/lang/String;\n-  #113 = NameAndType        #172:#173     // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #114 = NameAndType        #144:#174     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #115 = Utf8               java/lang/Object\n-  #116 = Class              #175          // org/assertj/core/api/AbstractStringAssert\n-  #117 = NameAndType        #176:#177     // isIn:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #118 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-  #119 = MethodHandle       8:#178        // REF_newInvokeSpecial dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.\"<init>\":()V\n-  #120 = MethodType         #179          //  ()Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n-  #121 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n-  #122 = NameAndType        #180:#181     // isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #123 = MethodHandle       9:#182        // REF_invokeInterface dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.build:()Ljava/lang/String;\n-  #124 = MethodType         #183          //  (Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;)Ljava/lang/String;\n-  #125 = MethodHandle       6:#184        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$3:()Ljava/lang/String;\n-  #126 = Utf8               Holla\n-  #127 = NameAndType        #185:#174     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #128 = NameAndType        #186:#187     // loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n-  #129 = NameAndType        #56:#57       // assertServices:(Ljava/util/Collection;)V\n-  #130 = Utf8               dev/langchain4j/spi/ServiceHelperTest\n-  #131 = NameAndType        #188:#189     // getClassLoader:()Ljava/lang/ClassLoader;\n-  #132 = NameAndType        #186:#190     // loadFactories:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n-  #133 = NameAndType        #191:#50      // isEmpty:()V\n-  #134 = Utf8               dev/langchain4j/spi/SupplierService\n-  #135 = MethodHandle       6:#192        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$4:()Ljava/lang/String;\n-  #136 = NameAndType        #172:#164     // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #137 = Utf8               Hello world!\n-  #138 = Utf8               dev/langchain4j/spi/SupplierServiceNotFound\n-  #139 = MethodHandle       6:#193        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$5:()Ljava/lang/String;\n-  #140 = Utf8               Not found\n-  #141 = MethodHandle       6:#194        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$null$0:()Ljava/lang/String;\n-  #142 = NameAndType        #195:#78      // getGreeting:()Ldev/langchain4j/spi/ExampleService;\n-  #143 = Utf8               org/assertj/core/api/WithAssertions\n-  #144 = Utf8               assertThat\n-  #145 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-  #146 = Methodref          #196.#197     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #147 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #148 = InterfaceMethodref #9.#198       // dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n-  #149 = Utf8               (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n-  #150 = Utf8               extractThrows\n-  #151 = Utf8               ()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n-  #152 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n-  #153 = Utf8               extracting\n-  #154 = Utf8               (Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n-  #155 = Utf8               org/assertj/core/api/AbstractListAssert\n-  #156 = Utf8               containsExactlyInAnyOrder\n-  #157 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #158 = Utf8               ()Ljava/lang/Object;\n-  #159 = Methodref          #33.#199      // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n-  #160 = Utf8               get\n-  #161 = Utf8               ()Ljava/util/function/Supplier;\n-  #162 = Utf8               dev/langchain4j/spi/ServiceHelper\n-  #163 = Utf8               loadService\n-  #164 = Utf8               (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #165 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #166 = Utf8               org/assertj/core/api/ObjectAssert\n-  #167 = Utf8               isInstanceOfAny\n-  #168 = Utf8               ([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #169 = Utf8               apply\n-  #170 = Utf8               ()Ljava/util/function/Function;\n-  #171 = Methodref          #33.#200      // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$2:()Ljava/lang/String;\n-  #172 = Utf8               loadFactoryService\n-  #173 = Utf8               (Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #174 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #175 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #176 = Utf8               isIn\n-  #177 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #178 = Methodref          #25.#82       // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.\"<init>\":()V\n-  #179 = Utf8               ()Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n-  #180 = Utf8               isInstanceOf\n-  #181 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n-  #182 = InterfaceMethodref #23.#201      // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.build:()Ljava/lang/String;\n-  #183 = Utf8               (Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;)Ljava/lang/String;\n-  #184 = Methodref          #33.#202      // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$3:()Ljava/lang/String;\n-  #185 = Utf8               isEqualTo\n-  #186 = Utf8               loadFactories\n-  #187 = Utf8               (Ljava/lang/Class;)Ljava/util/Collection;\n-  #188 = Utf8               getClassLoader\n-  #189 = Utf8               ()Ljava/lang/ClassLoader;\n-  #190 = Utf8               (Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n-  #191 = Utf8               isEmpty\n-  #192 = Methodref          #33.#203      // dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$4:()Ljava/lang/String;\n-  #193 = Methodref          #33.#204      // dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$5:()Ljava/lang/String;\n-  #194 = Methodref          #33.#205      // dev/langchain4j/spi/ServiceHelperTest.lambda$null$0:()Ljava/lang/String;\n-  #195 = Utf8               getGreeting\n-  #196 = Class              #206          // java/lang/invoke/LambdaMetafactory\n-  #197 = NameAndType        #207:#210     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #198 = NameAndType        #195:#73      // getGreeting:()Ljava/lang/String;\n-  #199 = NameAndType        #77:#78       // lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n-  #200 = NameAndType        #76:#73       // lambda$test_loadService$2:()Ljava/lang/String;\n-  #201 = NameAndType        #211:#73      // build:()Ljava/lang/String;\n-  #202 = NameAndType        #75:#73       // lambda$test_loadService$3:()Ljava/lang/String;\n-  #203 = NameAndType        #74:#73       // lambda$test_supplierServices$4:()Ljava/lang/String;\n-  #204 = NameAndType        #72:#73       // lambda$test_supplierServices$5:()Ljava/lang/String;\n-  #205 = NameAndType        #79:#73       // lambda$null$0:()Ljava/lang/String;\n-  #206 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #207 = Utf8               metafactory\n-  #208 = Class              #213          // java/lang/invoke/MethodHandles$Lookup\n-  #209 = Utf8               Lookup\n-  #210 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #211 = Utf8               build\n-  #212 = Class              #214          // java/lang/invoke/MethodHandles\n-  #213 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #214 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/spi/ServiceHelperTest.assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+    #8 = Class              #10           // dev/langchain4j/spi/ServiceHelperTest\n+    #9 = NameAndType        #11:#12       // assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #10 = Utf8               dev/langchain4j/spi/ServiceHelperTest\n+   #11 = Utf8               assertThat\n+   #12 = Utf8               (Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+   #13 = InvokeDynamic      #0:#14        // #0:extractThrows:()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n+   #14 = NameAndType        #15:#16       // extractThrows:()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n+   #15 = Utf8               extractThrows\n+   #16 = Utf8               ()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n+   #17 = Methodref          #18.#19       // org/assertj/core/api/AbstractCollectionAssert.extracting:(Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n+   #18 = Class              #20           // org/assertj/core/api/AbstractCollectionAssert\n+   #19 = NameAndType        #21:#22       // extracting:(Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n+   #20 = Utf8               org/assertj/core/api/AbstractCollectionAssert\n+   #21 = Utf8               extracting\n+   #22 = Utf8               (Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n+   #23 = Class              #24           // java/lang/String\n+   #24 = Utf8               java/lang/String\n+   #25 = String             #26           // Hello\n+   #26 = Utf8               Hello\n+   #27 = String             #28           // Goodbye\n+   #28 = Utf8               Goodbye\n+   #29 = Methodref          #30.#31       // org/assertj/core/api/AbstractListAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #30 = Class              #32           // org/assertj/core/api/AbstractListAssert\n+   #31 = NameAndType        #33:#34       // containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #32 = Utf8               org/assertj/core/api/AbstractListAssert\n+   #33 = Utf8               containsExactlyInAnyOrder\n+   #34 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #35 = Class              #36           // dev/langchain4j/spi/ExampleService\n+   #36 = Utf8               dev/langchain4j/spi/ExampleService\n+   #37 = InvokeDynamic      #1:#38        // #1:get:()Ljava/util/function/Supplier;\n+   #38 = NameAndType        #39:#40       // get:()Ljava/util/function/Supplier;\n+   #39 = Utf8               get\n+   #40 = Utf8               ()Ljava/util/function/Supplier;\n+   #41 = Methodref          #42.#43       // dev/langchain4j/spi/ServiceHelper.loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #42 = Class              #44           // dev/langchain4j/spi/ServiceHelper\n+   #43 = NameAndType        #45:#46       // loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #44 = Utf8               dev/langchain4j/spi/ServiceHelper\n+   #45 = Utf8               loadService\n+   #46 = Utf8               (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #47 = Methodref          #8.#48        // dev/langchain4j/spi/ServiceHelperTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #48 = NameAndType        #11:#49       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #49 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #50 = Class              #51           // java/lang/Class\n+   #51 = Utf8               java/lang/Class\n+   #52 = Class              #53           // dev/langchain4j/spi/ExampleServiceHello\n+   #53 = Utf8               dev/langchain4j/spi/ExampleServiceHello\n+   #54 = Class              #55           // dev/langchain4j/spi/ExampleServiceGoodbye\n+   #55 = Utf8               dev/langchain4j/spi/ExampleServiceGoodbye\n+   #56 = Methodref          #57.#58       // org/assertj/core/api/ObjectAssert.isInstanceOfAny:([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #57 = Class              #59           // org/assertj/core/api/ObjectAssert\n+   #58 = NameAndType        #60:#61       // isInstanceOfAny:([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #59 = Utf8               org/assertj/core/api/ObjectAssert\n+   #60 = Utf8               isInstanceOfAny\n+   #61 = Utf8               ([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #62 = InvokeDynamic      #0:#63        // #0:apply:()Ljava/util/function/Function;\n+   #63 = NameAndType        #64:#65       // apply:()Ljava/util/function/Function;\n+   #64 = Utf8               apply\n+   #65 = Utf8               ()Ljava/util/function/Function;\n+   #66 = InvokeDynamic      #2:#38        // #2:get:()Ljava/util/function/Supplier;\n+   #67 = Methodref          #42.#68       // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #68 = NameAndType        #69:#70       // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #69 = Utf8               loadFactoryService\n+   #70 = Utf8               (Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #71 = Methodref          #8.#72        // dev/langchain4j/spi/ServiceHelperTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #72 = NameAndType        #11:#73       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #73 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #74 = Methodref          #75.#76       // org/assertj/core/api/AbstractStringAssert.isIn:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #75 = Class              #77           // org/assertj/core/api/AbstractStringAssert\n+   #76 = NameAndType        #78:#79       // isIn:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #77 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #78 = Utf8               isIn\n+   #79 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #80 = Class              #81           // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+   #81 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+   #82 = InvokeDynamic      #3:#38        // #3:get:()Ljava/util/function/Supplier;\n+   #83 = Class              #84           // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n+   #84 = Utf8               dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n+   #85 = Methodref          #57.#86       // org/assertj/core/api/ObjectAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #86 = NameAndType        #87:#88       // isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #87 = Utf8               isInstanceOf\n+   #88 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+   #89 = InvokeDynamic      #4:#63        // #4:apply:()Ljava/util/function/Function;\n+   #90 = InvokeDynamic      #5:#38        // #5:get:()Ljava/util/function/Supplier;\n+   #91 = String             #92           // Holla\n+   #92 = Utf8               Holla\n+   #93 = Methodref          #75.#94       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #94 = NameAndType        #95:#73       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #95 = Utf8               isEqualTo\n+   #96 = Methodref          #42.#97       // dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n+   #97 = NameAndType        #98:#99       // loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n+   #98 = Utf8               loadFactories\n+   #99 = Utf8               (Ljava/lang/Class;)Ljava/util/Collection;\n+  #100 = Methodref          #8.#101       // dev/langchain4j/spi/ServiceHelperTest.assertServices:(Ljava/util/Collection;)V\n+  #101 = NameAndType        #102:#103     // assertServices:(Ljava/util/Collection;)V\n+  #102 = Utf8               assertServices\n+  #103 = Utf8               (Ljava/util/Collection;)V\n+  #104 = Methodref          #50.#105      // java/lang/Class.getClassLoader:()Ljava/lang/ClassLoader;\n+  #105 = NameAndType        #106:#107     // getClassLoader:()Ljava/lang/ClassLoader;\n+  #106 = Utf8               getClassLoader\n+  #107 = Utf8               ()Ljava/lang/ClassLoader;\n+  #108 = Methodref          #42.#109      // dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n+  #109 = NameAndType        #98:#110      // loadFactories:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n+  #110 = Utf8               (Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n+  #111 = Methodref          #18.#112      // org/assertj/core/api/AbstractCollectionAssert.isEmpty:()V\n+  #112 = NameAndType        #113:#6       // isEmpty:()V\n+  #113 = Utf8               isEmpty\n+  #114 = Class              #115          // dev/langchain4j/spi/SupplierService\n+  #115 = Utf8               dev/langchain4j/spi/SupplierService\n+  #116 = InvokeDynamic      #6:#38        // #6:get:()Ljava/util/function/Supplier;\n+  #117 = Methodref          #42.#118      // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #118 = NameAndType        #69:#46       // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #119 = String             #120          // Hello world!\n+  #120 = Utf8               Hello world!\n+  #121 = Class              #122          // dev/langchain4j/spi/SupplierServiceNotFound\n+  #122 = Utf8               dev/langchain4j/spi/SupplierServiceNotFound\n+  #123 = InvokeDynamic      #7:#38        // #7:get:()Ljava/util/function/Supplier;\n+  #124 = String             #125          // Not found\n+  #125 = Utf8               Not found\n+  #126 = InvokeDynamic      #8:#127       // #8:getGreeting:()Ldev/langchain4j/spi/ExampleService;\n+  #127 = NameAndType        #128:#129     // getGreeting:()Ldev/langchain4j/spi/ExampleService;\n+  #128 = Utf8               getGreeting\n+  #129 = Utf8               ()Ldev/langchain4j/spi/ExampleService;\n+  #130 = Class              #131          // org/assertj/core/api/WithAssertions\n+  #131 = Utf8               org/assertj/core/api/WithAssertions\n+  #132 = Utf8               Code\n+  #133 = Utf8               LineNumberTable\n+  #134 = Utf8               LocalVariableTable\n+  #135 = Utf8               this\n+  #136 = Utf8               Ldev/langchain4j/spi/ServiceHelperTest;\n+  #137 = Utf8               services\n+  #138 = Utf8               Ljava/util/Collection;\n+  #139 = Utf8               LocalVariableTypeTable\n+  #140 = Utf8               Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;\n+  #141 = Utf8               Signature\n+  #142 = Utf8               (Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;)V\n+  #143 = Utf8               test_loadService\n+  #144 = Utf8               service\n+  #145 = Utf8               Ldev/langchain4j/spi/ExampleService;\n+  #146 = Utf8               Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n+  #147 = Utf8               RuntimeVisibleAnnotations\n+  #148 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #149 = Utf8               test_loadFactories\n+  #150 = Utf8               test_supplierServices\n+  #151 = Utf8               lambda$test_supplierServices$5\n+  #152 = Utf8               ()Ljava/lang/String;\n+  #153 = Utf8               lambda$test_supplierServices$4\n+  #154 = Utf8               lambda$test_loadService$3\n+  #155 = Utf8               lambda$test_loadService$2\n+  #156 = Utf8               lambda$test_loadService$1\n+  #157 = Utf8               lambda$test_loadService$0\n+  #158 = Utf8               SourceFile\n+  #159 = Utf8               ServiceHelperTest.java\n+  #160 = Utf8               BootstrapMethods\n+  #161 = MethodHandle       6:#162        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #162 = Methodref          #163.#164     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #163 = Class              #165          // java/lang/invoke/LambdaMetafactory\n+  #164 = NameAndType        #166:#167     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #165 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #166 = Utf8               metafactory\n+  #167 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #168 = MethodType         #169          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #169 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #170 = MethodHandle       9:#171        // REF_invokeInterface dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n+  #171 = InterfaceMethodref #35.#172      // dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n+  #172 = NameAndType        #128:#152     // getGreeting:()Ljava/lang/String;\n+  #173 = MethodType         #174          //  (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n+  #174 = Utf8               (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n+  #175 = MethodType         #176          //  ()Ljava/lang/Object;\n+  #176 = Utf8               ()Ljava/lang/Object;\n+  #177 = MethodHandle       6:#178        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n+  #178 = Methodref          #8.#179       // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n+  #179 = NameAndType        #156:#129     // lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n+  #180 = MethodType         #129          //  ()Ldev/langchain4j/spi/ExampleService;\n+  #181 = MethodHandle       6:#182        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$2:()Ljava/lang/String;\n+  #182 = Methodref          #8.#183       // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$2:()Ljava/lang/String;\n+  #183 = NameAndType        #155:#152     // lambda$test_loadService$2:()Ljava/lang/String;\n+  #184 = MethodType         #152          //  ()Ljava/lang/String;\n+  #185 = MethodHandle       8:#186        // REF_newInvokeSpecial dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.\"<init>\":()V\n+  #186 = Methodref          #83.#3        // dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.\"<init>\":()V\n+  #187 = MethodType         #188          //  ()Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n+  #188 = Utf8               ()Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n+  #189 = MethodHandle       9:#190        // REF_invokeInterface dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.build:()Ljava/lang/String;\n+  #190 = InterfaceMethodref #80.#191      // dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.build:()Ljava/lang/String;\n+  #191 = NameAndType        #192:#152     // build:()Ljava/lang/String;\n+  #192 = Utf8               build\n+  #193 = MethodType         #194          //  (Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;)Ljava/lang/String;\n+  #194 = Utf8               (Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;)Ljava/lang/String;\n+  #195 = MethodHandle       6:#196        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$3:()Ljava/lang/String;\n+  #196 = Methodref          #8.#197       // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$3:()Ljava/lang/String;\n+  #197 = NameAndType        #154:#152     // lambda$test_loadService$3:()Ljava/lang/String;\n+  #198 = MethodHandle       6:#199        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$4:()Ljava/lang/String;\n+  #199 = Methodref          #8.#200       // dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$4:()Ljava/lang/String;\n+  #200 = NameAndType        #153:#152     // lambda$test_supplierServices$4:()Ljava/lang/String;\n+  #201 = MethodHandle       6:#202        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$5:()Ljava/lang/String;\n+  #202 = Methodref          #8.#203       // dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$5:()Ljava/lang/String;\n+  #203 = NameAndType        #151:#152     // lambda$test_supplierServices$5:()Ljava/lang/String;\n+  #204 = MethodHandle       6:#205        // REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$0:()Ljava/lang/String;\n+  #205 = Methodref          #8.#206       // dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$0:()Ljava/lang/String;\n+  #206 = NameAndType        #157:#152     // lambda$test_loadService$0:()Ljava/lang/String;\n+  #207 = Utf8               InnerClasses\n+  #208 = Utf8               ServiceWithNoProviders\n+  #209 = Utf8               ExampleServiceWithNoProviders\n+  #210 = Class              #211          // java/lang/invoke/MethodHandles$Lookup\n+  #211 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #212 = Class              #213          // java/lang/invoke/MethodHandles\n+  #213 = Utf8               java/lang/invoke/MethodHandles\n+  #214 = Utf8               Lookup\n {\n   dev.langchain4j.spi.ServiceHelperTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -240,107 +240,107 @@\n   public void assertServices(java.util.Collection<dev.langchain4j.spi.ExampleService>);\n     descriptor: (Ljava/util/Collection;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #2                  // Method assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-         5: invokedynamic #3,  0              // InvokeDynamic #0:extractThrows:()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n-        10: invokevirtual #4                  // Method org/assertj/core/api/AbstractCollectionAssert.extracting:(Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n+         2: invokevirtual #7                  // Method assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+         5: invokedynamic #13,  0             // InvokeDynamic #0:extractThrows:()Lorg/assertj/core/api/iterable/ThrowingExtractor;\n+        10: invokevirtual #17                 // Method org/assertj/core/api/AbstractCollectionAssert.extracting:(Lorg/assertj/core/api/iterable/ThrowingExtractor;)Lorg/assertj/core/api/AbstractListAssert;\n         13: iconst_2\n-        14: anewarray     #5                  // class java/lang/String\n+        14: anewarray     #23                 // class java/lang/String\n         17: dup\n         18: iconst_0\n-        19: ldc           #6                  // String Hello\n+        19: ldc           #25                 // String Hello\n         21: aastore\n         22: dup\n         23: iconst_1\n-        24: ldc           #7                  // String Goodbye\n+        24: ldc           #27                 // String Goodbye\n         26: aastore\n-        27: invokevirtual #8                  // Method org/assertj/core/api/AbstractListAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        27: invokevirtual #29                 // Method org/assertj/core/api/AbstractListAssert.containsExactlyInAnyOrder:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         30: pop\n         31: return\n       LineNumberTable:\n         line 10: 0\n         line 11: 27\n         line 12: 31\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      32     0  this   Ldev/langchain4j/spi/ServiceHelperTest;\n             0      32     1 services   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      32     1 services   Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;\n-    Signature: #63                          // (Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;)V\n+    Signature: #142                         // (Ljava/util/Collection<Ldev/langchain4j/spi/ExampleService;>;)V\n \n   public void test_loadService();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=2, args_size=1\n-         0: ldc           #9                  // class dev/langchain4j/spi/ExampleService\n-         2: invokedynamic #10,  0             // InvokeDynamic #1:get:()Ljava/util/function/Supplier;\n-         7: invokestatic  #11                 // Method dev/langchain4j/spi/ServiceHelper.loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        10: checkcast     #9                  // class dev/langchain4j/spi/ExampleService\n+         0: ldc           #35                 // class dev/langchain4j/spi/ExampleService\n+         2: invokedynamic #37,  0             // InvokeDynamic #1:get:()Ljava/util/function/Supplier;\n+         7: invokestatic  #41                 // Method dev/langchain4j/spi/ServiceHelper.loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        10: checkcast     #35                 // class dev/langchain4j/spi/ExampleService\n         13: astore_1\n         14: aload_0\n         15: aload_1\n-        16: invokevirtual #12                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        16: invokevirtual #47                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         19: iconst_2\n-        20: anewarray     #13                 // class java/lang/Class\n+        20: anewarray     #50                 // class java/lang/Class\n         23: dup\n         24: iconst_0\n-        25: ldc           #14                 // class dev/langchain4j/spi/ExampleServiceHello\n+        25: ldc           #52                 // class dev/langchain4j/spi/ExampleServiceHello\n         27: aastore\n         28: dup\n         29: iconst_1\n-        30: ldc           #15                 // class dev/langchain4j/spi/ExampleServiceGoodbye\n+        30: ldc           #54                 // class dev/langchain4j/spi/ExampleServiceGoodbye\n         32: aastore\n-        33: invokevirtual #16                 // Method org/assertj/core/api/ObjectAssert.isInstanceOfAny:([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        33: invokevirtual #56                 // Method org/assertj/core/api/ObjectAssert.isInstanceOfAny:([Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n         36: pop\n         37: aload_0\n-        38: ldc           #9                  // class dev/langchain4j/spi/ExampleService\n-        40: invokedynamic #17,  0             // InvokeDynamic #2:apply:()Ljava/util/function/Function;\n-        45: invokedynamic #18,  0             // InvokeDynamic #3:get:()Ljava/util/function/Supplier;\n-        50: invokestatic  #19                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        53: checkcast     #5                  // class java/lang/String\n-        56: invokevirtual #20                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        38: ldc           #35                 // class dev/langchain4j/spi/ExampleService\n+        40: invokedynamic #62,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+        45: invokedynamic #66,  0             // InvokeDynamic #2:get:()Ljava/util/function/Supplier;\n+        50: invokestatic  #67                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        53: checkcast     #23                 // class java/lang/String\n+        56: invokevirtual #71                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         59: iconst_2\n-        60: anewarray     #21                 // class java/lang/Object\n+        60: anewarray     #2                  // class java/lang/Object\n         63: dup\n         64: iconst_0\n-        65: ldc           #6                  // String Hello\n+        65: ldc           #25                 // String Hello\n         67: aastore\n         68: dup\n         69: iconst_1\n-        70: ldc           #7                  // String Goodbye\n+        70: ldc           #27                 // String Goodbye\n         72: aastore\n-        73: invokevirtual #22                 // Method org/assertj/core/api/AbstractStringAssert.isIn:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        73: invokevirtual #74                 // Method org/assertj/core/api/AbstractStringAssert.isIn:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n         76: pop\n-        77: ldc           #23                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-        79: invokedynamic #24,  0             // InvokeDynamic #4:get:()Ljava/util/function/Supplier;\n-        84: invokestatic  #11                 // Method dev/langchain4j/spi/ServiceHelper.loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        87: checkcast     #23                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+        77: ldc           #80                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+        79: invokedynamic #82,  0             // InvokeDynamic #3:get:()Ljava/util/function/Supplier;\n+        84: invokestatic  #41                 // Method dev/langchain4j/spi/ServiceHelper.loadService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        87: checkcast     #80                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n         90: astore_1\n         91: aload_0\n         92: aload_1\n-        93: invokevirtual #12                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-        96: ldc           #25                 // class dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n-        98: invokevirtual #26                 // Method org/assertj/core/api/ObjectAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n+        93: invokevirtual #47                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        96: ldc           #83                 // class dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders\n+        98: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.isInstanceOf:(Ljava/lang/Class;)Lorg/assertj/core/api/AbstractAssert;\n        101: pop\n        102: aload_0\n-       103: ldc           #23                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-       105: invokedynamic #27,  0             // InvokeDynamic #5:apply:()Ljava/util/function/Function;\n-       110: invokedynamic #28,  0             // InvokeDynamic #6:get:()Ljava/util/function/Supplier;\n-       115: invokestatic  #19                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-       118: checkcast     #5                  // class java/lang/String\n-       121: invokevirtual #20                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       124: ldc           #29                 // String Holla\n-       126: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       103: ldc           #80                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+       105: invokedynamic #89,  0             // InvokeDynamic #4:apply:()Ljava/util/function/Function;\n+       110: invokedynamic #90,  0             // InvokeDynamic #5:get:()Ljava/util/function/Supplier;\n+       115: invokestatic  #67                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Function;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+       118: checkcast     #23                 // class java/lang/String\n+       121: invokevirtual #71                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       124: ldc           #91                 // String Holla\n+       126: invokevirtual #93                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        129: pop\n        130: return\n       LineNumberTable:\n         line 29: 0\n         line 30: 14\n         line 32: 37\n         line 33: 73\n@@ -351,196 +351,191 @@\n         line 46: 130\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n            14      63     1 service   Ldev/langchain4j/spi/ExampleService;\n            91      39     1 service   Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n             0     131     0  this   Ldev/langchain4j/spi/ServiceHelperTest;\n     RuntimeVisibleAnnotations:\n-      0: #69()\n+      0: #148()\n         org.junit.jupiter.api.Test\n \n   public void test_loadFactories();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #9                  // class dev/langchain4j/spi/ExampleService\n-         3: invokestatic  #31                 // Method dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n-         6: invokevirtual #32                 // Method assertServices:(Ljava/util/Collection;)V\n+         1: ldc           #35                 // class dev/langchain4j/spi/ExampleService\n+         3: invokestatic  #96                 // Method dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n+         6: invokevirtual #100                // Method assertServices:(Ljava/util/Collection;)V\n          9: aload_0\n-        10: ldc           #9                  // class dev/langchain4j/spi/ExampleService\n-        12: ldc           #33                 // class dev/langchain4j/spi/ServiceHelperTest\n-        14: invokevirtual #34                 // Method java/lang/Class.getClassLoader:()Ljava/lang/ClassLoader;\n-        17: invokestatic  #35                 // Method dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n-        20: invokevirtual #32                 // Method assertServices:(Ljava/util/Collection;)V\n+        10: ldc           #35                 // class dev/langchain4j/spi/ExampleService\n+        12: ldc           #8                  // class dev/langchain4j/spi/ServiceHelperTest\n+        14: invokevirtual #104                // Method java/lang/Class.getClassLoader:()Ljava/lang/ClassLoader;\n+        17: invokestatic  #108                // Method dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Collection;\n+        20: invokevirtual #100                // Method assertServices:(Ljava/util/Collection;)V\n         23: aload_0\n-        24: ldc           #23                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n-        26: invokestatic  #31                 // Method dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n-        29: invokevirtual #2                  // Method assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n-        32: invokevirtual #36                 // Method org/assertj/core/api/AbstractCollectionAssert.isEmpty:()V\n+        24: ldc           #80                 // class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders\n+        26: invokestatic  #96                 // Method dev/langchain4j/spi/ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;\n+        29: invokevirtual #7                  // Method assertThat:(Ljava/util/Collection;)Lorg/assertj/core/api/AbstractCollectionAssert;\n+        32: invokevirtual #111                // Method org/assertj/core/api/AbstractCollectionAssert.isEmpty:()V\n         35: return\n       LineNumberTable:\n         line 50: 0\n         line 51: 9\n         line 53: 23\n         line 54: 35\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      36     0  this   Ldev/langchain4j/spi/ServiceHelperTest;\n     RuntimeVisibleAnnotations:\n-      0: #69()\n+      0: #148()\n         org.junit.jupiter.api.Test\n \n   void test_supplierServices();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: ldc           #37                 // class dev/langchain4j/spi/SupplierService\n-         3: invokedynamic #38,  0             // InvokeDynamic #7:get:()Ljava/util/function/Supplier;\n-         8: invokestatic  #39                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        11: checkcast     #5                  // class java/lang/String\n-        14: invokevirtual #20                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        17: ldc           #40                 // String Hello world!\n-        19: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         1: ldc           #114                // class dev/langchain4j/spi/SupplierService\n+         3: invokedynamic #116,  0            // InvokeDynamic #6:get:()Ljava/util/function/Supplier;\n+         8: invokestatic  #117                // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        11: checkcast     #23                 // class java/lang/String\n+        14: invokevirtual #71                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        17: ldc           #119                // String Hello world!\n+        19: invokevirtual #93                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         22: pop\n         23: aload_0\n-        24: ldc           #41                 // class dev/langchain4j/spi/SupplierServiceNotFound\n-        26: invokedynamic #42,  0             // InvokeDynamic #8:get:()Ljava/util/function/Supplier;\n-        31: invokestatic  #39                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        34: checkcast     #5                  // class java/lang/String\n-        37: invokevirtual #20                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        40: ldc           #43                 // String Not found\n-        42: invokevirtual #30                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        24: ldc           #121                // class dev/langchain4j/spi/SupplierServiceNotFound\n+        26: invokedynamic #123,  0            // InvokeDynamic #7:get:()Ljava/util/function/Supplier;\n+        31: invokestatic  #117                // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        34: checkcast     #23                 // class java/lang/String\n+        37: invokevirtual #71                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        40: ldc           #124                // String Not found\n+        42: invokevirtual #93                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         45: pop\n         46: return\n       LineNumberTable:\n         line 58: 0\n         line 59: 19\n         line 61: 23\n         line 62: 42\n         line 63: 46\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      47     0  this   Ldev/langchain4j/spi/ServiceHelperTest;\n     RuntimeVisibleAnnotations:\n-      0: #69()\n+      0: #148()\n         org.junit.jupiter.api.Test\n \n   private static java.lang.String lambda$test_supplierServices$5();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #43                 // String Not found\n+         0: ldc           #124                // String Not found\n          2: areturn\n       LineNumberTable:\n         line 61: 0\n \n   private static java.lang.String lambda$test_supplierServices$4();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #43                 // String Not found\n+         0: ldc           #124                // String Not found\n          2: areturn\n       LineNumberTable:\n         line 58: 0\n \n   private static java.lang.String lambda$test_loadService$3();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #29                 // String Holla\n+         0: ldc           #91                 // String Holla\n          2: areturn\n       LineNumberTable:\n         line 42: 0\n \n   private static java.lang.String lambda$test_loadService$2();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #29                 // String Holla\n+         0: ldc           #91                 // String Holla\n          2: areturn\n       LineNumberTable:\n         line 32: 0\n \n   private static dev.langchain4j.spi.ExampleService lambda$test_loadService$1();\n     descriptor: ()Ldev/langchain4j/spi/ExampleService;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: invokedynamic #44,  0             // InvokeDynamic #9:getGreeting:()Ldev/langchain4j/spi/ExampleService;\n+         0: invokedynamic #126,  0            // InvokeDynamic #8:getGreeting:()Ldev/langchain4j/spi/ExampleService;\n          5: areturn\n       LineNumberTable:\n         line 29: 0\n \n-  private static java.lang.String lambda$null$0();\n+  private static java.lang.String lambda$test_loadService$0();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #29                 // String Holla\n+         0: ldc           #91                 // String Holla\n          2: areturn\n       LineNumberTable:\n         line 29: 0\n }\n SourceFile: \"ServiceHelperTest.java\"\n-InnerClasses:\n-  public static #46= #25 of #33;          // ExampleServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n-  static #48= #23 of #33;                 // ServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n-  public static final #209= #208 of #212; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-    Method arguments:\n-      #86 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #87 REF_invokeInterface dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n-      #88 (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n-  1: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #98 ()Ljava/lang/Object;\n-      #99 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n-      #100 ()Ldev/langchain4j/spi/ExampleService;\n-  2: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #168 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #170 REF_invokeInterface dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n+      #173 (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n+  1: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #86 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #87 REF_invokeInterface dev/langchain4j/spi/ExampleService.getGreeting:()Ljava/lang/String;\n-      #88 (Ldev/langchain4j/spi/ExampleService;)Ljava/lang/String;\n-  3: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #175 ()Ljava/lang/Object;\n+      #177 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$1:()Ldev/langchain4j/spi/ExampleService;\n+      #180 ()Ldev/langchain4j/spi/ExampleService;\n+  2: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #98 ()Ljava/lang/Object;\n-      #111 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$2:()Ljava/lang/String;\n-      #112 ()Ljava/lang/String;\n-  4: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #175 ()Ljava/lang/Object;\n+      #181 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$2:()Ljava/lang/String;\n+      #184 ()Ljava/lang/String;\n+  3: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #98 ()Ljava/lang/Object;\n-      #119 REF_newInvokeSpecial dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.\"<init>\":()V\n-      #120 ()Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n-  5: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #175 ()Ljava/lang/Object;\n+      #185 REF_newInvokeSpecial dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders.\"<init>\":()V\n+      #187 ()Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;\n+  4: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #86 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #123 REF_invokeInterface dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.build:()Ljava/lang/String;\n-      #124 (Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;)Ljava/lang/String;\n-  6: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #168 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #189 REF_invokeInterface dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders.build:()Ljava/lang/String;\n+      #193 (Ldev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders;)Ljava/lang/String;\n+  5: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #98 ()Ljava/lang/Object;\n-      #125 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$3:()Ljava/lang/String;\n-      #112 ()Ljava/lang/String;\n-  7: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #175 ()Ljava/lang/Object;\n+      #195 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$3:()Ljava/lang/String;\n+      #184 ()Ljava/lang/String;\n+  6: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #98 ()Ljava/lang/Object;\n-      #135 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$4:()Ljava/lang/String;\n-      #112 ()Ljava/lang/String;\n-  8: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #175 ()Ljava/lang/Object;\n+      #198 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$4:()Ljava/lang/String;\n+      #184 ()Ljava/lang/String;\n+  7: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #98 ()Ljava/lang/Object;\n-      #139 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$5:()Ljava/lang/String;\n-      #112 ()Ljava/lang/String;\n-  9: #85 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #175 ()Ljava/lang/Object;\n+      #201 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_supplierServices$5:()Ljava/lang/String;\n+      #184 ()Ljava/lang/String;\n+  8: #161 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #112 ()Ljava/lang/String;\n-      #141 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$null$0:()Ljava/lang/String;\n-      #112 ()Ljava/lang/String;\n+      #184 ()Ljava/lang/String;\n+      #204 REF_invokeStatic dev/langchain4j/spi/ServiceHelperTest.lambda$test_loadService$0:()Ljava/lang/String;\n+      #184 ()Ljava/lang/String;\n+InnerClasses:\n+  static #208= #80 of #8;                 // ServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n+  public static #209= #83 of #8;          // ExampleServiceWithNoProviders=class dev/langchain4j/spi/ServiceHelperTest$ExampleServiceWithNoProviders of class dev/langchain4j/spi/ServiceHelperTest\n+  public static final #214= #210 of #212; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/spi/SupplierService.class", "source2": "dev/langchain4j/spi/SupplierService.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,24 +1,24 @@\n-  SHA-256 checksum 0c75e74d02a6b43952f2f05cc5313eeb2126f1a97a7b2c4cd49c3ecb716f6a15\n+  SHA-256 checksum 5fdfbfa9a007fdd7b1b602b1f22ca03bd6fe894fc69ab1ca168cdd06b2ec06f1\n   Compiled from \"SupplierService.java\"\n public interface dev.langchain4j.spi.SupplierService extends java.util.function.Supplier<java.lang.String>\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/spi/SupplierService\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 0, attributes: 2\n Constant pool:\n-   #1 = Class              #8             // dev/langchain4j/spi/SupplierService\n-   #2 = Class              #9             // java/lang/Object\n-   #3 = Class              #10            // java/util/function/Supplier\n-   #4 = Utf8               Signature\n-   #5 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n-   #6 = Utf8               SourceFile\n-   #7 = Utf8               SupplierService.java\n-   #8 = Utf8               dev/langchain4j/spi/SupplierService\n-   #9 = Utf8               java/lang/Object\n-  #10 = Utf8               java/util/function/Supplier\n+   #1 = Class              #2             // dev/langchain4j/spi/SupplierService\n+   #2 = Utf8               dev/langchain4j/spi/SupplierService\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Class              #6             // java/util/function/Supplier\n+   #6 = Utf8               java/util/function/Supplier\n+   #7 = Utf8               Signature\n+   #8 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n+   #9 = Utf8               SourceFile\n+  #10 = Utf8               SupplierService.java\n {\n }\n-Signature: #5                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n+Signature: #8                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n SourceFile: \"SupplierService.java\"\n"}]}, {"source1": "dev/langchain4j/spi/SupplierServiceImpl.class", "source2": "dev/langchain4j/spi/SupplierServiceImpl.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,41 +1,41 @@\n-  SHA-256 checksum fbf6f937ae250333880c7f160f2cb053ebce2c8be6c9a6a690e4f4bd7715b565\n+  SHA-256 checksum 5806b79c384e95489551f54af23f033a79644d7e6718ac3ea826ff6574e12523\n   Compiled from \"SupplierServiceImpl.java\"\n public class dev.langchain4j.spi.SupplierServiceImpl implements dev.langchain4j.spi.SupplierService\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #4                          // dev/langchain4j/spi/SupplierServiceImpl\n-  super_class: #5                         // java/lang/Object\n+  this_class: #10                         // dev/langchain4j/spi/SupplierServiceImpl\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 1\n Constant pool:\n-   #1 = Methodref          #5.#19         // java/lang/Object.\"<init>\":()V\n-   #2 = String             #20            // Hello world!\n-   #3 = Methodref          #4.#21         // dev/langchain4j/spi/SupplierServiceImpl.get:()Ljava/lang/String;\n-   #4 = Class              #22            // dev/langchain4j/spi/SupplierServiceImpl\n-   #5 = Class              #23            // java/lang/Object\n-   #6 = Class              #24            // dev/langchain4j/spi/SupplierService\n-   #7 = Utf8               <init>\n-   #8 = Utf8               ()V\n-   #9 = Utf8               Code\n-  #10 = Utf8               LineNumberTable\n-  #11 = Utf8               LocalVariableTable\n-  #12 = Utf8               this\n-  #13 = Utf8               Ldev/langchain4j/spi/SupplierServiceImpl;\n-  #14 = Utf8               get\n-  #15 = Utf8               ()Ljava/lang/String;\n-  #16 = Utf8               ()Ljava/lang/Object;\n-  #17 = Utf8               SourceFile\n-  #18 = Utf8               SupplierServiceImpl.java\n-  #19 = NameAndType        #7:#8          // \"<init>\":()V\n-  #20 = Utf8               Hello world!\n-  #21 = NameAndType        #14:#15        // get:()Ljava/lang/String;\n-  #22 = Utf8               dev/langchain4j/spi/SupplierServiceImpl\n-  #23 = Utf8               java/lang/Object\n-  #24 = Utf8               dev/langchain4j/spi/SupplierService\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = String             #8             // Hello world!\n+   #8 = Utf8               Hello world!\n+   #9 = Methodref          #10.#11        // dev/langchain4j/spi/SupplierServiceImpl.get:()Ljava/lang/String;\n+  #10 = Class              #12            // dev/langchain4j/spi/SupplierServiceImpl\n+  #11 = NameAndType        #13:#14        // get:()Ljava/lang/String;\n+  #12 = Utf8               dev/langchain4j/spi/SupplierServiceImpl\n+  #13 = Utf8               get\n+  #14 = Utf8               ()Ljava/lang/String;\n+  #15 = Class              #16            // dev/langchain4j/spi/SupplierService\n+  #16 = Utf8               dev/langchain4j/spi/SupplierService\n+  #17 = Utf8               Code\n+  #18 = Utf8               LineNumberTable\n+  #19 = Utf8               LocalVariableTable\n+  #20 = Utf8               this\n+  #21 = Utf8               Ldev/langchain4j/spi/SupplierServiceImpl;\n+  #22 = Utf8               ()Ljava/lang/Object;\n+  #23 = Utf8               SourceFile\n+  #24 = Utf8               SupplierServiceImpl.java\n {\n   public dev.langchain4j.spi.SupplierServiceImpl();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -48,29 +48,29 @@\n             0       5     0  this   Ldev/langchain4j/spi/SupplierServiceImpl;\n \n   public java.lang.String get();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n-         0: ldc           #2                  // String Hello world!\n+         0: ldc           #7                  // String Hello world!\n          2: areturn\n       LineNumberTable:\n         line 6: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       3     0  this   Ldev/langchain4j/spi/SupplierServiceImpl;\n \n   public java.lang.Object get();\n     descriptor: ()Ljava/lang/Object;\n     flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #3                  // Method get:()Ljava/lang/String;\n+         1: invokevirtual #9                  // Method get:()Ljava/lang/String;\n          4: areturn\n       LineNumberTable:\n         line 3: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/spi/SupplierServiceImpl;\n }\n"}]}, {"source1": "dev/langchain4j/spi/SupplierServiceNotFound.class", "source2": "dev/langchain4j/spi/SupplierServiceNotFound.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,24 +1,24 @@\n-  SHA-256 checksum 288962d9618084ace2483b6ccc2323111ec1c0e436eaec076f8fec0a0df136a2\n+  SHA-256 checksum e38648085e883d9f0fa126bfee4a1df2eef6919a9ac91adec380a522a9bdbd81\n   Compiled from \"SupplierServiceNotFound.java\"\n public interface dev.langchain4j.spi.SupplierServiceNotFound extends java.util.function.Supplier<java.lang.String>\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/spi/SupplierServiceNotFound\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 0, attributes: 2\n Constant pool:\n-   #1 = Class              #8             // dev/langchain4j/spi/SupplierServiceNotFound\n-   #2 = Class              #9             // java/lang/Object\n-   #3 = Class              #10            // java/util/function/Supplier\n-   #4 = Utf8               Signature\n-   #5 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n-   #6 = Utf8               SourceFile\n-   #7 = Utf8               SupplierServiceNotFound.java\n-   #8 = Utf8               dev/langchain4j/spi/SupplierServiceNotFound\n-   #9 = Utf8               java/lang/Object\n-  #10 = Utf8               java/util/function/Supplier\n+   #1 = Class              #2             // dev/langchain4j/spi/SupplierServiceNotFound\n+   #2 = Utf8               dev/langchain4j/spi/SupplierServiceNotFound\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Class              #6             // java/util/function/Supplier\n+   #6 = Utf8               java/util/function/Supplier\n+   #7 = Utf8               Signature\n+   #8 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n+   #9 = Utf8               SourceFile\n+  #10 = Utf8               SupplierServiceNotFound.java\n {\n }\n-Signature: #5                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n+Signature: #8                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;\n SourceFile: \"SupplierServiceNotFound.java\"\n"}]}, {"source1": "dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.class", "source2": "dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,82 +1,82 @@\n-  SHA-256 checksum bbe58e62452675424c5c75fe4d1b46924fcf17f863a9b4d7fc52b90a2bc35f3e\n+  SHA-256 checksum e3952d15de3a774e513391f0d68b1a343660d02ad72a87fe8abfd92661a7478f\n   Compiled from \"PromptTemplateFactoryTest.java\"\n class dev.langchain4j.spi.prompt.PromptTemplateFactoryTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #7                          // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest\n-  super_class: #8                         // java/lang/Object\n+  this_class: #18                         // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 3\n Constant pool:\n-   #1 = Methodref          #8.#29         // java/lang/Object.\"<init>\":()V\n-   #2 = InvokeDynamic      #0:#34         // #0:getTemplate:()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n-   #3 = InterfaceMethodref #19.#35        // dev/langchain4j/spi/prompt/PromptTemplateFactory$Input.getName:()Ljava/lang/String;\n-   #4 = Methodref          #7.#36         // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #5 = String             #37            // template\n-   #6 = Methodref          #38.#39        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #7 = Class              #40            // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest\n-   #8 = Class              #41            // java/lang/Object\n-   #9 = Class              #42            // org/assertj/core/api/WithAssertions\n-  #10 = Utf8               <init>\n-  #11 = Utf8               ()V\n-  #12 = Utf8               Code\n-  #13 = Utf8               LineNumberTable\n-  #14 = Utf8               LocalVariableTable\n-  #15 = Utf8               this\n-  #16 = Utf8               Ldev/langchain4j/spi/prompt/PromptTemplateFactoryTest;\n-  #17 = Utf8               test_Input_defaults\n-  #18 = Utf8               input\n-  #19 = Class              #44            // dev/langchain4j/spi/prompt/PromptTemplateFactory$Input\n-  #20 = Utf8               Input\n-  #21 = Utf8               InnerClasses\n-  #22 = Utf8               Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n-  #23 = Utf8               RuntimeVisibleAnnotations\n-  #24 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #25 = Utf8               lambda$test_Input_defaults$0\n-  #26 = Utf8               ()Ljava/lang/String;\n-  #27 = Utf8               SourceFile\n-  #28 = Utf8               PromptTemplateFactoryTest.java\n-  #29 = NameAndType        #10:#11        // \"<init>\":()V\n-  #30 = Utf8               BootstrapMethods\n-  #31 = MethodHandle       6:#45          // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #32 = MethodType         #26            //  ()Ljava/lang/String;\n-  #33 = MethodHandle       6:#46          // REF_invokeStatic dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.lambda$test_Input_defaults$0:()Ljava/lang/String;\n-  #34 = NameAndType        #47:#48        // getTemplate:()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n-  #35 = NameAndType        #49:#26        // getName:()Ljava/lang/String;\n-  #36 = NameAndType        #50:#51        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #37 = Utf8               template\n-  #38 = Class              #52            // org/assertj/core/api/AbstractStringAssert\n-  #39 = NameAndType        #53:#51        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #40 = Utf8               dev/langchain4j/spi/prompt/PromptTemplateFactoryTest\n-  #41 = Utf8               java/lang/Object\n-  #42 = Utf8               org/assertj/core/api/WithAssertions\n-  #43 = Class              #54            // dev/langchain4j/spi/prompt/PromptTemplateFactory\n-  #44 = Utf8               dev/langchain4j/spi/prompt/PromptTemplateFactory$Input\n-  #45 = Methodref          #55.#56        // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #46 = Methodref          #7.#57         // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.lambda$test_Input_defaults$0:()Ljava/lang/String;\n-  #47 = Utf8               getTemplate\n-  #48 = Utf8               ()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n-  #49 = Utf8               getName\n-  #50 = Utf8               assertThat\n-  #51 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #52 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #53 = Utf8               isEqualTo\n-  #54 = Utf8               dev/langchain4j/spi/prompt/PromptTemplateFactory\n-  #55 = Class              #58            // java/lang/invoke/LambdaMetafactory\n-  #56 = NameAndType        #59:#62        // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #57 = NameAndType        #25:#26        // lambda$test_Input_defaults$0:()Ljava/lang/String;\n-  #58 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #59 = Utf8               metafactory\n-  #60 = Class              #64            // java/lang/invoke/MethodHandles$Lookup\n-  #61 = Utf8               Lookup\n-  #62 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #63 = Class              #65            // java/lang/invoke/MethodHandles\n-  #64 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #65 = Utf8               java/lang/invoke/MethodHandles\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = InvokeDynamic      #0:#8          // #0:getTemplate:()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n+   #8 = NameAndType        #9:#10         // getTemplate:()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n+   #9 = Utf8               getTemplate\n+  #10 = Utf8               ()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n+  #11 = InterfaceMethodref #12.#13        // dev/langchain4j/spi/prompt/PromptTemplateFactory$Input.getName:()Ljava/lang/String;\n+  #12 = Class              #14            // dev/langchain4j/spi/prompt/PromptTemplateFactory$Input\n+  #13 = NameAndType        #15:#16        // getName:()Ljava/lang/String;\n+  #14 = Utf8               dev/langchain4j/spi/prompt/PromptTemplateFactory$Input\n+  #15 = Utf8               getName\n+  #16 = Utf8               ()Ljava/lang/String;\n+  #17 = Methodref          #18.#19        // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #18 = Class              #20            // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest\n+  #19 = NameAndType        #21:#22        // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #20 = Utf8               dev/langchain4j/spi/prompt/PromptTemplateFactoryTest\n+  #21 = Utf8               assertThat\n+  #22 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #23 = String             #24            // template\n+  #24 = Utf8               template\n+  #25 = Methodref          #26.#27        // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #26 = Class              #28            // org/assertj/core/api/AbstractStringAssert\n+  #27 = NameAndType        #29:#22        // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+  #28 = Utf8               org/assertj/core/api/AbstractStringAssert\n+  #29 = Utf8               isEqualTo\n+  #30 = Class              #31            // org/assertj/core/api/WithAssertions\n+  #31 = Utf8               org/assertj/core/api/WithAssertions\n+  #32 = Utf8               Code\n+  #33 = Utf8               LineNumberTable\n+  #34 = Utf8               LocalVariableTable\n+  #35 = Utf8               this\n+  #36 = Utf8               Ldev/langchain4j/spi/prompt/PromptTemplateFactoryTest;\n+  #37 = Utf8               test_Input_defaults\n+  #38 = Utf8               input\n+  #39 = Utf8               Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n+  #40 = Utf8               RuntimeVisibleAnnotations\n+  #41 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #42 = Utf8               lambda$test_Input_defaults$0\n+  #43 = Utf8               SourceFile\n+  #44 = Utf8               PromptTemplateFactoryTest.java\n+  #45 = Utf8               BootstrapMethods\n+  #46 = MethodHandle       6:#47          // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #47 = Methodref          #48.#49        // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #48 = Class              #50            // java/lang/invoke/LambdaMetafactory\n+  #49 = NameAndType        #51:#52        // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #50 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #51 = Utf8               metafactory\n+  #52 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #53 = MethodType         #16            //  ()Ljava/lang/String;\n+  #54 = MethodHandle       6:#55          // REF_invokeStatic dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.lambda$test_Input_defaults$0:()Ljava/lang/String;\n+  #55 = Methodref          #18.#56        // dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.lambda$test_Input_defaults$0:()Ljava/lang/String;\n+  #56 = NameAndType        #42:#16        // lambda$test_Input_defaults$0:()Ljava/lang/String;\n+  #57 = Utf8               InnerClasses\n+  #58 = Class              #59            // dev/langchain4j/spi/prompt/PromptTemplateFactory\n+  #59 = Utf8               dev/langchain4j/spi/prompt/PromptTemplateFactory\n+  #60 = Utf8               Input\n+  #61 = Class              #62            // java/lang/invoke/MethodHandles$Lookup\n+  #62 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #63 = Class              #64            // java/lang/invoke/MethodHandles\n+  #64 = Utf8               java/lang/invoke/MethodHandles\n+  #65 = Utf8               Lookup\n {\n   dev.langchain4j.spi.prompt.PromptTemplateFactoryTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -89,49 +89,49 @@\n             0       5     0  this   Ldev/langchain4j/spi/prompt/PromptTemplateFactoryTest;\n \n   public void test_Input_defaults();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: invokedynamic #2,  0              // InvokeDynamic #0:getTemplate:()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n+         0: invokedynamic #7,  0              // InvokeDynamic #0:getTemplate:()Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n          5: astore_1\n          6: aload_0\n          7: aload_1\n-         8: invokeinterface #3,  1            // InterfaceMethod dev/langchain4j/spi/prompt/PromptTemplateFactory$Input.getName:()Ljava/lang/String;\n-        13: invokevirtual #4                  // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        16: ldc           #5                  // String template\n-        18: invokevirtual #6                  // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+         8: invokeinterface #11,  1           // InterfaceMethod dev/langchain4j/spi/prompt/PromptTemplateFactory$Input.getName:()Ljava/lang/String;\n+        13: invokevirtual #17                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        16: ldc           #23                 // String template\n+        18: invokevirtual #25                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         21: pop\n         22: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 6\n         line 11: 22\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      23     0  this   Ldev/langchain4j/spi/prompt/PromptTemplateFactoryTest;\n             6      17     1 input   Ldev/langchain4j/spi/prompt/PromptTemplateFactory$Input;\n     RuntimeVisibleAnnotations:\n-      0: #24()\n+      0: #41()\n         org.junit.jupiter.api.Test\n \n   private static java.lang.String lambda$test_Input_defaults$0();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: ldc           #5                  // String template\n+         0: ldc           #23                 // String template\n          2: areturn\n       LineNumberTable:\n         line 9: 0\n }\n SourceFile: \"PromptTemplateFactoryTest.java\"\n-InnerClasses:\n-  public static #20= #19 of #43;          // Input=class dev/langchain4j/spi/prompt/PromptTemplateFactory$Input of class dev/langchain4j/spi/prompt/PromptTemplateFactory\n-  public static final #61= #60 of #63;    // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #31 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #46 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #32 ()Ljava/lang/String;\n-      #33 REF_invokeStatic dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.lambda$test_Input_defaults$0:()Ljava/lang/String;\n-      #32 ()Ljava/lang/String;\n+      #53 ()Ljava/lang/String;\n+      #54 REF_invokeStatic dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.lambda$test_Input_defaults$0:()Ljava/lang/String;\n+      #53 ()Ljava/lang/String;\n+InnerClasses:\n+  public static #60= #12 of #58;          // Input=class dev/langchain4j/spi/prompt/PromptTemplateFactory$Input of class dev/langchain4j/spi/prompt/PromptTemplateFactory\n+  public static final #65= #61 of #63;    // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/store/embedding/CosineSimilarityTest.class", "source2": "dev/langchain4j/store/embedding/CosineSimilarityTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,133 +1,133 @@\n-  SHA-256 checksum 2df7a9c4200375615283b667cbf9b96a924978a45141f29e5c7e0aa397d9c2bd\n+  SHA-256 checksum 6d1f4f21af8ee85e5c25df3759e8e78675d2bc3d6f9af15e54096e5ca73a273d\n   Compiled from \"CosineSimilarityTest.java\"\n class dev.langchain4j.store.embedding.CosineSimilarityTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #20                         // dev/langchain4j/store/embedding/CosineSimilarityTest\n-  super_class: #21                        // java/lang/Object\n+  this_class: #16                         // dev/langchain4j/store/embedding/CosineSimilarityTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 6, attributes: 3\n Constant pool:\n-    #1 = Methodref          #21.#45       // java/lang/Object.\"<init>\":()V\n-    #2 = Methodref          #46.#47       // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-    #3 = Class              #48           // java/lang/IllegalArgumentException\n-    #4 = Methodref          #20.#49       // dev/langchain4j/store/embedding/CosineSimilarityTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-    #5 = InvokeDynamic      #0:#54        // #0:call:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-    #6 = Methodref          #55.#56       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-    #7 = String             #57           // Length of vector a (3) must be equal to the length of vector b (4)\n-    #8 = Methodref          #58.#59       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-    #9 = Methodref          #60.#61       // dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n-   #10 = Methodref          #20.#62       // dev/langchain4j/store/embedding/CosineSimilarityTest.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #11 = Methodref          #63.#64       // org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n-   #12 = Methodref          #65.#66       // org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #13 = Float              -1.0f\n-   #14 = Double             -1.0d\n-   #16 = Methodref          #60.#67       // dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n-   #17 = Methodref          #65.#68       // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #18 = Double             0.5d\n-   #20 = Class              #69           // dev/langchain4j/store/embedding/CosineSimilarityTest\n-   #21 = Class              #70           // java/lang/Object\n-   #22 = Class              #71           // org/assertj/core/api/WithAssertions\n-   #23 = Utf8               <init>\n-   #24 = Utf8               ()V\n-   #25 = Utf8               Code\n-   #26 = Utf8               LineNumberTable\n-   #27 = Utf8               LocalVariableTable\n-   #28 = Utf8               this\n-   #29 = Utf8               Ldev/langchain4j/store/embedding/CosineSimilarityTest;\n-   #30 = Utf8               test_bad\n-   #31 = Utf8               embeddingA\n-   #32 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n-   #33 = Utf8               embeddingB\n-   #34 = Utf8               RuntimeVisibleAnnotations\n-   #35 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #36 = Utf8               test_zeros\n-   #37 = Utf8               should_calculate_cosine_similarity\n-   #38 = Utf8               should_convert_relevance_score_into_cosine_similarity\n-   #39 = Utf8               lambda$test_bad$0\n-   #40 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n-   #41 = Utf8               Exceptions\n-   #42 = Class              #72           // java/lang/Throwable\n-   #43 = Utf8               SourceFile\n-   #44 = Utf8               CosineSimilarityTest.java\n-   #45 = NameAndType        #23:#24       // \"<init>\":()V\n-   #46 = Class              #73           // dev/langchain4j/data/embedding/Embedding\n-   #47 = NameAndType        #74:#75       // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #48 = Utf8               java/lang/IllegalArgumentException\n-   #49 = NameAndType        #76:#77       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #50 = Utf8               BootstrapMethods\n-   #51 = MethodHandle       6:#78         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #52 = MethodType         #24           //  ()V\n-   #53 = MethodHandle       6:#79         // REF_invokeStatic dev/langchain4j/store/embedding/CosineSimilarityTest.lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n-   #54 = NameAndType        #80:#84       // call:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #55 = Class              #85           // org/assertj/core/api/ThrowableTypeAssert\n-   #56 = NameAndType        #86:#87       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #57 = Utf8               Length of vector a (3) must be equal to the length of vector b (4)\n-   #58 = Class              #88           // org/assertj/core/api/ThrowableAssertAlternative\n-   #59 = NameAndType        #89:#90       // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #60 = Class              #91           // dev/langchain4j/store/embedding/CosineSimilarity\n-   #61 = NameAndType        #92:#93       // between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n-   #62 = NameAndType        #94:#95       // assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #63 = Class              #96           // org/assertj/core/data/Percentage\n-   #64 = NameAndType        #97:#98       // withPercentage:(D)Lorg/assertj/core/data/Percentage;\n-   #65 = Class              #99           // org/assertj/core/api/AbstractDoubleAssert\n-   #66 = NameAndType        #100:#101     // isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #67 = NameAndType        #102:#103     // fromRelevanceScore:(D)D\n-   #68 = NameAndType        #104:#95      // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #69 = Utf8               dev/langchain4j/store/embedding/CosineSimilarityTest\n-   #70 = Utf8               java/lang/Object\n-   #71 = Utf8               org/assertj/core/api/WithAssertions\n-   #72 = Utf8               java/lang/Throwable\n-   #73 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #74 = Utf8               from\n-   #75 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #76 = Utf8               assertThatExceptionOfType\n-   #77 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #78 = Methodref          #105.#106     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #79 = Methodref          #20.#107      // dev/langchain4j/store/embedding/CosineSimilarityTest.lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n-   #80 = Utf8               call\n-   #81 = Class              #109          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-   #82 = Utf8               ThrowingCallable\n-   #83 = Utf8               InnerClasses\n-   #84 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #85 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-   #86 = Utf8               isThrownBy\n-   #87 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #88 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-   #89 = Utf8               withMessage\n-   #90 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #91 = Utf8               dev/langchain4j/store/embedding/CosineSimilarity\n-   #92 = Utf8               between\n-   #93 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n-   #94 = Utf8               assertThat\n-   #95 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #96 = Utf8               org/assertj/core/data/Percentage\n-   #97 = Utf8               withPercentage\n-   #98 = Utf8               (D)Lorg/assertj/core/data/Percentage;\n-   #99 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n-  #100 = Utf8               isCloseTo\n-  #101 = Utf8               (DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #102 = Utf8               fromRelevanceScore\n-  #103 = Utf8               (D)D\n-  #104 = Utf8               isEqualTo\n-  #105 = Class              #110          // java/lang/invoke/LambdaMetafactory\n-  #106 = NameAndType        #111:#114     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #107 = NameAndType        #39:#40       // lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n-  #108 = Class              #115          // org/assertj/core/api/ThrowableAssert\n-  #109 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #110 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #111 = Utf8               metafactory\n-  #112 = Class              #117          // java/lang/invoke/MethodHandles$Lookup\n-  #113 = Utf8               Lookup\n-  #114 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #115 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #116 = Class              #118          // java/lang/invoke/MethodHandles\n-  #117 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #118 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Methodref          #8.#9         // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+    #8 = Class              #10           // dev/langchain4j/data/embedding/Embedding\n+    #9 = NameAndType        #11:#12       // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #10 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #11 = Utf8               from\n+   #12 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #13 = Class              #14           // java/lang/IllegalArgumentException\n+   #14 = Utf8               java/lang/IllegalArgumentException\n+   #15 = Methodref          #16.#17       // dev/langchain4j/store/embedding/CosineSimilarityTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #16 = Class              #18           // dev/langchain4j/store/embedding/CosineSimilarityTest\n+   #17 = NameAndType        #19:#20       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #18 = Utf8               dev/langchain4j/store/embedding/CosineSimilarityTest\n+   #19 = Utf8               assertThatExceptionOfType\n+   #20 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #21 = InvokeDynamic      #0:#22        // #0:call:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #22 = NameAndType        #23:#24       // call:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #23 = Utf8               call\n+   #24 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #25 = Methodref          #26.#27       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #26 = Class              #28           // org/assertj/core/api/ThrowableTypeAssert\n+   #27 = NameAndType        #29:#30       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #28 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #29 = Utf8               isThrownBy\n+   #30 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #31 = String             #32           // Length of vector a (3) must be equal to the length of vector b (4)\n+   #32 = Utf8               Length of vector a (3) must be equal to the length of vector b (4)\n+   #33 = Methodref          #34.#35       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #34 = Class              #36           // org/assertj/core/api/ThrowableAssertAlternative\n+   #35 = NameAndType        #37:#38       // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #36 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #37 = Utf8               withMessage\n+   #38 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #39 = Methodref          #40.#41       // dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+   #40 = Class              #42           // dev/langchain4j/store/embedding/CosineSimilarity\n+   #41 = NameAndType        #43:#44       // between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+   #42 = Utf8               dev/langchain4j/store/embedding/CosineSimilarity\n+   #43 = Utf8               between\n+   #44 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+   #45 = Methodref          #16.#46       // dev/langchain4j/store/embedding/CosineSimilarityTest.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #46 = NameAndType        #47:#48       // assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #47 = Utf8               assertThat\n+   #48 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #49 = Methodref          #50.#51       // org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n+   #50 = Class              #52           // org/assertj/core/data/Percentage\n+   #51 = NameAndType        #53:#54       // withPercentage:(D)Lorg/assertj/core/data/Percentage;\n+   #52 = Utf8               org/assertj/core/data/Percentage\n+   #53 = Utf8               withPercentage\n+   #54 = Utf8               (D)Lorg/assertj/core/data/Percentage;\n+   #55 = Methodref          #56.#57       // org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #56 = Class              #58           // org/assertj/core/api/AbstractDoubleAssert\n+   #57 = NameAndType        #59:#60       // isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #58 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n+   #59 = Utf8               isCloseTo\n+   #60 = Utf8               (DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #61 = Float              -1.0f\n+   #62 = Double             -1.0d\n+   #64 = Methodref          #40.#65       // dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n+   #65 = NameAndType        #66:#67       // fromRelevanceScore:(D)D\n+   #66 = Utf8               fromRelevanceScore\n+   #67 = Utf8               (D)D\n+   #68 = Methodref          #56.#69       // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #69 = NameAndType        #70:#48       // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #70 = Utf8               isEqualTo\n+   #71 = Double             0.5d\n+   #73 = Class              #74           // org/assertj/core/api/WithAssertions\n+   #74 = Utf8               org/assertj/core/api/WithAssertions\n+   #75 = Utf8               Code\n+   #76 = Utf8               LineNumberTable\n+   #77 = Utf8               LocalVariableTable\n+   #78 = Utf8               this\n+   #79 = Utf8               Ldev/langchain4j/store/embedding/CosineSimilarityTest;\n+   #80 = Utf8               test_bad\n+   #81 = Utf8               embeddingA\n+   #82 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n+   #83 = Utf8               embeddingB\n+   #84 = Utf8               RuntimeVisibleAnnotations\n+   #85 = Utf8               Lorg/junit/jupiter/api/Test;\n+   #86 = Utf8               test_zeros\n+   #87 = Utf8               should_calculate_cosine_similarity\n+   #88 = Utf8               should_convert_relevance_score_into_cosine_similarity\n+   #89 = Utf8               lambda$test_bad$0\n+   #90 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n+   #91 = Utf8               Exceptions\n+   #92 = Class              #93           // java/lang/Throwable\n+   #93 = Utf8               java/lang/Throwable\n+   #94 = Utf8               SourceFile\n+   #95 = Utf8               CosineSimilarityTest.java\n+   #96 = Utf8               BootstrapMethods\n+   #97 = MethodHandle       6:#98         // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+   #98 = Methodref          #99.#100      // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+   #99 = Class              #101          // java/lang/invoke/LambdaMetafactory\n+  #100 = NameAndType        #102:#103     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #101 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #102 = Utf8               metafactory\n+  #103 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #104 = MethodType         #6            //  ()V\n+  #105 = MethodHandle       6:#106        // REF_invokeStatic dev/langchain4j/store/embedding/CosineSimilarityTest.lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #106 = Methodref          #16.#107      // dev/langchain4j/store/embedding/CosineSimilarityTest.lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #107 = NameAndType        #89:#90       // lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #108 = Utf8               InnerClasses\n+  #109 = Class              #110          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #110 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n+  #111 = Class              #112          // org/assertj/core/api/ThrowableAssert\n+  #112 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #113 = Utf8               ThrowingCallable\n+  #114 = Class              #115          // java/lang/invoke/MethodHandles$Lookup\n+  #115 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #116 = Class              #117          // java/lang/invoke/MethodHandles\n+  #117 = Utf8               java/lang/invoke/MethodHandles\n+  #118 = Utf8               Lookup\n {\n   dev.langchain4j.store.embedding.CosineSimilarityTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -154,15 +154,15 @@\n          8: iconst_1\n          9: fconst_1\n         10: fastore\n         11: dup\n         12: iconst_2\n         13: fconst_1\n         14: fastore\n-        15: invokestatic  #2                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        15: invokestatic  #7                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n         18: astore_1\n         19: iconst_4\n         20: newarray       float\n         22: dup\n         23: iconst_0\n         24: fconst_1\n         25: fastore\n@@ -174,25 +174,25 @@\n         31: iconst_2\n         32: fconst_1\n         33: fastore\n         34: dup\n         35: iconst_3\n         36: fconst_1\n         37: fastore\n-        38: invokestatic  #2                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        38: invokestatic  #7                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n         41: astore_2\n         42: aload_0\n-        43: ldc           #3                  // class java/lang/IllegalArgumentException\n-        45: invokevirtual #4                  // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        43: ldc           #13                 // class java/lang/IllegalArgumentException\n+        45: invokevirtual #15                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         48: aload_1\n         49: aload_2\n-        50: invokedynamic #5,  0              // InvokeDynamic #0:call:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        55: invokevirtual #6                  // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        58: ldc           #7                  // String Length of vector a (3) must be equal to the length of vector b (4)\n-        60: invokevirtual #8                  // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        50: invokedynamic #21,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        55: invokevirtual #25                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        58: ldc           #31                 // String Length of vector a (3) must be equal to the length of vector b (4)\n+        60: invokevirtual #33                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         63: pop\n         64: return\n       LineNumberTable:\n         line 12: 0\n         line 13: 19\n         line 15: 42\n         line 16: 55\n@@ -200,15 +200,15 @@\n         line 18: 64\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      65     0  this   Ldev/langchain4j/store/embedding/CosineSimilarityTest;\n            19      46     1 embeddingA   Ldev/langchain4j/data/embedding/Embedding;\n            42      23     2 embeddingB   Ldev/langchain4j/data/embedding/Embedding;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n \n   public void test_zeros();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=3, args_size=1\n@@ -222,15 +222,15 @@\n          8: iconst_1\n          9: fconst_0\n         10: fastore\n         11: dup\n         12: iconst_2\n         13: fconst_0\n         14: fastore\n-        15: invokestatic  #2                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        15: invokestatic  #7                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n         18: astore_1\n         19: iconst_3\n         20: newarray       float\n         22: dup\n         23: iconst_0\n         24: fconst_0\n         25: fastore\n@@ -238,39 +238,39 @@\n         27: iconst_1\n         28: fconst_0\n         29: fastore\n         30: dup\n         31: iconst_2\n         32: fconst_0\n         33: fastore\n-        34: invokestatic  #2                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        34: invokestatic  #7                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n         37: astore_2\n         38: aload_0\n         39: aload_1\n         40: aload_2\n-        41: invokestatic  #9                  // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n-        44: invokevirtual #10                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        41: invokestatic  #39                 // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+        44: invokevirtual #45                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         47: dconst_0\n         48: dconst_1\n-        49: invokestatic  #11                 // Method org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n-        52: invokevirtual #12                 // Method org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        49: invokestatic  #49                 // Method org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n+        52: invokevirtual #55                 // Method org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n         55: pop\n         56: return\n       LineNumberTable:\n         line 22: 0\n         line 23: 19\n         line 25: 38\n         line 26: 56\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      57     0  this   Ldev/langchain4j/store/embedding/CosineSimilarityTest;\n            19      38     1 embeddingA   Ldev/langchain4j/data/embedding/Embedding;\n            38      19     2 embeddingB   Ldev/langchain4j/data/embedding/Embedding;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n \n   void should_calculate_cosine_similarity();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=5, locals=3, args_size=1\n@@ -278,135 +278,135 @@\n          1: newarray       float\n          3: dup\n          4: iconst_0\n          5: fconst_1\n          6: fastore\n          7: dup\n          8: iconst_1\n-         9: ldc           #13                 // float -1.0f\n+         9: ldc           #61                 // float -1.0f\n         11: fastore\n         12: dup\n         13: iconst_2\n         14: fconst_1\n         15: fastore\n-        16: invokestatic  #2                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        16: invokestatic  #7                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n         19: astore_1\n         20: iconst_3\n         21: newarray       float\n         23: dup\n         24: iconst_0\n-        25: ldc           #13                 // float -1.0f\n+        25: ldc           #61                 // float -1.0f\n         27: fastore\n         28: dup\n         29: iconst_1\n         30: fconst_1\n         31: fastore\n         32: dup\n         33: iconst_2\n-        34: ldc           #13                 // float -1.0f\n+        34: ldc           #61                 // float -1.0f\n         36: fastore\n-        37: invokestatic  #2                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        37: invokestatic  #7                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n         40: astore_2\n         41: aload_0\n         42: aload_1\n         43: aload_1\n-        44: invokestatic  #9                  // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n-        47: invokevirtual #10                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        44: invokestatic  #39                 // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+        47: invokevirtual #45                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         50: dconst_1\n         51: dconst_1\n-        52: invokestatic  #11                 // Method org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n-        55: invokevirtual #12                 // Method org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        52: invokestatic  #49                 // Method org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n+        55: invokevirtual #55                 // Method org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n         58: pop\n         59: aload_0\n         60: aload_1\n         61: aload_2\n-        62: invokestatic  #9                  // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n-        65: invokevirtual #10                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-        68: ldc2_w        #14                 // double -1.0d\n+        62: invokestatic  #39                 // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+        65: invokevirtual #45                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        68: ldc2_w        #62                 // double -1.0d\n         71: dconst_1\n-        72: invokestatic  #11                 // Method org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n-        75: invokevirtual #12                 // Method org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        72: invokestatic  #49                 // Method org/assertj/core/data/Percentage.withPercentage:(D)Lorg/assertj/core/data/Percentage;\n+        75: invokevirtual #55                 // Method org/assertj/core/api/AbstractDoubleAssert.isCloseTo:(DLorg/assertj/core/data/Percentage;)Lorg/assertj/core/api/AbstractDoubleAssert;\n         78: pop\n         79: return\n       LineNumberTable:\n         line 30: 0\n         line 31: 20\n         line 33: 41\n         line 34: 59\n         line 35: 79\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      80     0  this   Ldev/langchain4j/store/embedding/CosineSimilarityTest;\n            20      60     1 embeddingA   Ldev/langchain4j/data/embedding/Embedding;\n            41      39     2 embeddingB   Ldev/langchain4j/data/embedding/Embedding;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n \n   void should_convert_relevance_score_into_cosine_similarity();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n          1: dconst_0\n-         2: invokestatic  #16                 // Method dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n-         5: invokevirtual #10                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-         8: ldc2_w        #14                 // double -1.0d\n-        11: invokevirtual #17                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+         2: invokestatic  #64                 // Method dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n+         5: invokevirtual #45                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+         8: ldc2_w        #62                 // double -1.0d\n+        11: invokevirtual #68                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         14: pop\n         15: aload_0\n-        16: ldc2_w        #18                 // double 0.5d\n-        19: invokestatic  #16                 // Method dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n-        22: invokevirtual #10                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        16: ldc2_w        #71                 // double 0.5d\n+        19: invokestatic  #64                 // Method dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n+        22: invokevirtual #45                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         25: dconst_0\n-        26: invokevirtual #17                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        26: invokevirtual #68                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         29: pop\n         30: aload_0\n         31: dconst_1\n-        32: invokestatic  #16                 // Method dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n-        35: invokevirtual #10                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        32: invokestatic  #64                 // Method dev/langchain4j/store/embedding/CosineSimilarity.fromRelevanceScore:(D)D\n+        35: invokevirtual #45                 // Method assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         38: dconst_1\n-        39: invokevirtual #17                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        39: invokevirtual #68                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         42: pop\n         43: return\n       LineNumberTable:\n         line 39: 0\n         line 40: 15\n         line 41: 30\n         line 42: 43\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      44     0  this   Ldev/langchain4j/store/embedding/CosineSimilarityTest;\n     RuntimeVisibleAnnotations:\n-      0: #35()\n+      0: #85()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test_bad$0(dev.langchain4j.data.embedding.Embedding, dev.langchain4j.data.embedding.Embedding) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokestatic  #9                  // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n+         2: invokestatic  #39                 // Method dev/langchain4j/store/embedding/CosineSimilarity.between:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)D\n          5: pop2\n          6: return\n       LineNumberTable:\n         line 16: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0 embeddingA   Ldev/langchain4j/data/embedding/Embedding;\n             0       7     1 embeddingB   Ldev/langchain4j/data/embedding/Embedding;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"CosineSimilarityTest.java\"\n-InnerClasses:\n-  public static #82= #81 of #108;         // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #113= #112 of #116; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #51 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #97 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #52 ()V\n-      #53 REF_invokeStatic dev/langchain4j/store/embedding/CosineSimilarityTest.lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n-      #52 ()V\n+      #104 ()V\n+      #105 REF_invokeStatic dev/langchain4j/store/embedding/CosineSimilarityTest.lambda$test_bad$0:(Ldev/langchain4j/data/embedding/Embedding;Ldev/langchain4j/data/embedding/Embedding;)V\n+      #104 ()V\n+InnerClasses:\n+  public static #113= #109 of #111;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static final #118= #114 of #116; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingMatchTest.class", "source2": "dev/langchain4j/store/embedding/EmbeddingMatchTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,140 +1,140 @@\n-  SHA-256 checksum 61bb31feace455b4435bf78f1726652729e162b00cd42f51bc6dd2c76e8f92e4\n+  SHA-256 checksum fc0b5b68079c64751740caa4e66cb79c58cbcf1dc184e590c395a0279ded849f\n   Compiled from \"EmbeddingMatchTest.java\"\n class dev.langchain4j.store.embedding.EmbeddingMatchTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n   this_class: #37                         // dev/langchain4j/store/embedding/EmbeddingMatchTest\n-  super_class: #30                        // java/lang/Object\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 3, attributes: 1\n Constant pool:\n-    #1 = Methodref          #30.#58       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #59           // dev/langchain4j/store/embedding/EmbeddingMatch\n-    #3 = Double             0.5d\n-    #5 = Methodref          #60.#61       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-    #6 = String             #62           // embeddingId\n-    #7 = Float              3.5f\n-    #8 = Float              -2.0f\n-    #9 = Methodref          #63.#64       // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #10 = String             #65           // abc\n-   #11 = Methodref          #2.#66        // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #12 = Methodref          #2.#67        // dev/langchain4j/store/embedding/EmbeddingMatch.score:()Ljava/lang/Double;\n-   #13 = Methodref          #37.#68       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #14 = Methodref          #69.#70       // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #15 = Methodref          #2.#71        // dev/langchain4j/store/embedding/EmbeddingMatch.embeddingId:()Ljava/lang/String;\n-   #16 = Methodref          #37.#72       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #17 = Methodref          #73.#74       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #18 = Methodref          #2.#75        // dev/langchain4j/store/embedding/EmbeddingMatch.embedding:()Ldev/langchain4j/data/embedding/Embedding;\n-   #19 = Methodref          #63.#76       // dev/langchain4j/data/embedding/Embedding.vector:()[F\n-   #20 = Methodref          #37.#77       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #21 = Methodref          #78.#79       // org/assertj/core/api/AbstractFloatArrayAssert.contains:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #22 = Methodref          #2.#80        // dev/langchain4j/store/embedding/EmbeddingMatch.embedded:()Ljava/lang/Object;\n-   #23 = Class              #81           // java/lang/String\n-   #24 = Methodref          #37.#82       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #25 = String             #83           // EmbeddingMatch { score = 0.5, embedded = abc, embeddingId = embeddingId, embedding = Embedding { vector = [3.5, -2.0] } }\n-   #26 = Methodref          #28.#84       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #27 = Methodref          #28.#85       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #28 = Class              #86           // org/assertj/core/api/ObjectAssert\n-   #29 = Methodref          #28.#87       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #30 = Class              #88           // java/lang/Object\n-   #31 = Methodref          #28.#89       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #32 = Double             0.2d\n-   #34 = String             #90           // changed\n-   #35 = Float              8.5f\n-   #36 = String             #91           // xyz\n-   #37 = Class              #92           // dev/langchain4j/store/embedding/EmbeddingMatchTest\n-   #38 = Class              #93           // org/assertj/core/api/WithAssertions\n-   #39 = Utf8               <init>\n-   #40 = Utf8               ()V\n-   #41 = Utf8               Code\n-   #42 = Utf8               LineNumberTable\n-   #43 = Utf8               LocalVariableTable\n-   #44 = Utf8               this\n-   #45 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingMatchTest;\n-   #46 = Utf8               test\n-   #47 = Utf8               em\n-   #48 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingMatch;\n-   #49 = Utf8               LocalVariableTypeTable\n-   #50 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;\n-   #51 = Utf8               RuntimeVisibleAnnotations\n-   #52 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #53 = Utf8               test_equals_hash\n-   #54 = Utf8               em1\n-   #55 = Utf8               em2\n-   #56 = Utf8               SourceFile\n-   #57 = Utf8               EmbeddingMatchTest.java\n-   #58 = NameAndType        #39:#40       // \"<init>\":()V\n-   #59 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n-   #60 = Class              #94           // java/lang/Double\n-   #61 = NameAndType        #95:#96       // valueOf:(D)Ljava/lang/Double;\n-   #62 = Utf8               embeddingId\n-   #63 = Class              #97           // dev/langchain4j/data/embedding/Embedding\n-   #64 = NameAndType        #98:#99       // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #65 = Utf8               abc\n-   #66 = NameAndType        #39:#100      // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #67 = NameAndType        #101:#102     // score:()Ljava/lang/Double;\n-   #68 = NameAndType        #103:#104     // assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #69 = Class              #105          // org/assertj/core/api/AbstractDoubleAssert\n-   #70 = NameAndType        #106:#107     // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #71 = NameAndType        #62:#108      // embeddingId:()Ljava/lang/String;\n-   #72 = NameAndType        #103:#109     // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #73 = Class              #110          // org/assertj/core/api/AbstractStringAssert\n-   #74 = NameAndType        #106:#109     // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-   #75 = NameAndType        #111:#112     // embedding:()Ldev/langchain4j/data/embedding/Embedding;\n-   #76 = NameAndType        #113:#114     // vector:()[F\n-   #77 = NameAndType        #103:#115     // assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #78 = Class              #116          // org/assertj/core/api/AbstractFloatArrayAssert\n-   #79 = NameAndType        #117:#115     // contains:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-   #80 = NameAndType        #118:#119     // embedded:()Ljava/lang/Object;\n-   #81 = Utf8               java/lang/String\n-   #82 = NameAndType        #103:#120     // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-   #83 = Utf8               EmbeddingMatch { score = 0.5, embedded = abc, embeddingId = embeddingId, embedding = Embedding { vector = [3.5, -2.0] } }\n-   #84 = NameAndType        #121:#122     // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-   #85 = NameAndType        #106:#123     // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #86 = Utf8               org/assertj/core/api/ObjectAssert\n-   #87 = NameAndType        #124:#123     // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #88 = Utf8               java/lang/Object\n-   #89 = NameAndType        #125:#123     // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-   #90 = Utf8               changed\n-   #91 = Utf8               xyz\n-   #92 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatchTest\n-   #93 = Utf8               org/assertj/core/api/WithAssertions\n-   #94 = Utf8               java/lang/Double\n-   #95 = Utf8               valueOf\n-   #96 = Utf8               (D)Ljava/lang/Double;\n-   #97 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #98 = Utf8               from\n-   #99 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n-  #100 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #101 = Utf8               score\n-  #102 = Utf8               ()Ljava/lang/Double;\n-  #103 = Utf8               assertThat\n-  #104 = Utf8               (Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #105 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n-  #106 = Utf8               isEqualTo\n-  #107 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #108 = Utf8               ()Ljava/lang/String;\n-  #109 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-  #110 = Utf8               org/assertj/core/api/AbstractStringAssert\n-  #111 = Utf8               embedding\n-  #112 = Utf8               ()Ldev/langchain4j/data/embedding/Embedding;\n-  #113 = Utf8               vector\n-  #114 = Utf8               ()[F\n-  #115 = Utf8               ([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n-  #116 = Utf8               org/assertj/core/api/AbstractFloatArrayAssert\n-  #117 = Utf8               contains\n-  #118 = Utf8               embedded\n-  #119 = Utf8               ()Ljava/lang/Object;\n-  #120 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-  #121 = Utf8               hasToString\n-  #122 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n-  #123 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-  #124 = Utf8               isNotEqualTo\n-  #125 = Utf8               hasSameHashCodeAs\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/store/embedding/EmbeddingMatch\n+    #8 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n+    #9 = Double             0.5d\n+   #11 = Methodref          #12.#13       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #12 = Class              #14           // java/lang/Double\n+   #13 = NameAndType        #15:#16       // valueOf:(D)Ljava/lang/Double;\n+   #14 = Utf8               java/lang/Double\n+   #15 = Utf8               valueOf\n+   #16 = Utf8               (D)Ljava/lang/Double;\n+   #17 = String             #18           // embeddingId\n+   #18 = Utf8               embeddingId\n+   #19 = Float              3.5f\n+   #20 = Float              -2.0f\n+   #21 = Methodref          #22.#23       // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #22 = Class              #24           // dev/langchain4j/data/embedding/Embedding\n+   #23 = NameAndType        #25:#26       // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #24 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #25 = Utf8               from\n+   #26 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #27 = String             #28           // abc\n+   #28 = Utf8               abc\n+   #29 = Methodref          #7.#30        // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #30 = NameAndType        #5:#31        // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #31 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #32 = Methodref          #7.#33        // dev/langchain4j/store/embedding/EmbeddingMatch.score:()Ljava/lang/Double;\n+   #33 = NameAndType        #34:#35       // score:()Ljava/lang/Double;\n+   #34 = Utf8               score\n+   #35 = Utf8               ()Ljava/lang/Double;\n+   #36 = Methodref          #37.#38       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #37 = Class              #39           // dev/langchain4j/store/embedding/EmbeddingMatchTest\n+   #38 = NameAndType        #40:#41       // assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #39 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatchTest\n+   #40 = Utf8               assertThat\n+   #41 = Utf8               (Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #42 = Methodref          #43.#44       // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #43 = Class              #45           // org/assertj/core/api/AbstractDoubleAssert\n+   #44 = NameAndType        #46:#47       // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #45 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n+   #46 = Utf8               isEqualTo\n+   #47 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+   #48 = Methodref          #7.#49        // dev/langchain4j/store/embedding/EmbeddingMatch.embeddingId:()Ljava/lang/String;\n+   #49 = NameAndType        #18:#50       // embeddingId:()Ljava/lang/String;\n+   #50 = Utf8               ()Ljava/lang/String;\n+   #51 = Methodref          #37.#52       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #52 = NameAndType        #40:#53       // assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #53 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #54 = Methodref          #55.#56       // org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #55 = Class              #57           // org/assertj/core/api/AbstractStringAssert\n+   #56 = NameAndType        #46:#53       // isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+   #57 = Utf8               org/assertj/core/api/AbstractStringAssert\n+   #58 = Methodref          #7.#59        // dev/langchain4j/store/embedding/EmbeddingMatch.embedding:()Ldev/langchain4j/data/embedding/Embedding;\n+   #59 = NameAndType        #60:#61       // embedding:()Ldev/langchain4j/data/embedding/Embedding;\n+   #60 = Utf8               embedding\n+   #61 = Utf8               ()Ldev/langchain4j/data/embedding/Embedding;\n+   #62 = Methodref          #22.#63       // dev/langchain4j/data/embedding/Embedding.vector:()[F\n+   #63 = NameAndType        #64:#65       // vector:()[F\n+   #64 = Utf8               vector\n+   #65 = Utf8               ()[F\n+   #66 = Methodref          #37.#67       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #67 = NameAndType        #40:#68       // assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #68 = Utf8               ([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #69 = Methodref          #70.#71       // org/assertj/core/api/AbstractFloatArrayAssert.contains:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #70 = Class              #72           // org/assertj/core/api/AbstractFloatArrayAssert\n+   #71 = NameAndType        #73:#68       // contains:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+   #72 = Utf8               org/assertj/core/api/AbstractFloatArrayAssert\n+   #73 = Utf8               contains\n+   #74 = Methodref          #7.#75        // dev/langchain4j/store/embedding/EmbeddingMatch.embedded:()Ljava/lang/Object;\n+   #75 = NameAndType        #76:#77       // embedded:()Ljava/lang/Object;\n+   #76 = Utf8               embedded\n+   #77 = Utf8               ()Ljava/lang/Object;\n+   #78 = Class              #79           // java/lang/String\n+   #79 = Utf8               java/lang/String\n+   #80 = Methodref          #37.#81       // dev/langchain4j/store/embedding/EmbeddingMatchTest.assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #81 = NameAndType        #40:#82       // assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #82 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+   #83 = String             #84           // EmbeddingMatch { score = 0.5, embedded = abc, embeddingId = embeddingId, embedding = Embedding { vector = [3.5, -2.0] } }\n+   #84 = Utf8               EmbeddingMatch { score = 0.5, embedded = abc, embeddingId = embeddingId, embedding = Embedding { vector = [3.5, -2.0] } }\n+   #85 = Methodref          #86.#87       // org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #86 = Class              #88           // org/assertj/core/api/ObjectAssert\n+   #87 = NameAndType        #89:#90       // hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #88 = Utf8               org/assertj/core/api/ObjectAssert\n+   #89 = Utf8               hasToString\n+   #90 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+   #91 = Methodref          #86.#92       // org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #92 = NameAndType        #46:#93       // isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #93 = Utf8               (Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #94 = Methodref          #86.#95       // org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #95 = NameAndType        #96:#93       // isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #96 = Utf8               isNotEqualTo\n+   #97 = Methodref          #86.#98       // org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #98 = NameAndType        #99:#93       // hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+   #99 = Utf8               hasSameHashCodeAs\n+  #100 = Double             0.2d\n+  #102 = String             #103          // changed\n+  #103 = Utf8               changed\n+  #104 = Float              8.5f\n+  #105 = String             #106          // xyz\n+  #106 = Utf8               xyz\n+  #107 = Class              #108          // org/assertj/core/api/WithAssertions\n+  #108 = Utf8               org/assertj/core/api/WithAssertions\n+  #109 = Utf8               Code\n+  #110 = Utf8               LineNumberTable\n+  #111 = Utf8               LocalVariableTable\n+  #112 = Utf8               this\n+  #113 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingMatchTest;\n+  #114 = Utf8               test\n+  #115 = Utf8               em\n+  #116 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingMatch;\n+  #117 = Utf8               LocalVariableTypeTable\n+  #118 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;\n+  #119 = Utf8               RuntimeVisibleAnnotations\n+  #120 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #121 = Utf8               test_equals_hash\n+  #122 = Utf8               em1\n+  #123 = Utf8               em2\n+  #124 = Utf8               SourceFile\n+  #125 = Utf8               EmbeddingMatchTest.java\n {\n   dev.langchain4j.store.embedding.EmbeddingMatchTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -147,77 +147,77 @@\n             0       5     0  this   Ldev/langchain4j/store/embedding/EmbeddingMatchTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=8, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+         0: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n          3: dup\n-         4: ldc2_w        #3                  // double 0.5d\n-         7: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        10: ldc           #6                  // String embeddingId\n+         4: ldc2_w        #9                  // double 0.5d\n+         7: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        10: ldc           #17                 // String embeddingId\n         12: iconst_2\n         13: newarray       float\n         15: dup\n         16: iconst_0\n-        17: ldc           #7                  // float 3.5f\n+        17: ldc           #19                 // float 3.5f\n         19: fastore\n         20: dup\n         21: iconst_1\n-        22: ldc           #8                  // float -2.0f\n+        22: ldc           #20                 // float -2.0f\n         24: fastore\n-        25: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-        28: ldc           #10                 // String abc\n-        30: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        25: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        28: ldc           #27                 // String abc\n+        30: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         33: astore_1\n         34: aload_0\n         35: aload_1\n-        36: invokevirtual #12                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.score:()Ljava/lang/Double;\n-        39: invokevirtual #13                 // Method assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n-        42: ldc2_w        #3                  // double 0.5d\n-        45: invokevirtual #14                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        36: invokevirtual #32                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.score:()Ljava/lang/Double;\n+        39: invokevirtual #36                 // Method assertThat:(Ljava/lang/Double;)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        42: ldc2_w        #9                  // double 0.5d\n+        45: invokevirtual #42                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         48: pop\n         49: aload_0\n         50: aload_1\n-        51: invokevirtual #15                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.embeddingId:()Ljava/lang/String;\n-        54: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-        57: ldc           #6                  // String embeddingId\n-        59: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        51: invokevirtual #48                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.embeddingId:()Ljava/lang/String;\n+        54: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        57: ldc           #17                 // String embeddingId\n+        59: invokevirtual #54                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n         62: pop\n         63: aload_0\n         64: aload_1\n-        65: invokevirtual #18                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.embedding:()Ldev/langchain4j/data/embedding/Embedding;\n-        68: invokevirtual #19                 // Method dev/langchain4j/data/embedding/Embedding.vector:()[F\n-        71: invokevirtual #20                 // Method assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+        65: invokevirtual #58                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.embedding:()Ldev/langchain4j/data/embedding/Embedding;\n+        68: invokevirtual #62                 // Method dev/langchain4j/data/embedding/Embedding.vector:()[F\n+        71: invokevirtual #66                 // Method assertThat:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n         74: iconst_2\n         75: newarray       float\n         77: dup\n         78: iconst_0\n-        79: ldc           #7                  // float 3.5f\n+        79: ldc           #19                 // float 3.5f\n         81: fastore\n         82: dup\n         83: iconst_1\n-        84: ldc           #8                  // float -2.0f\n+        84: ldc           #20                 // float -2.0f\n         86: fastore\n-        87: invokevirtual #21                 // Method org/assertj/core/api/AbstractFloatArrayAssert.contains:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n+        87: invokevirtual #69                 // Method org/assertj/core/api/AbstractFloatArrayAssert.contains:([F)Lorg/assertj/core/api/AbstractFloatArrayAssert;\n         90: pop\n         91: aload_0\n         92: aload_1\n-        93: invokevirtual #22                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.embedded:()Ljava/lang/Object;\n-        96: checkcast     #23                 // class java/lang/String\n-        99: invokevirtual #16                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n-       102: ldc           #10                 // String abc\n-       104: invokevirtual #17                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+        93: invokevirtual #74                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.embedded:()Ljava/lang/Object;\n+        96: checkcast     #78                 // class java/lang/String\n+        99: invokevirtual #51                 // Method assertThat:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n+       102: ldc           #27                 // String abc\n+       104: invokevirtual #54                 // Method org/assertj/core/api/AbstractStringAssert.isEqualTo:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractStringAssert;\n        107: pop\n        108: aload_0\n        109: aload_1\n-       110: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n-       113: ldc           #25                 // String EmbeddingMatch { score = 0.5, embedded = abc, embeddingId = embeddingId, embedding = Embedding { vector = [3.5, -2.0] } }\n-       115: invokevirtual #26                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n+       110: invokevirtual #80                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       113: ldc           #83                 // String EmbeddingMatch { score = 0.5, embedded = abc, embeddingId = embeddingId, embedding = Embedding { vector = [3.5, -2.0] } }\n+       115: invokevirtual #85                 // Method org/assertj/core/api/ObjectAssert.hasToString:(Ljava/lang/String;)Lorg/assertj/core/api/AbstractAssert;\n        118: pop\n        119: return\n       LineNumberTable:\n         line 10: 0\n         line 11: 7\n         line 13: 34\n         line 14: 49\n@@ -229,171 +229,171 @@\n         Start  Length  Slot  Name   Signature\n             0     120     0  this   Ldev/langchain4j/store/embedding/EmbeddingMatchTest;\n            34      86     1    em   Ldev/langchain4j/store/embedding/EmbeddingMatch;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            34      86     1    em   Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #52()\n+      0: #120()\n         org.junit.jupiter.api.Test\n \n   public void test_equals_hash();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=9, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+         0: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n          3: dup\n-         4: ldc2_w        #3                  // double 0.5d\n-         7: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        10: ldc           #6                  // String embeddingId\n+         4: ldc2_w        #9                  // double 0.5d\n+         7: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        10: ldc           #17                 // String embeddingId\n         12: iconst_2\n         13: newarray       float\n         15: dup\n         16: iconst_0\n-        17: ldc           #7                  // float 3.5f\n+        17: ldc           #19                 // float 3.5f\n         19: fastore\n         20: dup\n         21: iconst_1\n-        22: ldc           #8                  // float -2.0f\n+        22: ldc           #20                 // float -2.0f\n         24: fastore\n-        25: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-        28: ldc           #10                 // String abc\n-        30: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        25: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        28: ldc           #27                 // String abc\n+        30: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         33: astore_1\n-        34: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        34: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n         37: dup\n-        38: ldc2_w        #3                  // double 0.5d\n-        41: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        44: ldc           #6                  // String embeddingId\n+        38: ldc2_w        #9                  // double 0.5d\n+        41: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        44: ldc           #17                 // String embeddingId\n         46: iconst_2\n         47: newarray       float\n         49: dup\n         50: iconst_0\n-        51: ldc           #7                  // float 3.5f\n+        51: ldc           #19                 // float 3.5f\n         53: fastore\n         54: dup\n         55: iconst_1\n-        56: ldc           #8                  // float -2.0f\n+        56: ldc           #20                 // float -2.0f\n         58: fastore\n-        59: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-        62: ldc           #10                 // String abc\n-        64: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        59: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+        62: ldc           #27                 // String abc\n+        64: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         67: astore_2\n         68: aload_0\n         69: aload_1\n-        70: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+        70: invokevirtual #80                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n         73: aload_1\n-        74: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        77: checkcast     #28                 // class org/assertj/core/api/ObjectAssert\n+        74: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        77: checkcast     #86                 // class org/assertj/core/api/ObjectAssert\n         80: aconst_null\n-        81: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        84: checkcast     #28                 // class org/assertj/core/api/ObjectAssert\n-        87: new           #30                 // class java/lang/Object\n+        81: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        84: checkcast     #86                 // class org/assertj/core/api/ObjectAssert\n+        87: new           #2                  // class java/lang/Object\n         90: dup\n         91: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n-        94: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-        97: checkcast     #28                 // class org/assertj/core/api/ObjectAssert\n+        94: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+        97: checkcast     #86                 // class org/assertj/core/api/ObjectAssert\n        100: aload_2\n-       101: invokevirtual #27                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n-       104: checkcast     #28                 // class org/assertj/core/api/ObjectAssert\n+       101: invokevirtual #91                 // Method org/assertj/core/api/ObjectAssert.isEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       104: checkcast     #86                 // class org/assertj/core/api/ObjectAssert\n        107: aload_2\n-       108: invokevirtual #31                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       108: invokevirtual #97                 // Method org/assertj/core/api/ObjectAssert.hasSameHashCodeAs:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        111: pop\n        112: aload_0\n-       113: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+       113: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n        116: dup\n-       117: ldc2_w        #32                 // double 0.2d\n-       120: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       123: ldc           #6                  // String embeddingId\n+       117: ldc2_w        #100                // double 0.2d\n+       120: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       123: ldc           #17                 // String embeddingId\n        125: iconst_2\n        126: newarray       float\n        128: dup\n        129: iconst_0\n-       130: ldc           #7                  // float 3.5f\n+       130: ldc           #19                 // float 3.5f\n        132: fastore\n        133: dup\n        134: iconst_1\n-       135: ldc           #8                  // float -2.0f\n+       135: ldc           #20                 // float -2.0f\n        137: fastore\n-       138: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-       141: ldc           #10                 // String abc\n-       143: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-       146: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       138: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       141: ldc           #27                 // String abc\n+       143: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+       146: invokevirtual #80                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        149: aload_1\n-       150: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       150: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        153: pop\n        154: aload_0\n-       155: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+       155: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n        158: dup\n-       159: ldc2_w        #3                  // double 0.5d\n-       162: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       165: ldc           #34                 // String changed\n+       159: ldc2_w        #9                  // double 0.5d\n+       162: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       165: ldc           #102                // String changed\n        167: iconst_2\n        168: newarray       float\n        170: dup\n        171: iconst_0\n-       172: ldc           #7                  // float 3.5f\n+       172: ldc           #19                 // float 3.5f\n        174: fastore\n        175: dup\n        176: iconst_1\n-       177: ldc           #8                  // float -2.0f\n+       177: ldc           #20                 // float -2.0f\n        179: fastore\n-       180: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-       183: ldc           #10                 // String abc\n-       185: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-       188: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       180: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       183: ldc           #27                 // String abc\n+       185: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+       188: invokevirtual #80                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        191: aload_1\n-       192: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       192: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        195: pop\n        196: aload_0\n-       197: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+       197: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n        200: dup\n-       201: ldc2_w        #3                  // double 0.5d\n-       204: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       207: ldc           #6                  // String embeddingId\n+       201: ldc2_w        #9                  // double 0.5d\n+       204: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       207: ldc           #17                 // String embeddingId\n        209: iconst_2\n        210: newarray       float\n        212: dup\n        213: iconst_0\n-       214: ldc           #35                 // float 8.5f\n+       214: ldc           #104                // float 8.5f\n        216: fastore\n        217: dup\n        218: iconst_1\n-       219: ldc           #8                  // float -2.0f\n+       219: ldc           #20                 // float -2.0f\n        221: fastore\n-       222: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-       225: ldc           #10                 // String abc\n-       227: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-       230: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       222: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       225: ldc           #27                 // String abc\n+       227: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+       230: invokevirtual #80                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        233: aload_1\n-       234: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       234: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        237: pop\n        238: aload_0\n-       239: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+       239: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n        242: dup\n-       243: ldc2_w        #3                  // double 0.5d\n-       246: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       249: ldc           #6                  // String embeddingId\n+       243: ldc2_w        #9                  // double 0.5d\n+       246: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       249: ldc           #17                 // String embeddingId\n        251: iconst_2\n        252: newarray       float\n        254: dup\n        255: iconst_0\n-       256: ldc           #7                  // float 3.5f\n+       256: ldc           #19                 // float 3.5f\n        258: fastore\n        259: dup\n        260: iconst_1\n-       261: ldc           #8                  // float -2.0f\n+       261: ldc           #20                 // float -2.0f\n        263: fastore\n-       264: invokestatic  #9                  // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-       267: ldc           #36                 // String xyz\n-       269: invokespecial #11                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-       272: invokevirtual #24                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n+       264: invokestatic  #21                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       267: ldc           #105                // String xyz\n+       269: invokespecial #29                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+       272: invokevirtual #80                 // Method assertThat:(Ljava/lang/Object;)Lorg/assertj/core/api/ObjectAssert;\n        275: aload_1\n-       276: invokevirtual #29                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n+       276: invokevirtual #94                 // Method org/assertj/core/api/ObjectAssert.isNotEqualTo:(Ljava/lang/Object;)Lorg/assertj/core/api/AbstractAssert;\n        279: pop\n        280: return\n       LineNumberTable:\n         line 23: 0\n         line 24: 7\n         line 25: 34\n         line 26: 41\n@@ -426,11 +426,11 @@\n            34     247     1   em1   Ldev/langchain4j/store/embedding/EmbeddingMatch;\n            68     213     2   em2   Ldev/langchain4j/store/embedding/EmbeddingMatch;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n            34     247     1   em1   Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;\n            68     213     2   em2   Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #52()\n+      0: #120()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"EmbeddingMatchTest.java\"\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingStoreIT.class", "source2": "dev/langchain4j/store/embedding/EmbeddingStoreIT.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -23,10 +23,10 @@\n         this.awaitUntilPersisted();\n         final List<EmbeddingMatch<TextSegment>> relevant = this.embeddingStore().findRelevant(embedding, 1);\n         Assertions.assertThat((List)relevant).hasSize(1);\n         final EmbeddingMatch<TextSegment> match = (EmbeddingMatch<TextSegment>)relevant.get(0);\n         Assertions.assertThat(match.score()).isCloseTo(1.0, Percentage.withPercentage(1.0));\n         Assertions.assertThat(match.embeddingId()).isEqualTo(id);\n         Assertions.assertThat((Object)match.embedding()).isEqualTo((Object)embedding);\n-        Assertions.assertThat(match.embedded()).isEqualTo((Object)segment);\n+        Assertions.assertThat((Object)match.embedded()).isEqualTo((Object)segment);\n     }\n }\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest.class", "source2": "dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,212 +1,212 @@\n-  SHA-256 checksum e17ea7882211be542009f13a413fbeefae0c86c8f1e516a6da855381408d3e3a\n+  SHA-256 checksum 422215a8f7616525c4fa78640dc6d6b8d1f429da2f0b0a03233e92e6f3ee49bb\n   Compiled from \"EmbeddingStoreIngestorTest.java\"\n class dev.langchain4j.store.embedding.EmbeddingStoreIngestorTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #56                         // dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest\n-  super_class: #52                        // java/lang/Object\n+  this_class: #167                        // dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-    #1 = Methodref          #52.#89       // java/lang/Object.\"<init>\":()V\n-    #2 = String             #90           // First sentence.\n-    #3 = Methodref          #14.#91       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-    #4 = String             #92           // Second sentence. Third sentence.\n-    #5 = String             #93           // Fourth sentence.\n-    #6 = String             #94           // Fifth sentence.\n-    #7 = String             #95           // Sixth Sentence\n-    #8 = Class              #96           // dev/langchain4j/data/document/DocumentTransformer\n-    #9 = Methodref          #97.#98       // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-   #10 = Methodref          #99.#100      // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #11 = InterfaceMethodref #8.#101       // dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-   #12 = Methodref          #97.#102      // org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-   #13 = InterfaceMethodref #103.#104     // org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-   #14 = Class              #105          // dev/langchain4j/data/document/Document\n-   #15 = Methodref          #106.#107     // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-   #16 = Class              #108          // dev/langchain4j/data/document/DocumentSplitter\n-   #17 = InterfaceMethodref #16.#109      // dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n-   #18 = Methodref          #19.#110      // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-   #19 = Class              #111          // dev/langchain4j/data/segment/TextSegment\n-   #20 = String             #112          // Second sentence.\n-   #21 = String             #113          // Third sentence.\n-   #22 = String             #114          // Sixth sentence.\n-   #23 = Class              #115          // dev/langchain4j/data/segment/TextSegmentTransformer\n-   #24 = InterfaceMethodref #23.#101      // dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-   #25 = String             #116          // Transformed first sentence.\n-   #26 = String             #117          // Transformed second sentence.\n-   #27 = String             #118          // Transformed third sentence.\n-   #28 = String             #119          // Transformed fourth sentence.\n-   #29 = String             #120          // Transformed fifth sentence.\n-   #30 = String             #121          // Transformed sixth sentence.\n-   #31 = Class              #122          // dev/langchain4j/model/embedding/EmbeddingModel\n-   #32 = InterfaceMethodref #31.#123      // dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #33 = Methodref          #35.#124      // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-   #34 = Methodref          #125.#126     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #35 = Class              #127          // dev/langchain4j/data/embedding/Embedding\n-   #36 = Float              3.0f\n-   #37 = Float              4.0f\n-   #38 = Float              5.0f\n-   #39 = Float              6.0f\n-   #40 = Class              #128          // dev/langchain4j/store/embedding/EmbeddingStore\n-   #41 = Methodref          #129.#130     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.builder:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-   #42 = Methodref          #131.#132     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentTransformer:(Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-   #43 = Methodref          #131.#133     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentSplitter:(Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-   #44 = Methodref          #131.#134     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.textSegmentTransformer:(Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-   #45 = Methodref          #131.#135     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-   #46 = Methodref          #131.#136     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-   #47 = Methodref          #131.#137     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.build:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n-   #48 = Methodref          #129.#138     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ldev/langchain4j/data/document/Document;)V\n-   #49 = Methodref          #129.#139     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:([Ldev/langchain4j/data/document/Document;)V\n-   #50 = Methodref          #129.#140     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ljava/util/List;)V\n-   #51 = Methodref          #97.#141      // org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #52 = Class              #142          // java/lang/Object\n-   #53 = Methodref          #97.#143      // org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-   #54 = Methodref          #35.#144      // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-   #55 = InterfaceMethodref #40.#145      // dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n-   #56 = Class              #146          // dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest\n-   #57 = Utf8               <init>\n-   #58 = Utf8               ()V\n-   #59 = Utf8               Code\n-   #60 = Utf8               LineNumberTable\n-   #61 = Utf8               LocalVariableTable\n-   #62 = Utf8               this\n-   #63 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreIngestorTest;\n-   #64 = Utf8               should_extract_text_then_split_into_segments_then_embed_them_and_store_in_embedding_store\n-   #65 = Utf8               firstDocument\n-   #66 = Utf8               Ldev/langchain4j/data/document/Document;\n-   #67 = Utf8               secondDocument\n-   #68 = Utf8               thirdDocument\n-   #69 = Utf8               fourthDocument\n-   #70 = Utf8               fifthDocument\n-   #71 = Utf8               documentTransformer\n-   #72 = Utf8               Ldev/langchain4j/data/document/DocumentTransformer;\n-   #73 = Utf8               documentSplitter\n-   #74 = Utf8               Ldev/langchain4j/data/document/DocumentSplitter;\n-   #75 = Utf8               textSegmentTransformer\n-   #76 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformer;\n-   #77 = Utf8               embeddingModel\n-   #78 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModel;\n-   #79 = Utf8               embeddingStore\n-   #80 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore;\n-   #81 = Utf8               ingestor\n-   #82 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n-   #83 = Utf8               LocalVariableTypeTable\n-   #84 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n-   #85 = Utf8               RuntimeVisibleAnnotations\n-   #86 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #87 = Utf8               SourceFile\n-   #88 = Utf8               EmbeddingStoreIngestorTest.java\n-   #89 = NameAndType        #57:#58       // \"<init>\":()V\n-   #90 = Utf8               First sentence.\n-   #91 = NameAndType        #147:#148     // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-   #92 = Utf8               Second sentence. Third sentence.\n-   #93 = Utf8               Fourth sentence.\n-   #94 = Utf8               Fifth sentence.\n-   #95 = Utf8               Sixth Sentence\n-   #96 = Utf8               dev/langchain4j/data/document/DocumentTransformer\n-   #97 = Class              #149          // org/mockito/Mockito\n-   #98 = NameAndType        #150:#151     // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-   #99 = Class              #152          // java/util/Collections\n-  #100 = NameAndType        #153:#154     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #101 = NameAndType        #155:#156     // transformAll:(Ljava/util/List;)Ljava/util/List;\n-  #102 = NameAndType        #157:#158     // when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #103 = Class              #159          // org/mockito/stubbing/OngoingStubbing\n-  #104 = NameAndType        #160:#158     // thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #105 = Utf8               dev/langchain4j/data/document/Document\n-  #106 = Class              #161          // java/util/Arrays\n-  #107 = NameAndType        #162:#163     // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #108 = Utf8               dev/langchain4j/data/document/DocumentSplitter\n-  #109 = NameAndType        #164:#156     // splitAll:(Ljava/util/List;)Ljava/util/List;\n-  #110 = NameAndType        #165:#166     // textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #111 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #112 = Utf8               Second sentence.\n-  #113 = Utf8               Third sentence.\n-  #114 = Utf8               Sixth sentence.\n-  #115 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformer\n-  #116 = Utf8               Transformed first sentence.\n-  #117 = Utf8               Transformed second sentence.\n-  #118 = Utf8               Transformed third sentence.\n-  #119 = Utf8               Transformed fourth sentence.\n-  #120 = Utf8               Transformed fifth sentence.\n-  #121 = Utf8               Transformed sixth sentence.\n-  #122 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n-  #123 = NameAndType        #167:#168     // embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #124 = NameAndType        #147:#169     // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-  #125 = Class              #170          // dev/langchain4j/model/output/Response\n-  #126 = NameAndType        #147:#171     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #127 = Utf8               dev/langchain4j/data/embedding/Embedding\n-  #128 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n-  #129 = Class              #172          // dev/langchain4j/store/embedding/EmbeddingStoreIngestor\n-  #130 = NameAndType        #173:#176     // builder:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #131 = Class              #177          // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder\n-  #132 = NameAndType        #71:#178      // documentTransformer:(Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #133 = NameAndType        #73:#179      // documentSplitter:(Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #134 = NameAndType        #75:#180      // textSegmentTransformer:(Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #135 = NameAndType        #77:#181      // embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #136 = NameAndType        #79:#182      // embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #137 = NameAndType        #183:#184     // build:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n-  #138 = NameAndType        #185:#186     // ingest:(Ldev/langchain4j/data/document/Document;)V\n-  #139 = NameAndType        #185:#187     // ingest:([Ldev/langchain4j/data/document/Document;)V\n-  #140 = NameAndType        #185:#188     // ingest:(Ljava/util/List;)V\n-  #141 = NameAndType        #189:#190     // verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #142 = Utf8               java/lang/Object\n-  #143 = NameAndType        #191:#192     // verifyNoMoreInteractions:([Ljava/lang/Object;)V\n-  #144 = NameAndType        #57:#193      // \"<init>\":([F)V\n-  #145 = NameAndType        #194:#195     // addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n-  #146 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest\n-  #147 = Utf8               from\n-  #148 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n-  #149 = Utf8               org/mockito/Mockito\n-  #150 = Utf8               mock\n-  #151 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n-  #152 = Utf8               java/util/Collections\n-  #153 = Utf8               singletonList\n-  #154 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #155 = Utf8               transformAll\n-  #156 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #157 = Utf8               when\n-  #158 = Utf8               (Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-  #159 = Utf8               org/mockito/stubbing/OngoingStubbing\n-  #160 = Utf8               thenReturn\n-  #161 = Utf8               java/util/Arrays\n-  #162 = Utf8               asList\n-  #163 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #164 = Utf8               splitAll\n-  #165 = Utf8               textSegment\n-  #166 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-  #167 = Utf8               embedAll\n-  #168 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #169 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n-  #170 = Utf8               dev/langchain4j/model/output/Response\n-  #171 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #172 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreIngestor\n-  #173 = Utf8               builder\n-  #174 = Utf8               Builder\n-  #175 = Utf8               InnerClasses\n-  #176 = Utf8               ()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #177 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder\n-  #178 = Utf8               (Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #179 = Utf8               (Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #180 = Utf8               (Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #181 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #182 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-  #183 = Utf8               build\n-  #184 = Utf8               ()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n-  #185 = Utf8               ingest\n-  #186 = Utf8               (Ldev/langchain4j/data/document/Document;)V\n-  #187 = Utf8               ([Ldev/langchain4j/data/document/Document;)V\n-  #188 = Utf8               (Ljava/util/List;)V\n-  #189 = Utf8               verify\n-  #190 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #191 = Utf8               verifyNoMoreInteractions\n-  #192 = Utf8               ([Ljava/lang/Object;)V\n-  #193 = Utf8               ([F)V\n-  #194 = Utf8               addAll\n-  #195 = Utf8               (Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // First sentence.\n+    #8 = Utf8               First sentence.\n+    #9 = Methodref          #10.#11       // dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #10 = Class              #12           // dev/langchain4j/data/document/Document\n+   #11 = NameAndType        #13:#14       // from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #12 = Utf8               dev/langchain4j/data/document/Document\n+   #13 = Utf8               from\n+   #14 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+   #15 = String             #16           // Second sentence. Third sentence.\n+   #16 = Utf8               Second sentence. Third sentence.\n+   #17 = String             #18           // Fourth sentence.\n+   #18 = Utf8               Fourth sentence.\n+   #19 = String             #20           // Fifth sentence.\n+   #20 = Utf8               Fifth sentence.\n+   #21 = String             #22           // Sixth Sentence\n+   #22 = Utf8               Sixth Sentence\n+   #23 = Class              #24           // dev/langchain4j/data/document/DocumentTransformer\n+   #24 = Utf8               dev/langchain4j/data/document/DocumentTransformer\n+   #25 = Methodref          #26.#27       // org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+   #26 = Class              #28           // org/mockito/Mockito\n+   #27 = NameAndType        #29:#30       // mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+   #28 = Utf8               org/mockito/Mockito\n+   #29 = Utf8               mock\n+   #30 = Utf8               (Ljava/lang/Class;)Ljava/lang/Object;\n+   #31 = Methodref          #32.#33       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #32 = Class              #34           // java/util/Collections\n+   #33 = NameAndType        #35:#36       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #34 = Utf8               java/util/Collections\n+   #35 = Utf8               singletonList\n+   #36 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #37 = InterfaceMethodref #23.#38       // dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+   #38 = NameAndType        #39:#40       // transformAll:(Ljava/util/List;)Ljava/util/List;\n+   #39 = Utf8               transformAll\n+   #40 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+   #41 = Methodref          #26.#42       // org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #42 = NameAndType        #43:#44       // when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #43 = Utf8               when\n+   #44 = Utf8               (Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #45 = InterfaceMethodref #46.#47       // org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #46 = Class              #48           // org/mockito/stubbing/OngoingStubbing\n+   #47 = NameAndType        #49:#44       // thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+   #48 = Utf8               org/mockito/stubbing/OngoingStubbing\n+   #49 = Utf8               thenReturn\n+   #50 = Methodref          #51.#52       // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #51 = Class              #53           // java/util/Arrays\n+   #52 = NameAndType        #54:#55       // asList:([Ljava/lang/Object;)Ljava/util/List;\n+   #53 = Utf8               java/util/Arrays\n+   #54 = Utf8               asList\n+   #55 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+   #56 = Class              #57           // dev/langchain4j/data/document/DocumentSplitter\n+   #57 = Utf8               dev/langchain4j/data/document/DocumentSplitter\n+   #58 = InterfaceMethodref #56.#59       // dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+   #59 = NameAndType        #60:#40       // splitAll:(Ljava/util/List;)Ljava/util/List;\n+   #60 = Utf8               splitAll\n+   #61 = Methodref          #62.#63       // dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #62 = Class              #64           // dev/langchain4j/data/segment/TextSegment\n+   #63 = NameAndType        #65:#66       // textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #64 = Utf8               dev/langchain4j/data/segment/TextSegment\n+   #65 = Utf8               textSegment\n+   #66 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+   #67 = String             #68           // Second sentence.\n+   #68 = Utf8               Second sentence.\n+   #69 = String             #70           // Third sentence.\n+   #70 = Utf8               Third sentence.\n+   #71 = String             #72           // Sixth sentence.\n+   #72 = Utf8               Sixth sentence.\n+   #73 = Class              #74           // dev/langchain4j/data/segment/TextSegmentTransformer\n+   #74 = Utf8               dev/langchain4j/data/segment/TextSegmentTransformer\n+   #75 = InterfaceMethodref #73.#38       // dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+   #76 = String             #77           // Transformed first sentence.\n+   #77 = Utf8               Transformed first sentence.\n+   #78 = String             #79           // Transformed second sentence.\n+   #79 = Utf8               Transformed second sentence.\n+   #80 = String             #81           // Transformed third sentence.\n+   #81 = Utf8               Transformed third sentence.\n+   #82 = String             #83           // Transformed fourth sentence.\n+   #83 = Utf8               Transformed fourth sentence.\n+   #84 = String             #85           // Transformed fifth sentence.\n+   #85 = Utf8               Transformed fifth sentence.\n+   #86 = String             #87           // Transformed sixth sentence.\n+   #87 = Utf8               Transformed sixth sentence.\n+   #88 = Class              #89           // dev/langchain4j/model/embedding/EmbeddingModel\n+   #89 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n+   #90 = InterfaceMethodref #88.#91       // dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+   #91 = NameAndType        #92:#93       // embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+   #92 = Utf8               embedAll\n+   #93 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+   #94 = Methodref          #95.#96       // dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #95 = Class              #97           // dev/langchain4j/data/embedding/Embedding\n+   #96 = NameAndType        #13:#98       // from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #97 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #98 = Utf8               ([F)Ldev/langchain4j/data/embedding/Embedding;\n+   #99 = Methodref          #100.#101     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #100 = Class              #102          // dev/langchain4j/model/output/Response\n+  #101 = NameAndType        #13:#103      // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #102 = Utf8               dev/langchain4j/model/output/Response\n+  #103 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #104 = Float              3.0f\n+  #105 = Float              4.0f\n+  #106 = Float              5.0f\n+  #107 = Float              6.0f\n+  #108 = Class              #109          // dev/langchain4j/store/embedding/EmbeddingStore\n+  #109 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n+  #110 = Methodref          #111.#112     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.builder:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #111 = Class              #113          // dev/langchain4j/store/embedding/EmbeddingStoreIngestor\n+  #112 = NameAndType        #114:#115     // builder:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #113 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreIngestor\n+  #114 = Utf8               builder\n+  #115 = Utf8               ()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #116 = Methodref          #117.#118     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentTransformer:(Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #117 = Class              #119          // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder\n+  #118 = NameAndType        #120:#121     // documentTransformer:(Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #119 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder\n+  #120 = Utf8               documentTransformer\n+  #121 = Utf8               (Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #122 = Methodref          #117.#123     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentSplitter:(Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #123 = NameAndType        #124:#125     // documentSplitter:(Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #124 = Utf8               documentSplitter\n+  #125 = Utf8               (Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #126 = Methodref          #117.#127     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.textSegmentTransformer:(Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #127 = NameAndType        #128:#129     // textSegmentTransformer:(Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #128 = Utf8               textSegmentTransformer\n+  #129 = Utf8               (Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #130 = Methodref          #117.#131     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #131 = NameAndType        #132:#133     // embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #132 = Utf8               embeddingModel\n+  #133 = Utf8               (Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #134 = Methodref          #117.#135     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #135 = NameAndType        #136:#137     // embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #136 = Utf8               embeddingStore\n+  #137 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+  #138 = Methodref          #117.#139     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.build:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n+  #139 = NameAndType        #140:#141     // build:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n+  #140 = Utf8               build\n+  #141 = Utf8               ()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n+  #142 = Methodref          #111.#143     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ldev/langchain4j/data/document/Document;)V\n+  #143 = NameAndType        #144:#145     // ingest:(Ldev/langchain4j/data/document/Document;)V\n+  #144 = Utf8               ingest\n+  #145 = Utf8               (Ldev/langchain4j/data/document/Document;)V\n+  #146 = Methodref          #111.#147     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:([Ldev/langchain4j/data/document/Document;)V\n+  #147 = NameAndType        #144:#148     // ingest:([Ldev/langchain4j/data/document/Document;)V\n+  #148 = Utf8               ([Ldev/langchain4j/data/document/Document;)V\n+  #149 = Methodref          #111.#150     // dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ljava/util/List;)V\n+  #150 = NameAndType        #144:#151     // ingest:(Ljava/util/List;)V\n+  #151 = Utf8               (Ljava/util/List;)V\n+  #152 = Methodref          #26.#153      // org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #153 = NameAndType        #154:#155     // verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #154 = Utf8               verify\n+  #155 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #156 = Methodref          #26.#157      // org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+  #157 = NameAndType        #158:#159     // verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+  #158 = Utf8               verifyNoMoreInteractions\n+  #159 = Utf8               ([Ljava/lang/Object;)V\n+  #160 = Methodref          #95.#161      // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+  #161 = NameAndType        #5:#162       // \"<init>\":([F)V\n+  #162 = Utf8               ([F)V\n+  #163 = InterfaceMethodref #108.#164     // dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+  #164 = NameAndType        #165:#166     // addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+  #165 = Utf8               addAll\n+  #166 = Utf8               (Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+  #167 = Class              #168          // dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest\n+  #168 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreIngestorTest\n+  #169 = Utf8               Code\n+  #170 = Utf8               LineNumberTable\n+  #171 = Utf8               LocalVariableTable\n+  #172 = Utf8               this\n+  #173 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreIngestorTest;\n+  #174 = Utf8               should_extract_text_then_split_into_segments_then_embed_them_and_store_in_embedding_store\n+  #175 = Utf8               firstDocument\n+  #176 = Utf8               Ldev/langchain4j/data/document/Document;\n+  #177 = Utf8               secondDocument\n+  #178 = Utf8               thirdDocument\n+  #179 = Utf8               fourthDocument\n+  #180 = Utf8               fifthDocument\n+  #181 = Utf8               Ldev/langchain4j/data/document/DocumentTransformer;\n+  #182 = Utf8               Ldev/langchain4j/data/document/DocumentSplitter;\n+  #183 = Utf8               Ldev/langchain4j/data/segment/TextSegmentTransformer;\n+  #184 = Utf8               Ldev/langchain4j/model/embedding/EmbeddingModel;\n+  #185 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore;\n+  #186 = Utf8               ingestor\n+  #187 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n+  #188 = Utf8               LocalVariableTypeTable\n+  #189 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #190 = Utf8               RuntimeVisibleAnnotations\n+  #191 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #192 = Utf8               SourceFile\n+  #193 = Utf8               EmbeddingStoreIngestorTest.java\n+  #194 = Utf8               InnerClasses\n+  #195 = Utf8               Builder\n {\n   dev.langchain4j.store.embedding.EmbeddingStoreIngestorTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -219,761 +219,761 @@\n             0       5     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreIngestorTest;\n \n   public void should_extract_text_then_split_into_segments_then_embed_them_and_store_in_embedding_store();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=10, locals=12, args_size=1\n-         0: ldc           #2                  // String First sentence.\n-         2: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+         0: ldc           #7                  // String First sentence.\n+         2: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n          5: astore_1\n-         6: ldc           #4                  // String Second sentence. Third sentence.\n-         8: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+         6: ldc           #15                 // String Second sentence. Third sentence.\n+         8: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n         11: astore_2\n-        12: ldc           #5                  // String Fourth sentence.\n-        14: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        12: ldc           #17                 // String Fourth sentence.\n+        14: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n         17: astore_3\n-        18: ldc           #6                  // String Fifth sentence.\n-        20: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        18: ldc           #19                 // String Fifth sentence.\n+        20: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n         23: astore        4\n-        25: ldc           #7                  // String Sixth Sentence\n-        27: invokestatic  #3                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n+        25: ldc           #21                 // String Sixth Sentence\n+        27: invokestatic  #9                  // Method dev/langchain4j/data/document/Document.from:(Ljava/lang/String;)Ldev/langchain4j/data/document/Document;\n         30: astore        5\n-        32: ldc           #8                  // class dev/langchain4j/data/document/DocumentTransformer\n-        34: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-        37: checkcast     #8                  // class dev/langchain4j/data/document/DocumentTransformer\n+        32: ldc           #23                 // class dev/langchain4j/data/document/DocumentTransformer\n+        34: invokestatic  #25                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+        37: checkcast     #23                 // class dev/langchain4j/data/document/DocumentTransformer\n         40: astore        6\n         42: aload         6\n         44: aload_1\n-        45: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        48: invokeinterface #11,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-        53: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        45: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        48: invokeinterface #37,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+        53: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         56: aload_1\n-        57: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        60: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        57: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        60: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         65: pop\n         66: aload         6\n         68: iconst_2\n-        69: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+        69: anewarray     #10                 // class dev/langchain4j/data/document/Document\n         72: dup\n         73: iconst_0\n         74: aload_2\n         75: aastore\n         76: dup\n         77: iconst_1\n         78: aload_3\n         79: aastore\n-        80: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        83: invokeinterface #11,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-        88: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+        80: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        83: invokeinterface #37,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+        88: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n         91: iconst_2\n-        92: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+        92: anewarray     #10                 // class dev/langchain4j/data/document/Document\n         95: dup\n         96: iconst_0\n         97: aload_2\n         98: aastore\n         99: dup\n        100: iconst_1\n        101: aload_3\n        102: aastore\n-       103: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       106: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       103: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       106: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        111: pop\n        112: aload         6\n        114: iconst_2\n-       115: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       115: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        118: dup\n        119: iconst_0\n        120: aload         4\n        122: aastore\n        123: dup\n        124: iconst_1\n        125: aload         5\n        127: aastore\n-       128: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       131: invokeinterface #11,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-       136: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       128: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       131: invokeinterface #37,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       136: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        139: iconst_2\n-       140: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       140: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        143: dup\n        144: iconst_0\n        145: aload         4\n        147: aastore\n        148: dup\n        149: iconst_1\n        150: aload         5\n        152: aastore\n-       153: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       156: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       153: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       156: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        161: pop\n-       162: ldc           #16                 // class dev/langchain4j/data/document/DocumentSplitter\n-       164: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       167: checkcast     #16                 // class dev/langchain4j/data/document/DocumentSplitter\n+       162: ldc           #56                 // class dev/langchain4j/data/document/DocumentSplitter\n+       164: invokestatic  #25                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       167: checkcast     #56                 // class dev/langchain4j/data/document/DocumentSplitter\n        170: astore        7\n        172: aload         7\n        174: aload_1\n-       175: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       178: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n-       183: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-       186: ldc           #2                  // String First sentence.\n-       188: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-       191: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       194: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       175: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       178: invokeinterface #58,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+       183: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       186: ldc           #7                  // String First sentence.\n+       188: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       191: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       194: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        199: pop\n        200: aload         7\n        202: iconst_2\n-       203: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       203: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        206: dup\n        207: iconst_0\n        208: aload_2\n        209: aastore\n        210: dup\n        211: iconst_1\n        212: aload_3\n        213: aastore\n-       214: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       217: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n-       222: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       214: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       217: invokeinterface #58,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+       222: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        225: iconst_3\n-       226: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       226: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        229: dup\n        230: iconst_0\n-       231: ldc           #20                 // String Second sentence.\n-       233: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       231: ldc           #67                 // String Second sentence.\n+       233: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        236: aastore\n        237: dup\n        238: iconst_1\n-       239: ldc           #21                 // String Third sentence.\n-       241: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       239: ldc           #69                 // String Third sentence.\n+       241: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        244: aastore\n        245: dup\n        246: iconst_2\n-       247: ldc           #5                  // String Fourth sentence.\n-       249: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       247: ldc           #17                 // String Fourth sentence.\n+       249: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        252: aastore\n-       253: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       256: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       253: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       256: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        261: pop\n        262: aload         7\n        264: iconst_2\n-       265: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       265: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        268: dup\n        269: iconst_0\n        270: aload         4\n        272: aastore\n        273: dup\n        274: iconst_1\n        275: aload         5\n        277: aastore\n-       278: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       281: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n-       286: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       278: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       281: invokeinterface #58,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+       286: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        289: iconst_2\n-       290: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       290: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        293: dup\n        294: iconst_0\n-       295: ldc           #6                  // String Fifth sentence.\n-       297: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       295: ldc           #19                 // String Fifth sentence.\n+       297: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        300: aastore\n        301: dup\n        302: iconst_1\n-       303: ldc           #22                 // String Sixth sentence.\n-       305: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       303: ldc           #71                 // String Sixth sentence.\n+       305: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        308: aastore\n-       309: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       312: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       309: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       312: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        317: pop\n-       318: ldc           #23                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n-       320: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       323: checkcast     #23                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n+       318: ldc           #73                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n+       320: invokestatic  #25                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       323: checkcast     #73                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n        326: astore        8\n        328: aload         8\n-       330: ldc           #2                  // String First sentence.\n-       332: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-       335: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       338: invokeinterface #24,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-       343: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n-       346: ldc           #25                 // String Transformed first sentence.\n-       348: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-       351: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       354: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       330: ldc           #7                  // String First sentence.\n+       332: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       335: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       338: invokeinterface #75,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       343: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       346: ldc           #76                 // String Transformed first sentence.\n+       348: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       351: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       354: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        359: pop\n        360: aload         8\n        362: iconst_3\n-       363: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       363: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        366: dup\n        367: iconst_0\n-       368: ldc           #20                 // String Second sentence.\n-       370: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       368: ldc           #67                 // String Second sentence.\n+       370: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        373: aastore\n        374: dup\n        375: iconst_1\n-       376: ldc           #21                 // String Third sentence.\n-       378: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       376: ldc           #69                 // String Third sentence.\n+       378: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        381: aastore\n        382: dup\n        383: iconst_2\n-       384: ldc           #5                  // String Fourth sentence.\n-       386: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       384: ldc           #17                 // String Fourth sentence.\n+       386: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        389: aastore\n-       390: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       393: invokeinterface #24,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-       398: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       390: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       393: invokeinterface #75,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       398: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        401: iconst_3\n-       402: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       402: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        405: dup\n        406: iconst_0\n-       407: ldc           #26                 // String Transformed second sentence.\n-       409: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       407: ldc           #78                 // String Transformed second sentence.\n+       409: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        412: aastore\n        413: dup\n        414: iconst_1\n-       415: ldc           #27                 // String Transformed third sentence.\n-       417: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       415: ldc           #80                 // String Transformed third sentence.\n+       417: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        420: aastore\n        421: dup\n        422: iconst_2\n-       423: ldc           #28                 // String Transformed fourth sentence.\n-       425: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       423: ldc           #82                 // String Transformed fourth sentence.\n+       425: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        428: aastore\n-       429: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       432: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       429: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       432: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        437: pop\n        438: aload         8\n        440: iconst_2\n-       441: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       441: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        444: dup\n        445: iconst_0\n-       446: ldc           #6                  // String Fifth sentence.\n-       448: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       446: ldc           #19                 // String Fifth sentence.\n+       448: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        451: aastore\n        452: dup\n        453: iconst_1\n-       454: ldc           #22                 // String Sixth sentence.\n-       456: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       454: ldc           #71                 // String Sixth sentence.\n+       456: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        459: aastore\n-       460: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       463: invokeinterface #24,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n-       468: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       460: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       463: invokeinterface #75,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       468: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        471: iconst_2\n-       472: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       472: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        475: dup\n        476: iconst_0\n-       477: ldc           #29                 // String Transformed fifth sentence.\n-       479: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       477: ldc           #84                 // String Transformed fifth sentence.\n+       479: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        482: aastore\n        483: dup\n        484: iconst_1\n-       485: ldc           #30                 // String Transformed sixth sentence.\n-       487: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       485: ldc           #86                 // String Transformed sixth sentence.\n+       487: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        490: aastore\n-       491: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       494: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       491: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       494: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        499: pop\n-       500: ldc           #31                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-       502: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       505: checkcast     #31                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       500: ldc           #88                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+       502: invokestatic  #25                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       505: checkcast     #88                 // class dev/langchain4j/model/embedding/EmbeddingModel\n        508: astore        9\n        510: aload         9\n-       512: ldc           #25                 // String Transformed first sentence.\n-       514: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-       517: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       520: invokeinterface #32,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-       525: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       512: ldc           #76                 // String Transformed first sentence.\n+       514: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       517: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       520: invokeinterface #90,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+       525: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        528: iconst_1\n        529: newarray       float\n        531: dup\n        532: iconst_0\n        533: fconst_1\n        534: fastore\n-       535: invokestatic  #33                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n-       538: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       541: invokestatic  #34                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       544: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       535: invokestatic  #94                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       538: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       541: invokestatic  #99                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       544: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        549: pop\n        550: aload         9\n        552: iconst_3\n-       553: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       553: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        556: dup\n        557: iconst_0\n-       558: ldc           #26                 // String Transformed second sentence.\n-       560: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       558: ldc           #78                 // String Transformed second sentence.\n+       560: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        563: aastore\n        564: dup\n        565: iconst_1\n-       566: ldc           #27                 // String Transformed third sentence.\n-       568: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       566: ldc           #80                 // String Transformed third sentence.\n+       568: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        571: aastore\n        572: dup\n        573: iconst_2\n-       574: ldc           #28                 // String Transformed fourth sentence.\n-       576: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       574: ldc           #82                 // String Transformed fourth sentence.\n+       576: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        579: aastore\n-       580: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       583: invokeinterface #32,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-       588: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       580: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       583: invokeinterface #90,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+       588: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        591: iconst_3\n-       592: anewarray     #35                 // class dev/langchain4j/data/embedding/Embedding\n+       592: anewarray     #95                 // class dev/langchain4j/data/embedding/Embedding\n        595: dup\n        596: iconst_0\n        597: iconst_1\n        598: newarray       float\n        600: dup\n        601: iconst_0\n        602: fconst_2\n        603: fastore\n-       604: invokestatic  #33                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       604: invokestatic  #94                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n        607: aastore\n        608: dup\n        609: iconst_1\n        610: iconst_1\n        611: newarray       float\n        613: dup\n        614: iconst_0\n-       615: ldc           #36                 // float 3.0f\n+       615: ldc           #104                // float 3.0f\n        617: fastore\n-       618: invokestatic  #33                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       618: invokestatic  #94                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n        621: aastore\n        622: dup\n        623: iconst_2\n        624: iconst_1\n        625: newarray       float\n        627: dup\n        628: iconst_0\n-       629: ldc           #37                 // float 4.0f\n+       629: ldc           #105                // float 4.0f\n        631: fastore\n-       632: invokestatic  #33                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       632: invokestatic  #94                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n        635: aastore\n-       636: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       639: invokestatic  #34                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       642: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       636: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       639: invokestatic  #99                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       642: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        647: pop\n        648: aload         9\n        650: iconst_2\n-       651: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+       651: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n        654: dup\n        655: iconst_0\n-       656: ldc           #29                 // String Transformed fifth sentence.\n-       658: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       656: ldc           #84                 // String Transformed fifth sentence.\n+       658: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        661: aastore\n        662: dup\n        663: iconst_1\n-       664: ldc           #30                 // String Transformed sixth sentence.\n-       666: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+       664: ldc           #86                 // String Transformed sixth sentence.\n+       666: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n        669: aastore\n-       670: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       673: invokeinterface #32,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-       678: invokestatic  #12                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       670: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       673: invokeinterface #90,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+       678: invokestatic  #41                 // Method org/mockito/Mockito.when:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        681: iconst_2\n-       682: anewarray     #35                 // class dev/langchain4j/data/embedding/Embedding\n+       682: anewarray     #95                 // class dev/langchain4j/data/embedding/Embedding\n        685: dup\n        686: iconst_0\n        687: iconst_1\n        688: newarray       float\n        690: dup\n        691: iconst_0\n-       692: ldc           #38                 // float 5.0f\n+       692: ldc           #106                // float 5.0f\n        694: fastore\n-       695: invokestatic  #33                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       695: invokestatic  #94                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n        698: aastore\n        699: dup\n        700: iconst_1\n        701: iconst_1\n        702: newarray       float\n        704: dup\n        705: iconst_0\n-       706: ldc           #39                 // float 6.0f\n+       706: ldc           #107                // float 6.0f\n        708: fastore\n-       709: invokestatic  #33                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n+       709: invokestatic  #94                 // Method dev/langchain4j/data/embedding/Embedding.from:([F)Ldev/langchain4j/data/embedding/Embedding;\n        712: aastore\n-       713: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       716: invokestatic  #34                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-       719: invokeinterface #13,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n+       713: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       716: invokestatic  #99                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       719: invokeinterface #45,  2           // InterfaceMethod org/mockito/stubbing/OngoingStubbing.thenReturn:(Ljava/lang/Object;)Lorg/mockito/stubbing/OngoingStubbing;\n        724: pop\n-       725: ldc           #40                 // class dev/langchain4j/store/embedding/EmbeddingStore\n-       727: invokestatic  #9                  // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n-       730: checkcast     #40                 // class dev/langchain4j/store/embedding/EmbeddingStore\n+       725: ldc           #108                // class dev/langchain4j/store/embedding/EmbeddingStore\n+       727: invokestatic  #25                 // Method org/mockito/Mockito.mock:(Ljava/lang/Class;)Ljava/lang/Object;\n+       730: checkcast     #108                // class dev/langchain4j/store/embedding/EmbeddingStore\n        733: astore        10\n-       735: invokestatic  #41                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.builder:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+       735: invokestatic  #110                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.builder:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n        738: aload         6\n-       740: invokevirtual #42                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentTransformer:(Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+       740: invokevirtual #116                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentTransformer:(Ldev/langchain4j/data/document/DocumentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n        743: aload         7\n-       745: invokevirtual #43                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentSplitter:(Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+       745: invokevirtual #122                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.documentSplitter:(Ldev/langchain4j/data/document/DocumentSplitter;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n        748: aload         8\n-       750: invokevirtual #44                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.textSegmentTransformer:(Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+       750: invokevirtual #126                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.textSegmentTransformer:(Ldev/langchain4j/data/segment/TextSegmentTransformer;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n        753: aload         9\n-       755: invokevirtual #45                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+       755: invokevirtual #130                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingModel:(Ldev/langchain4j/model/embedding/EmbeddingModel;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n        758: aload         10\n-       760: invokevirtual #46                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n-       763: invokevirtual #47                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.build:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n+       760: invokevirtual #134                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.embeddingStore:(Ldev/langchain4j/store/embedding/EmbeddingStore;)Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder;\n+       763: invokevirtual #138                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder.build:()Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n        766: astore        11\n        768: aload         11\n        770: aload_1\n-       771: invokevirtual #48                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ldev/langchain4j/data/document/Document;)V\n+       771: invokevirtual #142                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ldev/langchain4j/data/document/Document;)V\n        774: aload         11\n        776: iconst_2\n-       777: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       777: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        780: dup\n        781: iconst_0\n        782: aload_2\n        783: aastore\n        784: dup\n        785: iconst_1\n        786: aload_3\n        787: aastore\n-       788: invokevirtual #49                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:([Ldev/langchain4j/data/document/Document;)V\n+       788: invokevirtual #146                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:([Ldev/langchain4j/data/document/Document;)V\n        791: aload         11\n        793: iconst_2\n-       794: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       794: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        797: dup\n        798: iconst_0\n        799: aload         4\n        801: aastore\n        802: dup\n        803: iconst_1\n        804: aload         5\n        806: aastore\n-       807: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       810: invokevirtual #50                 // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ljava/util/List;)V\n+       807: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       810: invokevirtual #149                // Method dev/langchain4j/store/embedding/EmbeddingStoreIngestor.ingest:(Ljava/util/List;)V\n        813: aload         6\n-       815: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       818: checkcast     #8                  // class dev/langchain4j/data/document/DocumentTransformer\n+       815: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       818: checkcast     #23                 // class dev/langchain4j/data/document/DocumentTransformer\n        821: aload_1\n-       822: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       825: invokeinterface #11,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       822: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       825: invokeinterface #37,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n        830: pop\n        831: aload         6\n-       833: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       836: checkcast     #8                  // class dev/langchain4j/data/document/DocumentTransformer\n+       833: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       836: checkcast     #23                 // class dev/langchain4j/data/document/DocumentTransformer\n        839: iconst_2\n-       840: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       840: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        843: dup\n        844: iconst_0\n        845: aload_2\n        846: aastore\n        847: dup\n        848: iconst_1\n        849: aload_3\n        850: aastore\n-       851: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       854: invokeinterface #11,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       851: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       854: invokeinterface #37,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n        859: pop\n        860: aload         6\n-       862: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       865: checkcast     #8                  // class dev/langchain4j/data/document/DocumentTransformer\n+       862: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       865: checkcast     #23                 // class dev/langchain4j/data/document/DocumentTransformer\n        868: iconst_2\n-       869: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       869: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        872: dup\n        873: iconst_0\n        874: aload         4\n        876: aastore\n        877: dup\n        878: iconst_1\n        879: aload         5\n        881: aastore\n-       882: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       885: invokeinterface #11,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       882: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       885: invokeinterface #37,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n        890: pop\n        891: iconst_1\n-       892: anewarray     #52                 // class java/lang/Object\n+       892: anewarray     #2                  // class java/lang/Object\n        895: dup\n        896: iconst_0\n        897: aload         6\n        899: aastore\n-       900: invokestatic  #53                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       900: invokestatic  #156                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        903: aload         7\n-       905: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       908: checkcast     #16                 // class dev/langchain4j/data/document/DocumentSplitter\n+       905: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       908: checkcast     #56                 // class dev/langchain4j/data/document/DocumentSplitter\n        911: aload_1\n-       912: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-       915: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+       912: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+       915: invokeinterface #58,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n        920: pop\n        921: aload         7\n-       923: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       926: checkcast     #16                 // class dev/langchain4j/data/document/DocumentSplitter\n+       923: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       926: checkcast     #56                 // class dev/langchain4j/data/document/DocumentSplitter\n        929: iconst_2\n-       930: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       930: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        933: dup\n        934: iconst_0\n        935: aload_2\n        936: aastore\n        937: dup\n        938: iconst_1\n        939: aload_3\n        940: aastore\n-       941: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       944: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+       941: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       944: invokeinterface #58,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n        949: pop\n        950: aload         7\n-       952: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       955: checkcast     #16                 // class dev/langchain4j/data/document/DocumentSplitter\n+       952: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       955: checkcast     #56                 // class dev/langchain4j/data/document/DocumentSplitter\n        958: iconst_2\n-       959: anewarray     #14                 // class dev/langchain4j/data/document/Document\n+       959: anewarray     #10                 // class dev/langchain4j/data/document/Document\n        962: dup\n        963: iconst_0\n        964: aload         4\n        966: aastore\n        967: dup\n        968: iconst_1\n        969: aload         5\n        971: aastore\n-       972: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-       975: invokeinterface #17,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n+       972: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+       975: invokeinterface #58,  2           // InterfaceMethod dev/langchain4j/data/document/DocumentSplitter.splitAll:(Ljava/util/List;)Ljava/util/List;\n        980: pop\n        981: iconst_1\n-       982: anewarray     #52                 // class java/lang/Object\n+       982: anewarray     #2                  // class java/lang/Object\n        985: dup\n        986: iconst_0\n        987: aload         7\n        989: aastore\n-       990: invokestatic  #53                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+       990: invokestatic  #156                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n        993: aload         8\n-       995: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-       998: checkcast     #23                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n-      1001: ldc           #2                  // String First sentence.\n-      1003: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-      1006: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-      1009: invokeinterface #24,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+       995: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+       998: checkcast     #73                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n+      1001: ldc           #7                  // String First sentence.\n+      1003: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1006: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+      1009: invokeinterface #75,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n       1014: pop\n       1015: aload         8\n-      1017: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1020: checkcast     #23                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n+      1017: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1020: checkcast     #73                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n       1023: iconst_3\n-      1024: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+      1024: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n       1027: dup\n       1028: iconst_0\n-      1029: ldc           #20                 // String Second sentence.\n-      1031: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1029: ldc           #67                 // String Second sentence.\n+      1031: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1034: aastore\n       1035: dup\n       1036: iconst_1\n-      1037: ldc           #21                 // String Third sentence.\n-      1039: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1037: ldc           #69                 // String Third sentence.\n+      1039: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1042: aastore\n       1043: dup\n       1044: iconst_2\n-      1045: ldc           #5                  // String Fourth sentence.\n-      1047: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1045: ldc           #17                 // String Fourth sentence.\n+      1047: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1050: aastore\n-      1051: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-      1054: invokeinterface #24,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+      1051: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1054: invokeinterface #75,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n       1059: pop\n       1060: aload         8\n-      1062: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1065: checkcast     #23                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n+      1062: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1065: checkcast     #73                 // class dev/langchain4j/data/segment/TextSegmentTransformer\n       1068: iconst_2\n-      1069: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+      1069: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n       1072: dup\n       1073: iconst_0\n-      1074: ldc           #6                  // String Fifth sentence.\n-      1076: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1074: ldc           #19                 // String Fifth sentence.\n+      1076: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1079: aastore\n       1080: dup\n       1081: iconst_1\n-      1082: ldc           #22                 // String Sixth sentence.\n-      1084: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1082: ldc           #71                 // String Sixth sentence.\n+      1084: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1087: aastore\n-      1088: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-      1091: invokeinterface #24,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n+      1088: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1091: invokeinterface #75,  2           // InterfaceMethod dev/langchain4j/data/segment/TextSegmentTransformer.transformAll:(Ljava/util/List;)Ljava/util/List;\n       1096: pop\n       1097: iconst_1\n-      1098: anewarray     #52                 // class java/lang/Object\n+      1098: anewarray     #2                  // class java/lang/Object\n       1101: dup\n       1102: iconst_0\n       1103: aload         8\n       1105: aastore\n-      1106: invokestatic  #53                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+      1106: invokestatic  #156                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n       1109: aload         9\n-      1111: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1114: checkcast     #31                 // class dev/langchain4j/model/embedding/EmbeddingModel\n-      1117: ldc           #25                 // String Transformed first sentence.\n-      1119: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-      1122: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-      1125: invokeinterface #32,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+      1111: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1114: checkcast     #88                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+      1117: ldc           #76                 // String Transformed first sentence.\n+      1119: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1122: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+      1125: invokeinterface #90,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n       1130: pop\n       1131: aload         9\n-      1133: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1136: checkcast     #31                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+      1133: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1136: checkcast     #88                 // class dev/langchain4j/model/embedding/EmbeddingModel\n       1139: iconst_3\n-      1140: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+      1140: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n       1143: dup\n       1144: iconst_0\n-      1145: ldc           #26                 // String Transformed second sentence.\n-      1147: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1145: ldc           #78                 // String Transformed second sentence.\n+      1147: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1150: aastore\n       1151: dup\n       1152: iconst_1\n-      1153: ldc           #27                 // String Transformed third sentence.\n-      1155: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1153: ldc           #80                 // String Transformed third sentence.\n+      1155: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1158: aastore\n       1159: dup\n       1160: iconst_2\n-      1161: ldc           #28                 // String Transformed fourth sentence.\n-      1163: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1161: ldc           #82                 // String Transformed fourth sentence.\n+      1163: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1166: aastore\n-      1167: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-      1170: invokeinterface #32,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+      1167: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1170: invokeinterface #90,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n       1175: pop\n       1176: aload         9\n-      1178: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1181: checkcast     #31                 // class dev/langchain4j/model/embedding/EmbeddingModel\n+      1178: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1181: checkcast     #88                 // class dev/langchain4j/model/embedding/EmbeddingModel\n       1184: iconst_2\n-      1185: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+      1185: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n       1188: dup\n       1189: iconst_0\n-      1190: ldc           #29                 // String Transformed fifth sentence.\n-      1192: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1190: ldc           #84                 // String Transformed fifth sentence.\n+      1192: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1195: aastore\n       1196: dup\n       1197: iconst_1\n-      1198: ldc           #30                 // String Transformed sixth sentence.\n-      1200: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1198: ldc           #86                 // String Transformed sixth sentence.\n+      1200: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1203: aastore\n-      1204: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-      1207: invokeinterface #32,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+      1204: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1207: invokeinterface #90,  2           // InterfaceMethod dev/langchain4j/model/embedding/EmbeddingModel.embedAll:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n       1212: pop\n       1213: iconst_1\n-      1214: anewarray     #52                 // class java/lang/Object\n+      1214: anewarray     #2                  // class java/lang/Object\n       1217: dup\n       1218: iconst_0\n       1219: aload         9\n       1221: aastore\n-      1222: invokestatic  #53                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+      1222: invokestatic  #156                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n       1225: aload         10\n-      1227: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1230: checkcast     #40                 // class dev/langchain4j/store/embedding/EmbeddingStore\n-      1233: new           #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1227: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1230: checkcast     #108                // class dev/langchain4j/store/embedding/EmbeddingStore\n+      1233: new           #95                 // class dev/langchain4j/data/embedding/Embedding\n       1236: dup\n       1237: iconst_1\n       1238: newarray       float\n       1240: dup\n       1241: iconst_0\n       1242: fconst_1\n       1243: fastore\n-      1244: invokespecial #54                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-      1247: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-      1250: ldc           #25                 // String Transformed first sentence.\n-      1252: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n-      1255: invokestatic  #10                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-      1258: invokeinterface #55,  3           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+      1244: invokespecial #160                // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+      1247: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+      1250: ldc           #76                 // String Transformed first sentence.\n+      1252: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1255: invokestatic  #31                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+      1258: invokeinterface #163,  3          // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n       1263: pop\n       1264: aload         10\n-      1266: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1269: checkcast     #40                 // class dev/langchain4j/store/embedding/EmbeddingStore\n+      1266: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1269: checkcast     #108                // class dev/langchain4j/store/embedding/EmbeddingStore\n       1272: iconst_3\n-      1273: anewarray     #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1273: anewarray     #95                 // class dev/langchain4j/data/embedding/Embedding\n       1276: dup\n       1277: iconst_0\n-      1278: new           #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1278: new           #95                 // class dev/langchain4j/data/embedding/Embedding\n       1281: dup\n       1282: iconst_1\n       1283: newarray       float\n       1285: dup\n       1286: iconst_0\n       1287: fconst_2\n       1288: fastore\n-      1289: invokespecial #54                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+      1289: invokespecial #160                // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n       1292: aastore\n       1293: dup\n       1294: iconst_1\n-      1295: new           #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1295: new           #95                 // class dev/langchain4j/data/embedding/Embedding\n       1298: dup\n       1299: iconst_1\n       1300: newarray       float\n       1302: dup\n       1303: iconst_0\n-      1304: ldc           #36                 // float 3.0f\n+      1304: ldc           #104                // float 3.0f\n       1306: fastore\n-      1307: invokespecial #54                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+      1307: invokespecial #160                // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n       1310: aastore\n       1311: dup\n       1312: iconst_2\n-      1313: new           #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1313: new           #95                 // class dev/langchain4j/data/embedding/Embedding\n       1316: dup\n       1317: iconst_1\n       1318: newarray       float\n       1320: dup\n       1321: iconst_0\n-      1322: ldc           #37                 // float 4.0f\n+      1322: ldc           #105                // float 4.0f\n       1324: fastore\n-      1325: invokespecial #54                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+      1325: invokespecial #160                // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n       1328: aastore\n-      1329: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1329: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n       1332: iconst_3\n-      1333: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+      1333: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n       1336: dup\n       1337: iconst_0\n-      1338: ldc           #26                 // String Transformed second sentence.\n-      1340: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1338: ldc           #78                 // String Transformed second sentence.\n+      1340: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1343: aastore\n       1344: dup\n       1345: iconst_1\n-      1346: ldc           #27                 // String Transformed third sentence.\n-      1348: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1346: ldc           #80                 // String Transformed third sentence.\n+      1348: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1351: aastore\n       1352: dup\n       1353: iconst_2\n-      1354: ldc           #28                 // String Transformed fourth sentence.\n-      1356: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1354: ldc           #82                 // String Transformed fourth sentence.\n+      1356: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1359: aastore\n-      1360: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-      1363: invokeinterface #55,  3           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+      1360: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1363: invokeinterface #163,  3          // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n       1368: pop\n       1369: aload         10\n-      1371: invokestatic  #51                 // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n-      1374: checkcast     #40                 // class dev/langchain4j/store/embedding/EmbeddingStore\n+      1371: invokestatic  #152                // Method org/mockito/Mockito.verify:(Ljava/lang/Object;)Ljava/lang/Object;\n+      1374: checkcast     #108                // class dev/langchain4j/store/embedding/EmbeddingStore\n       1377: iconst_2\n-      1378: anewarray     #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1378: anewarray     #95                 // class dev/langchain4j/data/embedding/Embedding\n       1381: dup\n       1382: iconst_0\n-      1383: new           #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1383: new           #95                 // class dev/langchain4j/data/embedding/Embedding\n       1386: dup\n       1387: iconst_1\n       1388: newarray       float\n       1390: dup\n       1391: iconst_0\n-      1392: ldc           #38                 // float 5.0f\n+      1392: ldc           #106                // float 5.0f\n       1394: fastore\n-      1395: invokespecial #54                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+      1395: invokespecial #160                // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n       1398: aastore\n       1399: dup\n       1400: iconst_1\n-      1401: new           #35                 // class dev/langchain4j/data/embedding/Embedding\n+      1401: new           #95                 // class dev/langchain4j/data/embedding/Embedding\n       1404: dup\n       1405: iconst_1\n       1406: newarray       float\n       1408: dup\n       1409: iconst_0\n-      1410: ldc           #39                 // float 6.0f\n+      1410: ldc           #107                // float 6.0f\n       1412: fastore\n-      1413: invokespecial #54                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+      1413: invokespecial #160                // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n       1416: aastore\n-      1417: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1417: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n       1420: iconst_2\n-      1421: anewarray     #19                 // class dev/langchain4j/data/segment/TextSegment\n+      1421: anewarray     #62                 // class dev/langchain4j/data/segment/TextSegment\n       1424: dup\n       1425: iconst_0\n-      1426: ldc           #29                 // String Transformed fifth sentence.\n-      1428: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1426: ldc           #84                 // String Transformed fifth sentence.\n+      1428: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1431: aastore\n       1432: dup\n       1433: iconst_1\n-      1434: ldc           #30                 // String Transformed sixth sentence.\n-      1436: invokestatic  #18                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n+      1434: ldc           #86                 // String Transformed sixth sentence.\n+      1436: invokestatic  #61                 // Method dev/langchain4j/data/segment/TextSegment.textSegment:(Ljava/lang/String;)Ldev/langchain4j/data/segment/TextSegment;\n       1439: aastore\n-      1440: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-      1443: invokeinterface #55,  3           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+      1440: invokestatic  #50                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+      1443: invokeinterface #163,  3          // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.addAll:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n       1448: pop\n       1449: iconst_1\n-      1450: anewarray     #52                 // class java/lang/Object\n+      1450: anewarray     #2                  // class java/lang/Object\n       1453: dup\n       1454: iconst_0\n       1455: aload         10\n       1457: aastore\n-      1458: invokestatic  #53                 // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n+      1458: invokestatic  #156                // Method org/mockito/Mockito.verifyNoMoreInteractions:([Ljava/lang/Object;)V\n       1461: return\n       LineNumberTable:\n         line 23: 0\n         line 24: 6\n         line 25: 12\n         line 26: 18\n         line 27: 25\n@@ -1119,13 +1119,13 @@\n           510     952     9 embeddingModel   Ldev/langchain4j/model/embedding/EmbeddingModel;\n           735     727    10 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore;\n           768     694    11 ingestor   Ldev/langchain4j/store/embedding/EmbeddingStoreIngestor;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n           735     727    10 embeddingStore   Ldev/langchain4j/store/embedding/EmbeddingStore<Ldev/langchain4j/data/segment/TextSegment;>;\n     RuntimeVisibleAnnotations:\n-      0: #86()\n+      0: #191()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"EmbeddingStoreIngestorTest.java\"\n InnerClasses:\n-  public static #174= #131 of #129;       // Builder=class dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder of class dev/langchain4j/store/embedding/EmbeddingStoreIngestor\n+  public static #195= #117 of #111;       // Builder=class dev/langchain4j/store/embedding/EmbeddingStoreIngestor$Builder of class dev/langchain4j/store/embedding/EmbeddingStoreIngestor\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.class", "source2": "dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,96 +1,96 @@\n-  SHA-256 checksum 28e5c8a163915b2a80eb89fe25dec261b39c854141a1f3cd5463acd4cb4afc57\n+  SHA-256 checksum e71619b5eb29d8a2680f738f7df345bcae2073af9cd5a6ecff554d6b1ed65a7d\n   Compiled from \"EmbeddingStoreTest.java\"\n public class dev.langchain4j.store.embedding.EmbeddingStoreTest$MemoryIdEmbeddingStore extends dev.langchain4j.store.embedding.EmbeddingStoreTest$MinimalEmbeddingStore\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #15                         // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n-  super_class: #16                        // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+  this_class: #55                         // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n+  super_class: #2                         // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n   interfaces: 0, fields: 0, methods: 2, attributes: 2\n Constant pool:\n-   #1 = Methodref          #16.#40        // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.\"<init>\":()V\n-   #2 = Class              #41            // dev/langchain4j/store/embedding/EmbeddingMatch\n-   #3 = Double             0.5d\n-   #5 = Methodref          #42.#43        // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #6 = String             #44            // id\n-   #7 = Fieldref           #45.#46        // java/util/Locale.US:Ljava/util/Locale;\n-   #8 = String             #47            // %s, %s, %d, %.2f\n-   #9 = Class              #48            // java/lang/Object\n-  #10 = Methodref          #49.#50        // dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n-  #11 = Methodref          #51.#52        // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-  #12 = Methodref          #53.#54        // java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-  #13 = Methodref          #2.#55         // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #14 = Methodref          #56.#57        // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #15 = Class              #59            // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n-  #16 = Class              #60            // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-  #17 = Utf8               <init>\n-  #18 = Utf8               ()V\n-  #19 = Utf8               Code\n-  #20 = Utf8               LineNumberTable\n-  #21 = Utf8               LocalVariableTable\n-  #22 = Utf8               this\n-  #23 = Utf8               MemoryIdEmbeddingStore\n-  #24 = Utf8               InnerClasses\n-  #25 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore;\n-  #26 = Utf8               findRelevant\n-  #27 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-  #28 = Utf8               memoryId\n-  #29 = Utf8               Ljava/lang/Object;\n-  #30 = Utf8               referenceEmbedding\n-  #31 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n-  #32 = Utf8               maxResults\n-  #33 = Utf8               I\n-  #34 = Utf8               minScore\n-  #35 = Utf8               D\n-  #36 = Utf8               Signature\n-  #37 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n-  #38 = Utf8               SourceFile\n-  #39 = Utf8               EmbeddingStoreTest.java\n-  #40 = NameAndType        #17:#18        // \"<init>\":()V\n-  #41 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n-  #42 = Class              #62            // java/lang/Double\n-  #43 = NameAndType        #63:#64        // valueOf:(D)Ljava/lang/Double;\n-  #44 = Utf8               id\n-  #45 = Class              #65            // java/util/Locale\n-  #46 = NameAndType        #66:#67        // US:Ljava/util/Locale;\n-  #47 = Utf8               %s, %s, %d, %.2f\n-  #48 = Utf8               java/lang/Object\n-  #49 = Class              #68            // dev/langchain4j/data/embedding/Embedding\n-  #50 = NameAndType        #69:#70        // vectorAsList:()Ljava/util/List;\n-  #51 = Class              #71            // java/lang/Integer\n-  #52 = NameAndType        #63:#72        // valueOf:(I)Ljava/lang/Integer;\n-  #53 = Class              #73            // java/lang/String\n-  #54 = NameAndType        #74:#75        // format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-  #55 = NameAndType        #17:#76        // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #56 = Class              #77            // java/util/Collections\n-  #57 = NameAndType        #78:#79        // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #58 = Class              #80            // dev/langchain4j/store/embedding/EmbeddingStoreTest\n-  #59 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n-  #60 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-  #61 = Utf8               MinimalEmbeddingStore\n-  #62 = Utf8               java/lang/Double\n-  #63 = Utf8               valueOf\n-  #64 = Utf8               (D)Ljava/lang/Double;\n-  #65 = Utf8               java/util/Locale\n-  #66 = Utf8               US\n-  #67 = Utf8               Ljava/util/Locale;\n-  #68 = Utf8               dev/langchain4j/data/embedding/Embedding\n-  #69 = Utf8               vectorAsList\n-  #70 = Utf8               ()Ljava/util/List;\n-  #71 = Utf8               java/lang/Integer\n-  #72 = Utf8               (I)Ljava/lang/Integer;\n-  #73 = Utf8               java/lang/String\n-  #74 = Utf8               format\n-  #75 = Utf8               (Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-  #76 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #77 = Utf8               java/util/Collections\n-  #78 = Utf8               singletonList\n-  #79 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #80 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest\n+   #1 = Methodref          #2.#3          // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.\"<init>\":()V\n+   #2 = Class              #4             // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/store/embedding/EmbeddingMatch\n+   #8 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n+   #9 = Double             0.5d\n+  #11 = Methodref          #12.#13        // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+  #12 = Class              #14            // java/lang/Double\n+  #13 = NameAndType        #15:#16        // valueOf:(D)Ljava/lang/Double;\n+  #14 = Utf8               java/lang/Double\n+  #15 = Utf8               valueOf\n+  #16 = Utf8               (D)Ljava/lang/Double;\n+  #17 = String             #18            // id\n+  #18 = Utf8               id\n+  #19 = Fieldref           #20.#21        // java/util/Locale.US:Ljava/util/Locale;\n+  #20 = Class              #22            // java/util/Locale\n+  #21 = NameAndType        #23:#24        // US:Ljava/util/Locale;\n+  #22 = Utf8               java/util/Locale\n+  #23 = Utf8               US\n+  #24 = Utf8               Ljava/util/Locale;\n+  #25 = String             #26            // %s, %s, %d, %.2f\n+  #26 = Utf8               %s, %s, %d, %.2f\n+  #27 = Class              #28            // java/lang/Object\n+  #28 = Utf8               java/lang/Object\n+  #29 = Methodref          #30.#31        // dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n+  #30 = Class              #32            // dev/langchain4j/data/embedding/Embedding\n+  #31 = NameAndType        #33:#34        // vectorAsList:()Ljava/util/List;\n+  #32 = Utf8               dev/langchain4j/data/embedding/Embedding\n+  #33 = Utf8               vectorAsList\n+  #34 = Utf8               ()Ljava/util/List;\n+  #35 = Methodref          #36.#37        // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+  #36 = Class              #38            // java/lang/Integer\n+  #37 = NameAndType        #15:#39        // valueOf:(I)Ljava/lang/Integer;\n+  #38 = Utf8               java/lang/Integer\n+  #39 = Utf8               (I)Ljava/lang/Integer;\n+  #40 = Methodref          #41.#42        // java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+  #41 = Class              #43            // java/lang/String\n+  #42 = NameAndType        #44:#45        // format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+  #43 = Utf8               java/lang/String\n+  #44 = Utf8               format\n+  #45 = Utf8               (Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+  #46 = Methodref          #7.#47         // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+  #47 = NameAndType        #5:#48         // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+  #48 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+  #49 = Methodref          #50.#51        // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #50 = Class              #52            // java/util/Collections\n+  #51 = NameAndType        #53:#54        // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #52 = Utf8               java/util/Collections\n+  #53 = Utf8               singletonList\n+  #54 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #55 = Class              #56            // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n+  #56 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n+  #57 = Utf8               Code\n+  #58 = Utf8               LineNumberTable\n+  #59 = Utf8               LocalVariableTable\n+  #60 = Utf8               this\n+  #61 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore;\n+  #62 = Utf8               findRelevant\n+  #63 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+  #64 = Utf8               memoryId\n+  #65 = Utf8               Ljava/lang/Object;\n+  #66 = Utf8               referenceEmbedding\n+  #67 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n+  #68 = Utf8               maxResults\n+  #69 = Utf8               I\n+  #70 = Utf8               minScore\n+  #71 = Utf8               D\n+  #72 = Utf8               Signature\n+  #73 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n+  #74 = Utf8               SourceFile\n+  #75 = Utf8               EmbeddingStoreTest.java\n+  #76 = Utf8               InnerClasses\n+  #77 = Class              #78            // dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  #78 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  #79 = Utf8               MinimalEmbeddingStore\n+  #80 = Utf8               MemoryIdEmbeddingStore\n {\n   public dev.langchain4j.store.embedding.EmbeddingStoreTest$MemoryIdEmbeddingStore();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -103,46 +103,46 @@\n             0       5     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore;\n \n   public java.util.List<dev.langchain4j.store.embedding.EmbeddingMatch<java.lang.String>> findRelevant(java.lang.Object, dev.langchain4j.data.embedding.Embedding, int, double);\n     descriptor: (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=12, locals=6, args_size=5\n-         0: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+         0: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n          3: dup\n-         4: ldc2_w        #3                  // double 0.5d\n-         7: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        10: ldc           #6                  // String id\n+         4: ldc2_w        #9                  // double 0.5d\n+         7: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        10: ldc           #17                 // String id\n         12: aload_2\n-        13: getstatic     #7                  // Field java/util/Locale.US:Ljava/util/Locale;\n-        16: ldc           #8                  // String %s, %s, %d, %.2f\n+        13: getstatic     #19                 // Field java/util/Locale.US:Ljava/util/Locale;\n+        16: ldc           #25                 // String %s, %s, %d, %.2f\n         18: iconst_4\n-        19: anewarray     #9                  // class java/lang/Object\n+        19: anewarray     #27                 // class java/lang/Object\n         22: dup\n         23: iconst_0\n         24: aload_1\n         25: aastore\n         26: dup\n         27: iconst_1\n         28: aload_2\n-        29: invokevirtual #10                 // Method dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n+        29: invokevirtual #29                 // Method dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n         32: aastore\n         33: dup\n         34: iconst_2\n         35: iload_3\n-        36: invokestatic  #11                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        36: invokestatic  #35                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         39: aastore\n         40: dup\n         41: iconst_3\n         42: dload         4\n-        44: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        44: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n         47: aastore\n-        48: invokestatic  #12                 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-        51: invokespecial #13                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-        54: invokestatic  #14                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        48: invokestatic  #40                 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+        51: invokespecial #46                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        54: invokestatic  #49                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n         57: areturn\n       LineNumberTable:\n         line 58: 0\n         line 60: 7\n         line 67: 29\n         line 68: 36\n         line 69: 44\n@@ -151,13 +151,13 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      58     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore;\n             0      58     1 memoryId   Ljava/lang/Object;\n             0      58     2 referenceEmbedding   Ldev/langchain4j/data/embedding/Embedding;\n             0      58     3 maxResults   I\n             0      58     4 minScore   D\n-    Signature: #37                          // (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n+    Signature: #73                          // (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n }\n SourceFile: \"EmbeddingStoreTest.java\"\n InnerClasses:\n-  public static #23= #15 of #58;          // MemoryIdEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n-  public static #61= #16 of #58;          // MinimalEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  public static #79= #2 of #77;           // MinimalEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  public static #80= #55 of #77;          // MemoryIdEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.class", "source2": "dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,115 +1,115 @@\n-  SHA-256 checksum 92013d8f4677623e5fa95585d5839fe1c5b9609705ea0e1b596d608de708867f\n+  SHA-256 checksum 5c1bf237dfbda55f6fe892a2deec901af245c0b528f77b6cd0eff598b7d31684\n   Compiled from \"EmbeddingStoreTest.java\"\n public class dev.langchain4j.store.embedding.EmbeddingStoreTest$MinimalEmbeddingStore extends java.lang.Object implements dev.langchain4j.store.embedding.EmbeddingStore<java.lang.String>\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #17                         // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-  super_class: #9                         // java/lang/Object\n+  this_class: #54                         // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 8, attributes: 3\n Constant pool:\n-    #1 = Methodref          #9.#61        // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #62           // dev/langchain4j/store/embedding/EmbeddingMatch\n-    #3 = Double             0.5d\n-    #5 = Methodref          #63.#64       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-    #6 = String             #33           // id\n-    #7 = Fieldref           #65.#66       // java/util/Locale.US:Ljava/util/Locale;\n-    #8 = String             #67           // %s, %d, %.2f\n-    #9 = Class              #68           // java/lang/Object\n-   #10 = Methodref          #69.#70       // dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n-   #11 = Methodref          #71.#72       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #12 = Methodref          #15.#73       // java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-   #13 = Methodref          #2.#74        // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #14 = Methodref          #75.#76       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #15 = Class              #77           // java/lang/String\n-   #16 = Methodref          #17.#78       // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.add:(Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n-   #17 = Class              #80           // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-   #18 = Class              #81           // dev/langchain4j/store/embedding/EmbeddingStore\n-   #19 = Utf8               <init>\n-   #20 = Utf8               ()V\n-   #21 = Utf8               Code\n-   #22 = Utf8               LineNumberTable\n-   #23 = Utf8               LocalVariableTable\n-   #24 = Utf8               this\n-   #25 = Utf8               MinimalEmbeddingStore\n-   #26 = Utf8               InnerClasses\n-   #27 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore;\n-   #28 = Utf8               add\n-   #29 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;)Ljava/lang/String;\n-   #30 = Utf8               embedding\n-   #31 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n-   #32 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;)V\n-   #33 = Utf8               id\n-   #34 = Utf8               Ljava/lang/String;\n-   #35 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n-   #36 = Utf8               s\n-   #37 = Utf8               addAll\n-   #38 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-   #39 = Utf8               embeddings\n-   #40 = Utf8               Ljava/util/List;\n-   #41 = Utf8               LocalVariableTypeTable\n-   #42 = Utf8               Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n-   #43 = Utf8               Signature\n-   #44 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;)Ljava/util/List<Ljava/lang/String;>;\n-   #45 = Utf8               (Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n-   #46 = Utf8               embedded\n-   #47 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-   #48 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;\n-   #49 = Utf8               findRelevant\n-   #50 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n-   #51 = Utf8               referenceEmbedding\n-   #52 = Utf8               maxResults\n-   #53 = Utf8               I\n-   #54 = Utf8               minScore\n-   #55 = Utf8               D\n-   #56 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n-   #57 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)Ljava/lang/String;\n-   #58 = Utf8               Ljava/lang/Object;Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n-   #59 = Utf8               SourceFile\n-   #60 = Utf8               EmbeddingStoreTest.java\n-   #61 = NameAndType        #19:#20       // \"<init>\":()V\n-   #62 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n-   #63 = Class              #82           // java/lang/Double\n-   #64 = NameAndType        #83:#84       // valueOf:(D)Ljava/lang/Double;\n-   #65 = Class              #85           // java/util/Locale\n-   #66 = NameAndType        #86:#87       // US:Ljava/util/Locale;\n-   #67 = Utf8               %s, %d, %.2f\n-   #68 = Utf8               java/lang/Object\n-   #69 = Class              #88           // dev/langchain4j/data/embedding/Embedding\n-   #70 = NameAndType        #89:#90       // vectorAsList:()Ljava/util/List;\n-   #71 = Class              #91           // java/lang/Integer\n-   #72 = NameAndType        #83:#92       // valueOf:(I)Ljava/lang/Integer;\n-   #73 = NameAndType        #93:#94       // format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-   #74 = NameAndType        #19:#95       // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #75 = Class              #96           // java/util/Collections\n-   #76 = NameAndType        #97:#98       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #77 = Utf8               java/lang/String\n-   #78 = NameAndType        #28:#35       // add:(Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n-   #79 = Class              #99           // dev/langchain4j/store/embedding/EmbeddingStoreTest\n-   #80 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-   #81 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n-   #82 = Utf8               java/lang/Double\n-   #83 = Utf8               valueOf\n-   #84 = Utf8               (D)Ljava/lang/Double;\n-   #85 = Utf8               java/util/Locale\n-   #86 = Utf8               US\n-   #87 = Utf8               Ljava/util/Locale;\n-   #88 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #89 = Utf8               vectorAsList\n-   #90 = Utf8               ()Ljava/util/List;\n-   #91 = Utf8               java/lang/Integer\n-   #92 = Utf8               (I)Ljava/lang/Integer;\n-   #93 = Utf8               format\n-   #94 = Utf8               (Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-   #95 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #96 = Utf8               java/util/Collections\n-   #97 = Utf8               singletonList\n-   #98 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-   #99 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/store/embedding/EmbeddingMatch\n+    #8 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n+    #9 = Double             0.5d\n+   #11 = Methodref          #12.#13       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #12 = Class              #14           // java/lang/Double\n+   #13 = NameAndType        #15:#16       // valueOf:(D)Ljava/lang/Double;\n+   #14 = Utf8               java/lang/Double\n+   #15 = Utf8               valueOf\n+   #16 = Utf8               (D)Ljava/lang/Double;\n+   #17 = String             #18           // id\n+   #18 = Utf8               id\n+   #19 = Fieldref           #20.#21       // java/util/Locale.US:Ljava/util/Locale;\n+   #20 = Class              #22           // java/util/Locale\n+   #21 = NameAndType        #23:#24       // US:Ljava/util/Locale;\n+   #22 = Utf8               java/util/Locale\n+   #23 = Utf8               US\n+   #24 = Utf8               Ljava/util/Locale;\n+   #25 = String             #26           // %s, %d, %.2f\n+   #26 = Utf8               %s, %d, %.2f\n+   #27 = Methodref          #28.#29       // dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n+   #28 = Class              #30           // dev/langchain4j/data/embedding/Embedding\n+   #29 = NameAndType        #31:#32       // vectorAsList:()Ljava/util/List;\n+   #30 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #31 = Utf8               vectorAsList\n+   #32 = Utf8               ()Ljava/util/List;\n+   #33 = Methodref          #34.#35       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #34 = Class              #36           // java/lang/Integer\n+   #35 = NameAndType        #15:#37       // valueOf:(I)Ljava/lang/Integer;\n+   #36 = Utf8               java/lang/Integer\n+   #37 = Utf8               (I)Ljava/lang/Integer;\n+   #38 = Methodref          #39.#40       // java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+   #39 = Class              #41           // java/lang/String\n+   #40 = NameAndType        #42:#43       // format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+   #41 = Utf8               java/lang/String\n+   #42 = Utf8               format\n+   #43 = Utf8               (Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+   #44 = Methodref          #7.#45        // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #45 = NameAndType        #5:#46        // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #46 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #47 = Methodref          #48.#49       // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #48 = Class              #50           // java/util/Collections\n+   #49 = NameAndType        #51:#52       // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+   #50 = Utf8               java/util/Collections\n+   #51 = Utf8               singletonList\n+   #52 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+   #53 = Methodref          #54.#55       // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.add:(Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n+   #54 = Class              #56           // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+   #55 = NameAndType        #57:#58       // add:(Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n+   #56 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+   #57 = Utf8               add\n+   #58 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n+   #59 = Class              #60           // dev/langchain4j/store/embedding/EmbeddingStore\n+   #60 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n+   #61 = Utf8               Code\n+   #62 = Utf8               LineNumberTable\n+   #63 = Utf8               LocalVariableTable\n+   #64 = Utf8               this\n+   #65 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore;\n+   #66 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;)Ljava/lang/String;\n+   #67 = Utf8               embedding\n+   #68 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n+   #69 = Utf8               (Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;)V\n+   #70 = Utf8               Ljava/lang/String;\n+   #71 = Utf8               s\n+   #72 = Utf8               addAll\n+   #73 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+   #74 = Utf8               embeddings\n+   #75 = Utf8               Ljava/util/List;\n+   #76 = Utf8               LocalVariableTypeTable\n+   #77 = Utf8               Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n+   #78 = Utf8               Signature\n+   #79 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;)Ljava/util/List<Ljava/lang/String;>;\n+   #80 = Utf8               (Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n+   #81 = Utf8               embedded\n+   #82 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+   #83 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;\n+   #84 = Utf8               findRelevant\n+   #85 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n+   #86 = Utf8               referenceEmbedding\n+   #87 = Utf8               maxResults\n+   #88 = Utf8               I\n+   #89 = Utf8               minScore\n+   #90 = Utf8               D\n+   #91 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n+   #92 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)Ljava/lang/String;\n+   #93 = Utf8               Ljava/lang/Object;Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n+   #94 = Utf8               SourceFile\n+   #95 = Utf8               EmbeddingStoreTest.java\n+   #96 = Utf8               InnerClasses\n+   #97 = Class              #98           // dev/langchain4j/store/embedding/EmbeddingStoreTest\n+   #98 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest\n+   #99 = Utf8               MinimalEmbeddingStore\n {\n   public dev.langchain4j.store.embedding.EmbeddingStoreTest$MinimalEmbeddingStore();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -176,15 +176,15 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       2     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore;\n             0       2     1 embeddings   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       2     1 embeddings   Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n-    Signature: #44                          // (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;)Ljava/util/List<Ljava/lang/String;>;\n+    Signature: #79                          // (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;)Ljava/util/List<Ljava/lang/String;>;\n \n   public java.util.List<java.lang.String> addAll(java.util.List<dev.langchain4j.data.embedding.Embedding>, java.util.List<java.lang.String>);\n     descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=3, args_size=3\n          0: aconst_null\n@@ -196,49 +196,49 @@\n             0       2     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore;\n             0       2     1 embeddings   Ljava/util/List;\n             0       2     2 embedded   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       2     1 embeddings   Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n             0       2     2 embedded   Ljava/util/List<Ljava/lang/String;>;\n-    Signature: #48                          // (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;\n+    Signature: #83                          // (Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;\n \n   public java.util.List<dev.langchain4j.store.embedding.EmbeddingMatch<java.lang.String>> findRelevant(dev.langchain4j.data.embedding.Embedding, int, double);\n     descriptor: (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=12, locals=5, args_size=4\n-         0: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n+         0: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingMatch\n          3: dup\n-         4: ldc2_w        #3                  // double 0.5d\n-         7: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        10: ldc           #6                  // String id\n+         4: ldc2_w        #9                  // double 0.5d\n+         7: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        10: ldc           #17                 // String id\n         12: aload_1\n-        13: getstatic     #7                  // Field java/util/Locale.US:Ljava/util/Locale;\n-        16: ldc           #8                  // String %s, %d, %.2f\n+        13: getstatic     #19                 // Field java/util/Locale.US:Ljava/util/Locale;\n+        16: ldc           #25                 // String %s, %d, %.2f\n         18: iconst_3\n-        19: anewarray     #9                  // class java/lang/Object\n+        19: anewarray     #2                  // class java/lang/Object\n         22: dup\n         23: iconst_0\n         24: aload_1\n-        25: invokevirtual #10                 // Method dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n+        25: invokevirtual #27                 // Method dev/langchain4j/data/embedding/Embedding.vectorAsList:()Ljava/util/List;\n         28: aastore\n         29: dup\n         30: iconst_1\n         31: iload_2\n-        32: invokestatic  #11                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        32: invokestatic  #33                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n         35: aastore\n         36: dup\n         37: iconst_2\n         38: dload_3\n-        39: invokestatic  #5                  // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        39: invokestatic  #11                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n         42: aastore\n-        43: invokestatic  #12                 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-        46: invokespecial #13                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-        49: invokestatic  #14                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        43: invokestatic  #38                 // Method java/lang/String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+        46: invokespecial #44                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        49: invokestatic  #47                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n         52: areturn\n       LineNumberTable:\n         line 40: 0\n         line 42: 7\n         line 48: 25\n         line 49: 32\n         line 50: 39\n@@ -246,30 +246,30 @@\n         line 40: 49\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      53     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore;\n             0      53     1 referenceEmbedding   Ldev/langchain4j/data/embedding/Embedding;\n             0      53     2 maxResults   I\n             0      53     3 minScore   D\n-    Signature: #56                          // (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n+    Signature: #91                          // (Ldev/langchain4j/data/embedding/Embedding;ID)Ljava/util/List<Ldev/langchain4j/store/embedding/EmbeddingMatch<Ljava/lang/String;>;>;\n \n   public java.lang.String add(dev.langchain4j.data.embedding.Embedding, java.lang.Object);\n     descriptor: (Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)Ljava/lang/String;\n     flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=3, args_size=3\n          0: aload_0\n          1: aload_1\n          2: aload_2\n-         3: checkcast     #15                 // class java/lang/String\n-         6: invokevirtual #16                 // Method add:(Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n+         3: checkcast     #39                 // class java/lang/String\n+         6: invokevirtual #53                 // Method add:(Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/String;)Ljava/lang/String;\n          9: areturn\n       LineNumberTable:\n         line 12: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore;\n }\n-Signature: #58                          // Ljava/lang/Object;Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n+Signature: #93                          // Ljava/lang/Object;Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n SourceFile: \"EmbeddingStoreTest.java\"\n InnerClasses:\n-  public static #25= #17 of #79;          // MinimalEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  public static #99= #54 of #97;          // MinimalEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingStoreTest.class", "source2": "dev/langchain4j/store/embedding/EmbeddingStoreTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,152 +1,152 @@\n-  SHA-256 checksum be0a510d23acb7fe4c9101465cd31ebabe1061c80b615c8584d9b79eb6086e64\n+  SHA-256 checksum 58210d47a7ccdf374caa1e53c96dbd1f35964deb9c71bc66dd701ed58f6d1c34\n   Compiled from \"EmbeddingStoreTest.java\"\n class dev.langchain4j.store.embedding.EmbeddingStoreTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #30                         // dev/langchain4j/store/embedding/EmbeddingStoreTest\n-  super_class: #31                        // java/lang/Object\n+  this_class: #24                         // dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 4, attributes: 3\n Constant pool:\n-    #1 = Methodref          #31.#59       // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #60           // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-    #3 = Methodref          #2.#59        // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.\"<init>\":()V\n-    #4 = Class              #61           // dev/langchain4j/data/embedding/Embedding\n-    #5 = Float              0.5f\n-    #6 = Float              1.5f\n-    #7 = Methodref          #4.#62        // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n-    #8 = InterfaceMethodref #63.#64       // dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-    #9 = Methodref          #30.#65       // dev/langchain4j/store/embedding/EmbeddingStoreTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #10 = Class              #66           // dev/langchain4j/store/embedding/EmbeddingMatch\n-   #11 = Double             0.5d\n-   #13 = Methodref          #67.#68       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #14 = String             #69           // id\n-   #15 = String             #70           // [0.5, 1.5], 12, 0.00\n-   #16 = Methodref          #10.#71       // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #17 = Methodref          #72.#73       // org/assertj/core/api/ListAssert.contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #18 = Class              #74           // java/lang/RuntimeException\n-   #19 = Methodref          #30.#75       // dev/langchain4j/store/embedding/EmbeddingStoreTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #20 = InvokeDynamic      #0:#80        // #0:call:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #21 = Methodref          #81.#82       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #22 = String             #83           // Not implemented\n-   #23 = Methodref          #84.#85       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #24 = Class              #86           // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n-   #25 = Methodref          #24.#59       // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.\"<init>\":()V\n-   #26 = String             #87           // abc\n-   #27 = InterfaceMethodref #63.#88       // dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-   #28 = String             #89           // abc, [0.5, 1.5], 12, 0.00\n-   #29 = String             #90           // MemoryId\n-   #30 = Class              #91           // dev/langchain4j/store/embedding/EmbeddingStoreTest\n-   #31 = Class              #92           // java/lang/Object\n-   #32 = Class              #93           // org/assertj/core/api/WithAssertions\n-   #33 = Utf8               MemoryIdEmbeddingStore\n-   #34 = Utf8               InnerClasses\n-   #35 = Utf8               MinimalEmbeddingStore\n-   #36 = Utf8               <init>\n-   #37 = Utf8               ()V\n-   #38 = Utf8               Code\n-   #39 = Utf8               LineNumberTable\n-   #40 = Utf8               LocalVariableTable\n-   #41 = Utf8               this\n-   #42 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreTest;\n-   #43 = Utf8               test\n-   #44 = Utf8               store\n-   #45 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore;\n-   #46 = Utf8               referenceEmbedding\n-   #47 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n-   #48 = Utf8               LocalVariableTypeTable\n-   #49 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n-   #50 = Utf8               RuntimeVisibleAnnotations\n-   #51 = Utf8               Lorg/junit/jupiter/api/Test;\n-   #52 = Utf8               test_memoryId\n-   #53 = Utf8               lambda$test$0\n-   #54 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n-   #55 = Utf8               Exceptions\n-   #56 = Class              #94           // java/lang/Throwable\n-   #57 = Utf8               SourceFile\n-   #58 = Utf8               EmbeddingStoreTest.java\n-   #59 = NameAndType        #36:#37       // \"<init>\":()V\n-   #60 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n-   #61 = Utf8               dev/langchain4j/data/embedding/Embedding\n-   #62 = NameAndType        #36:#95       // \"<init>\":([F)V\n-   #63 = Class              #96           // dev/langchain4j/store/embedding/EmbeddingStore\n-   #64 = NameAndType        #97:#98       // findRelevant:(Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-   #65 = NameAndType        #99:#100      // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #66 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n-   #67 = Class              #101          // java/lang/Double\n-   #68 = NameAndType        #102:#103     // valueOf:(D)Ljava/lang/Double;\n-   #69 = Utf8               id\n-   #70 = Utf8               [0.5, 1.5], 12, 0.00\n-   #71 = NameAndType        #36:#104      // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-   #72 = Class              #105          // org/assertj/core/api/ListAssert\n-   #73 = NameAndType        #106:#107     // contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-   #74 = Utf8               java/lang/RuntimeException\n-   #75 = NameAndType        #108:#109     // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-   #76 = Utf8               BootstrapMethods\n-   #77 = MethodHandle       6:#110        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-   #78 = MethodType         #37           //  ()V\n-   #79 = MethodHandle       6:#111        // REF_invokeStatic dev/langchain4j/store/embedding/EmbeddingStoreTest.lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n-   #80 = NameAndType        #112:#115     // call:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-   #81 = Class              #116          // org/assertj/core/api/ThrowableTypeAssert\n-   #82 = NameAndType        #117:#118     // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #83 = Utf8               Not implemented\n-   #84 = Class              #119          // org/assertj/core/api/ThrowableAssertAlternative\n-   #85 = NameAndType        #120:#121     // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-   #86 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n-   #87 = Utf8               abc\n-   #88 = NameAndType        #97:#122      // findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-   #89 = Utf8               abc, [0.5, 1.5], 12, 0.00\n-   #90 = Utf8               MemoryId\n-   #91 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest\n-   #92 = Utf8               java/lang/Object\n-   #93 = Utf8               org/assertj/core/api/WithAssertions\n-   #94 = Utf8               java/lang/Throwable\n-   #95 = Utf8               ([F)V\n-   #96 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n-   #97 = Utf8               findRelevant\n-   #98 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-   #99 = Utf8               assertThat\n-  #100 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #101 = Utf8               java/lang/Double\n-  #102 = Utf8               valueOf\n-  #103 = Utf8               (D)Ljava/lang/Double;\n-  #104 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n-  #105 = Utf8               org/assertj/core/api/ListAssert\n-  #106 = Utf8               contains\n-  #107 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #108 = Utf8               assertThatExceptionOfType\n-  #109 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n-  #110 = Methodref          #123.#124     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #111 = Methodref          #30.#125      // dev/langchain4j/store/embedding/EmbeddingStoreTest.lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n-  #112 = Utf8               call\n-  #113 = Class              #127          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #114 = Utf8               ThrowingCallable\n-  #115 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-  #116 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n-  #117 = Utf8               isThrownBy\n-  #118 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #119 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n-  #120 = Utf8               withMessage\n-  #121 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-  #122 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-  #123 = Class              #128          // java/lang/invoke/LambdaMetafactory\n-  #124 = NameAndType        #129:#132     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #125 = NameAndType        #53:#54       // lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n-  #126 = Class              #133          // org/assertj/core/api/ThrowableAssert\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+    #8 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+    #9 = Methodref          #7.#3         // dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.\"<init>\":()V\n+   #10 = Class              #11           // dev/langchain4j/data/embedding/Embedding\n+   #11 = Utf8               dev/langchain4j/data/embedding/Embedding\n+   #12 = Float              0.5f\n+   #13 = Float              1.5f\n+   #14 = Methodref          #10.#15       // dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+   #15 = NameAndType        #5:#16        // \"<init>\":([F)V\n+   #16 = Utf8               ([F)V\n+   #17 = InterfaceMethodref #18.#19       // dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+   #18 = Class              #20           // dev/langchain4j/store/embedding/EmbeddingStore\n+   #19 = NameAndType        #21:#22       // findRelevant:(Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+   #20 = Utf8               dev/langchain4j/store/embedding/EmbeddingStore\n+   #21 = Utf8               findRelevant\n+   #22 = Utf8               (Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+   #23 = Methodref          #24.#25       // dev/langchain4j/store/embedding/EmbeddingStoreTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #24 = Class              #26           // dev/langchain4j/store/embedding/EmbeddingStoreTest\n+   #25 = NameAndType        #27:#28       // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #26 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest\n+   #27 = Utf8               assertThat\n+   #28 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+   #29 = Class              #30           // dev/langchain4j/store/embedding/EmbeddingMatch\n+   #30 = Utf8               dev/langchain4j/store/embedding/EmbeddingMatch\n+   #31 = Double             0.5d\n+   #33 = Methodref          #34.#35       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #34 = Class              #36           // java/lang/Double\n+   #35 = NameAndType        #37:#38       // valueOf:(D)Ljava/lang/Double;\n+   #36 = Utf8               java/lang/Double\n+   #37 = Utf8               valueOf\n+   #38 = Utf8               (D)Ljava/lang/Double;\n+   #39 = String             #40           // id\n+   #40 = Utf8               id\n+   #41 = String             #42           // [0.5, 1.5], 12, 0.00\n+   #42 = Utf8               [0.5, 1.5], 12, 0.00\n+   #43 = Methodref          #29.#44       // dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #44 = NameAndType        #5:#45        // \"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #45 = Utf8               (Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+   #46 = Methodref          #47.#48       // org/assertj/core/api/ListAssert.contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #47 = Class              #49           // org/assertj/core/api/ListAssert\n+   #48 = NameAndType        #50:#51       // contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #49 = Utf8               org/assertj/core/api/ListAssert\n+   #50 = Utf8               contains\n+   #51 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+   #52 = Class              #53           // java/lang/RuntimeException\n+   #53 = Utf8               java/lang/RuntimeException\n+   #54 = Methodref          #24.#55       // dev/langchain4j/store/embedding/EmbeddingStoreTest.assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #55 = NameAndType        #56:#57       // assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #56 = Utf8               assertThatExceptionOfType\n+   #57 = Utf8               (Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+   #58 = InvokeDynamic      #0:#59        // #0:call:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #59 = NameAndType        #60:#61       // call:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #60 = Utf8               call\n+   #61 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+   #62 = Methodref          #63.#64       // org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #63 = Class              #65           // org/assertj/core/api/ThrowableTypeAssert\n+   #64 = NameAndType        #66:#67       // isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #65 = Utf8               org/assertj/core/api/ThrowableTypeAssert\n+   #66 = Utf8               isThrownBy\n+   #67 = Utf8               (Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #68 = String             #69           // Not implemented\n+   #69 = Utf8               Not implemented\n+   #70 = Methodref          #71.#72       // org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #71 = Class              #73           // org/assertj/core/api/ThrowableAssertAlternative\n+   #72 = NameAndType        #74:#75       // withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #73 = Utf8               org/assertj/core/api/ThrowableAssertAlternative\n+   #74 = Utf8               withMessage\n+   #75 = Utf8               (Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+   #76 = Class              #77           // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n+   #77 = Utf8               dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n+   #78 = Methodref          #76.#3        // dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.\"<init>\":()V\n+   #79 = String             #80           // abc\n+   #80 = Utf8               abc\n+   #81 = InterfaceMethodref #18.#82       // dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+   #82 = NameAndType        #21:#83       // findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+   #83 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+   #84 = String             #85           // abc, [0.5, 1.5], 12, 0.00\n+   #85 = Utf8               abc, [0.5, 1.5], 12, 0.00\n+   #86 = String             #87           // MemoryId\n+   #87 = Utf8               MemoryId\n+   #88 = Class              #89           // org/assertj/core/api/WithAssertions\n+   #89 = Utf8               org/assertj/core/api/WithAssertions\n+   #90 = Utf8               Code\n+   #91 = Utf8               LineNumberTable\n+   #92 = Utf8               LocalVariableTable\n+   #93 = Utf8               this\n+   #94 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStoreTest;\n+   #95 = Utf8               test\n+   #96 = Utf8               store\n+   #97 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore;\n+   #98 = Utf8               referenceEmbedding\n+   #99 = Utf8               Ldev/langchain4j/data/embedding/Embedding;\n+  #100 = Utf8               LocalVariableTypeTable\n+  #101 = Utf8               Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n+  #102 = Utf8               RuntimeVisibleAnnotations\n+  #103 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #104 = Utf8               test_memoryId\n+  #105 = Utf8               lambda$test$0\n+  #106 = Utf8               (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #107 = Utf8               Exceptions\n+  #108 = Class              #109          // java/lang/Throwable\n+  #109 = Utf8               java/lang/Throwable\n+  #110 = Utf8               SourceFile\n+  #111 = Utf8               EmbeddingStoreTest.java\n+  #112 = Utf8               BootstrapMethods\n+  #113 = MethodHandle       6:#114        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #114 = Methodref          #115.#116     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #115 = Class              #117          // java/lang/invoke/LambdaMetafactory\n+  #116 = NameAndType        #118:#119     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #117 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #118 = Utf8               metafactory\n+  #119 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #120 = MethodType         #6            //  ()V\n+  #121 = MethodHandle       6:#122        // REF_invokeStatic dev/langchain4j/store/embedding/EmbeddingStoreTest.lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #122 = Methodref          #24.#123      // dev/langchain4j/store/embedding/EmbeddingStoreTest.lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #123 = NameAndType        #105:#106     // lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n+  #124 = Utf8               InnerClasses\n+  #125 = Utf8               MinimalEmbeddingStore\n+  #126 = Class              #127          // org/assertj/core/api/ThrowableAssert$ThrowingCallable\n   #127 = Utf8               org/assertj/core/api/ThrowableAssert$ThrowingCallable\n-  #128 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #129 = Utf8               metafactory\n-  #130 = Class              #135          // java/lang/invoke/MethodHandles$Lookup\n-  #131 = Utf8               Lookup\n-  #132 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #133 = Utf8               org/assertj/core/api/ThrowableAssert\n-  #134 = Class              #136          // java/lang/invoke/MethodHandles\n-  #135 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #136 = Utf8               java/lang/invoke/MethodHandles\n+  #128 = Class              #129          // org/assertj/core/api/ThrowableAssert\n+  #129 = Utf8               org/assertj/core/api/ThrowableAssert\n+  #130 = Utf8               ThrowingCallable\n+  #131 = Utf8               MemoryIdEmbeddingStore\n+  #132 = Class              #133          // java/lang/invoke/MethodHandles$Lookup\n+  #133 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #134 = Class              #135          // java/lang/invoke/MethodHandles\n+  #135 = Utf8               java/lang/invoke/MethodHandles\n+  #136 = Utf8               Lookup\n {\n   dev.langchain4j.store.embedding.EmbeddingStoreTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -159,62 +159,62 @@\n             0       5     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=10, locals=3, args_size=1\n-         0: new           #2                  // class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n+         0: new           #7                  // class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore.\"<init>\":()V\n          7: astore_1\n-         8: new           #4                  // class dev/langchain4j/data/embedding/Embedding\n+         8: new           #10                 // class dev/langchain4j/data/embedding/Embedding\n         11: dup\n         12: iconst_2\n         13: newarray       float\n         15: dup\n         16: iconst_0\n-        17: ldc           #5                  // float 0.5f\n+        17: ldc           #12                 // float 0.5f\n         19: fastore\n         20: dup\n         21: iconst_1\n-        22: ldc           #6                  // float 1.5f\n+        22: ldc           #13                 // float 1.5f\n         24: fastore\n-        25: invokespecial #7                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        25: invokespecial #14                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         28: astore_2\n         29: aload_0\n         30: aload_1\n         31: aload_2\n         32: bipush        12\n-        34: invokeinterface #8,  3            // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-        39: invokevirtual #9                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        34: invokeinterface #17,  3           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+        39: invokevirtual #23                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         42: iconst_1\n-        43: anewarray     #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        43: anewarray     #29                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         46: dup\n         47: iconst_0\n-        48: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        48: new           #29                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         51: dup\n-        52: ldc2_w        #11                 // double 0.5d\n-        55: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        58: ldc           #14                 // String id\n+        52: ldc2_w        #31                 // double 0.5d\n+        55: invokestatic  #33                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        58: ldc           #39                 // String id\n         60: aload_2\n-        61: ldc           #15                 // String [0.5, 1.5], 12, 0.00\n-        63: invokespecial #16                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        61: ldc           #41                 // String [0.5, 1.5], 12, 0.00\n+        63: invokespecial #43                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         66: aastore\n-        67: invokevirtual #17                 // Method org/assertj/core/api/ListAssert.contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        67: invokevirtual #46                 // Method org/assertj/core/api/ListAssert.contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         70: pop\n         71: aload_0\n-        72: ldc           #18                 // class java/lang/RuntimeException\n-        74: invokevirtual #19                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n+        72: ldc           #52                 // class java/lang/RuntimeException\n+        74: invokevirtual #54                 // Method assertThatExceptionOfType:(Ljava/lang/Class;)Lorg/assertj/core/api/ThrowableTypeAssert;\n         77: aload_1\n         78: aload_2\n-        79: invokedynamic #20,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n-        84: invokevirtual #21                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n-        87: ldc           #22                 // String Not implemented\n-        89: invokevirtual #23                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        79: invokedynamic #58,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;\n+        84: invokevirtual #62                 // Method org/assertj/core/api/ThrowableTypeAssert.isThrownBy:(Lorg/assertj/core/api/ThrowableAssert$ThrowingCallable;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n+        87: ldc           #68                 // String Not implemented\n+        89: invokevirtual #70                 // Method org/assertj/core/api/ThrowableAssertAlternative.withMessage:(Ljava/lang/String;)Lorg/assertj/core/api/ThrowableAssertAlternative;\n         92: pop\n         93: return\n       LineNumberTable:\n         line 75: 0\n         line 77: 8\n         line 79: 29\n         line 82: 55\n@@ -228,61 +228,61 @@\n             0      94     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest;\n             8      86     1 store   Ldev/langchain4j/store/embedding/EmbeddingStore;\n            29      65     2 referenceEmbedding   Ldev/langchain4j/data/embedding/Embedding;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      86     1 store   Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #51()\n+      0: #103()\n         org.junit.jupiter.api.Test\n \n   public void test_memoryId();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=10, locals=3, args_size=1\n-         0: new           #24                 // class dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n+         0: new           #76                 // class dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore\n          3: dup\n-         4: invokespecial #25                 // Method dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.\"<init>\":()V\n+         4: invokespecial #78                 // Method dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore.\"<init>\":()V\n          7: astore_1\n-         8: new           #4                  // class dev/langchain4j/data/embedding/Embedding\n+         8: new           #10                 // class dev/langchain4j/data/embedding/Embedding\n         11: dup\n         12: iconst_2\n         13: newarray       float\n         15: dup\n         16: iconst_0\n-        17: ldc           #5                  // float 0.5f\n+        17: ldc           #12                 // float 0.5f\n         19: fastore\n         20: dup\n         21: iconst_1\n-        22: ldc           #6                  // float 1.5f\n+        22: ldc           #13                 // float 1.5f\n         24: fastore\n-        25: invokespecial #7                  // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n+        25: invokespecial #14                 // Method dev/langchain4j/data/embedding/Embedding.\"<init>\":([F)V\n         28: astore_2\n         29: aload_0\n         30: aload_1\n-        31: ldc           #26                 // String abc\n+        31: ldc           #79                 // String abc\n         33: aload_2\n         34: bipush        12\n-        36: invokeinterface #27,  4           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n-        41: invokevirtual #9                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        36: invokeinterface #81,  4           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+        41: invokevirtual #23                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         44: iconst_1\n-        45: anewarray     #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        45: anewarray     #29                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         48: dup\n         49: iconst_0\n-        50: new           #10                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n+        50: new           #29                 // class dev/langchain4j/store/embedding/EmbeddingMatch\n         53: dup\n-        54: ldc2_w        #11                 // double 0.5d\n-        57: invokestatic  #13                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-        60: ldc           #14                 // String id\n+        54: ldc2_w        #31                 // double 0.5d\n+        57: invokestatic  #33                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+        60: ldc           #39                 // String id\n         62: aload_2\n-        63: ldc           #28                 // String abc, [0.5, 1.5], 12, 0.00\n-        65: invokespecial #16                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n+        63: ldc           #84                 // String abc, [0.5, 1.5], 12, 0.00\n+        65: invokespecial #43                 // Method dev/langchain4j/store/embedding/EmbeddingMatch.\"<init>\":(Ljava/lang/Double;Ljava/lang/String;Ldev/langchain4j/data/embedding/Embedding;Ljava/lang/Object;)V\n         68: aastore\n-        69: invokevirtual #17                 // Method org/assertj/core/api/ListAssert.contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        69: invokevirtual #46                 // Method org/assertj/core/api/ListAssert.contains:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         72: pop\n         73: return\n       LineNumberTable:\n         line 94: 0\n         line 96: 8\n         line 98: 29\n         line 101: 57\n@@ -293,43 +293,43 @@\n             0      74     0  this   Ldev/langchain4j/store/embedding/EmbeddingStoreTest;\n             8      66     1 store   Ldev/langchain4j/store/embedding/EmbeddingStore;\n            29      45     2 referenceEmbedding   Ldev/langchain4j/data/embedding/Embedding;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             8      66     1 store   Ldev/langchain4j/store/embedding/EmbeddingStore<Ljava/lang/String;>;\n     RuntimeVisibleAnnotations:\n-      0: #51()\n+      0: #103()\n         org.junit.jupiter.api.Test\n \n   private static void lambda$test$0(dev.langchain4j.store.embedding.EmbeddingStore, dev.langchain4j.data.embedding.Embedding) throws java.lang.Throwable;\n     descriptor: (Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=4, locals=2, args_size=2\n          0: aload_0\n-         1: ldc           #29                 // String MemoryId\n+         1: ldc           #86                 // String MemoryId\n          3: aload_1\n          4: bipush        12\n-         6: invokeinterface #27,  4           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n+         6: invokeinterface #81,  4           // InterfaceMethod dev/langchain4j/store/embedding/EmbeddingStore.findRelevant:(Ljava/lang/Object;Ldev/langchain4j/data/embedding/Embedding;I)Ljava/util/List;\n         11: pop\n         12: return\n       LineNumberTable:\n         line 88: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      13     0 store   Ldev/langchain4j/store/embedding/EmbeddingStore;\n             0      13     1 referenceEmbedding   Ldev/langchain4j/data/embedding/Embedding;\n     Exceptions:\n       throws java.lang.Throwable\n }\n SourceFile: \"EmbeddingStoreTest.java\"\n-InnerClasses:\n-  public static #33= #24 of #30;          // MemoryIdEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n-  public static #35= #2 of #30;           // MinimalEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n-  public static #114= #113 of #126;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n-  public static final #131= #130 of #134; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #77 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #113 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #78 ()V\n-      #79 REF_invokeStatic dev/langchain4j/store/embedding/EmbeddingStoreTest.lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n-      #78 ()V\n+      #120 ()V\n+      #121 REF_invokeStatic dev/langchain4j/store/embedding/EmbeddingStoreTest.lambda$test$0:(Ldev/langchain4j/store/embedding/EmbeddingStore;Ldev/langchain4j/data/embedding/Embedding;)V\n+      #120 ()V\n+InnerClasses:\n+  public static #125= #7 of #24;          // MinimalEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MinimalEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  public static #130= #126 of #128;       // ThrowingCallable=class org/assertj/core/api/ThrowableAssert$ThrowingCallable of class org/assertj/core/api/ThrowableAssert\n+  public static #131= #76 of #24;         // MemoryIdEmbeddingStore=class dev/langchain4j/store/embedding/EmbeddingStoreTest$MemoryIdEmbeddingStore of class dev/langchain4j/store/embedding/EmbeddingStoreTest\n+  public static final #136= #132 of #134; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/store/embedding/EmbeddingStoreWithoutMetadataIT.class", "source2": "dev/langchain4j/store/embedding/EmbeddingStoreWithoutMetadataIT.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -40,30 +40,30 @@\n         this.awaitUntilPersisted();\n         final List<EmbeddingMatch<TextSegment>> relevant = this.embeddingStore().findRelevant(embedding, 10);\n         Assertions.assertThat((List)relevant).hasSize(1);\n         final EmbeddingMatch<TextSegment> match = (EmbeddingMatch<TextSegment>)relevant.get(0);\n         Assertions.assertThat(match.score()).isCloseTo(1.0, Percentage.withPercentage(1.0));\n         Assertions.assertThat(match.embeddingId()).isEqualTo(id);\n         Assertions.assertThat((Object)match.embedding()).isEqualTo((Object)embedding);\n-        Assertions.assertThat(match.embedded()).isNull();\n+        Assertions.assertThat((Object)match.embedded()).isNull();\n     }\n     \n     @Test\n     void should_add_embedding_with_id() {\n         final String id = Utils.randomUUID();\n         final Embedding embedding = (Embedding)this.embeddingModel().embed(\"hello\").content();\n         this.embeddingStore().add(id, embedding);\n         this.awaitUntilPersisted();\n         final List<EmbeddingMatch<TextSegment>> relevant = this.embeddingStore().findRelevant(embedding, 10);\n         Assertions.assertThat((List)relevant).hasSize(1);\n         final EmbeddingMatch<TextSegment> match = (EmbeddingMatch<TextSegment>)relevant.get(0);\n         Assertions.assertThat(match.score()).isCloseTo(1.0, Percentage.withPercentage(1.0));\n         Assertions.assertThat(match.embeddingId()).isEqualTo(id);\n         Assertions.assertThat((Object)match.embedding()).isEqualTo((Object)embedding);\n-        Assertions.assertThat(match.embedded()).isNull();\n+        Assertions.assertThat((Object)match.embedded()).isNull();\n     }\n     \n     @Test\n     void should_add_embedding_with_segment() {\n         final TextSegment segment = TextSegment.from(\"hello\");\n         final Embedding embedding = (Embedding)this.embeddingModel().embed(segment.text()).content();\n         final String id = this.embeddingStore().add(embedding, (Object)segment);\n@@ -71,15 +71,15 @@\n         this.awaitUntilPersisted();\n         final List<EmbeddingMatch<TextSegment>> relevant = this.embeddingStore().findRelevant(embedding, 10);\n         Assertions.assertThat((List)relevant).hasSize(1);\n         final EmbeddingMatch<TextSegment> match = (EmbeddingMatch<TextSegment>)relevant.get(0);\n         Assertions.assertThat(match.score()).isCloseTo(1.0, Percentage.withPercentage(1.0));\n         Assertions.assertThat(match.embeddingId()).isEqualTo(id);\n         Assertions.assertThat((Object)match.embedding()).isEqualTo((Object)embedding);\n-        Assertions.assertThat(match.embedded()).isEqualTo((Object)segment);\n+        Assertions.assertThat((Object)match.embedded()).isEqualTo((Object)segment);\n     }\n     \n     @Test\n     void should_add_multiple_embeddings() {\n         final Embedding firstEmbedding = (Embedding)this.embeddingModel().embed(\"hello\").content();\n         final Embedding secondEmbedding = (Embedding)this.embeddingModel().embed(\"hi\").content();\n         final List<String> ids = this.embeddingStore().addAll((List)Arrays.asList(firstEmbedding, secondEmbedding));\n@@ -90,20 +90,20 @@\n         this.awaitUntilPersisted();\n         final List<EmbeddingMatch<TextSegment>> relevant = this.embeddingStore().findRelevant(firstEmbedding, 10);\n         Assertions.assertThat((List)relevant).hasSize(2);\n         final EmbeddingMatch<TextSegment> firstMatch = (EmbeddingMatch<TextSegment>)relevant.get(0);\n         Assertions.assertThat(firstMatch.score()).isCloseTo(1.0, Percentage.withPercentage(1.0));\n         Assertions.assertThat(firstMatch.embeddingId()).isEqualTo((String)ids.get(0));\n         Assertions.assertThat((Object)firstMatch.embedding()).isEqualTo((Object)firstEmbedding);\n-        Assertions.assertThat(firstMatch.embedded()).isNull();\n+        Assertions.assertThat((Object)firstMatch.embedded()).isNull();\n         final EmbeddingMatch<TextSegment> secondMatch = (EmbeddingMatch<TextSegment>)relevant.get(1);\n         Assertions.assertThat(secondMatch.score()).isCloseTo(RelevanceScore.fromCosineSimilarity(CosineSimilarity.between(firstEmbedding, secondEmbedding)), Percentage.withPercentage(1.0));\n         Assertions.assertThat(secondMatch.embeddingId()).isEqualTo((String)ids.get(1));\n         Assertions.assertThat(CosineSimilarity.between(secondMatch.embedding(), secondEmbedding)).isCloseTo(1.0, Percentage.withPercentage(0.01));\n-        Assertions.assertThat(secondMatch.embedded()).isNull();\n+        Assertions.assertThat((Object)secondMatch.embedded()).isNull();\n     }\n     \n     @Test\n     void should_add_multiple_embeddings_with_segments() {\n         final TextSegment firstSegment = TextSegment.from(\"hello\");\n         final Embedding firstEmbedding = (Embedding)this.embeddingModel().embed(firstSegment.text()).content();\n         final TextSegment secondSegment = TextSegment.from(\"hi\");\n@@ -116,20 +116,20 @@\n         this.awaitUntilPersisted();\n         final List<EmbeddingMatch<TextSegment>> relevant = this.embeddingStore().findRelevant(firstEmbedding, 10);\n         Assertions.assertThat((List)relevant).hasSize(2);\n         final EmbeddingMatch<TextSegment> firstMatch = (EmbeddingMatch<TextSegment>)relevant.get(0);\n         Assertions.assertThat(firstMatch.score()).isCloseTo(1.0, Percentage.withPercentage(1.0));\n         Assertions.assertThat(firstMatch.embeddingId()).isEqualTo((String)ids.get(0));\n         Assertions.assertThat((Object)firstMatch.embedding()).isEqualTo((Object)firstEmbedding);\n-        Assertions.assertThat(firstMatch.embedded()).isEqualTo((Object)firstSegment);\n+        Assertions.assertThat((Object)firstMatch.embedded()).isEqualTo((Object)firstSegment);\n         final EmbeddingMatch<TextSegment> secondMatch = (EmbeddingMatch<TextSegment>)relevant.get(1);\n         Assertions.assertThat(secondMatch.score()).isCloseTo(RelevanceScore.fromCosineSimilarity(CosineSimilarity.between(firstEmbedding, secondEmbedding)), Percentage.withPercentage(1.0));\n         Assertions.assertThat(secondMatch.embeddingId()).isEqualTo((String)ids.get(1));\n         Assertions.assertThat(CosineSimilarity.between(secondMatch.embedding(), secondEmbedding)).isCloseTo(1.0, Percentage.withPercentage(0.01));\n-        Assertions.assertThat(secondMatch.embedded()).isEqualTo((Object)secondSegment);\n+        Assertions.assertThat((Object)secondMatch.embedded()).isEqualTo((Object)secondSegment);\n     }\n     \n     @Test\n     void should_find_with_min_score() {\n         final String firstId = Utils.randomUUID();\n         final Embedding firstEmbedding = (Embedding)this.embeddingModel().embed(\"hello\").content();\n         this.embeddingStore().add(firstId, firstEmbedding);\n"}]}, {"source1": "dev/langchain4j/store/embedding/RelevanceScoreTest.class", "source2": "dev/langchain4j/store/embedding/RelevanceScoreTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,54 +1,54 @@\n-  SHA-256 checksum f35af2b62b043f0a1229b9675f3861249975da08e8fc8926643cdd980ae6bb1d\n+  SHA-256 checksum ac2ea3846818d26922ac0c3f2ce060eb6ed36f6eb7a101b34c744997a8060ac8\n   Compiled from \"RelevanceScoreTest.java\"\n class dev.langchain4j.store.embedding.RelevanceScoreTest\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #9                          // dev/langchain4j/store/embedding/RelevanceScoreTest\n-  super_class: #10                        // java/lang/Object\n+  this_class: #28                         // dev/langchain4j/store/embedding/RelevanceScoreTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 2, attributes: 1\n Constant pool:\n-   #1 = Methodref          #10.#23        // java/lang/Object.\"<init>\":()V\n-   #2 = Double             -1.0d\n-   #4 = Methodref          #24.#25        // dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n-   #5 = Methodref          #26.#27        // org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #6 = Methodref          #28.#29        // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-   #7 = Double             0.5d\n-   #9 = Class              #30            // dev/langchain4j/store/embedding/RelevanceScoreTest\n-  #10 = Class              #31            // java/lang/Object\n-  #11 = Utf8               <init>\n-  #12 = Utf8               ()V\n-  #13 = Utf8               Code\n-  #14 = Utf8               LineNumberTable\n-  #15 = Utf8               LocalVariableTable\n-  #16 = Utf8               this\n-  #17 = Utf8               Ldev/langchain4j/store/embedding/RelevanceScoreTest;\n-  #18 = Utf8               should_convert_cosine_similarity_into_relevance_score\n-  #19 = Utf8               RuntimeVisibleAnnotations\n-  #20 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #21 = Utf8               SourceFile\n-  #22 = Utf8               RelevanceScoreTest.java\n-  #23 = NameAndType        #11:#12        // \"<init>\":()V\n-  #24 = Class              #32            // dev/langchain4j/store/embedding/RelevanceScore\n-  #25 = NameAndType        #33:#34        // fromCosineSimilarity:(D)D\n-  #26 = Class              #35            // org/assertj/core/api/Assertions\n-  #27 = NameAndType        #36:#37        // assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #28 = Class              #38            // org/assertj/core/api/AbstractDoubleAssert\n-  #29 = NameAndType        #39:#37        // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #30 = Utf8               dev/langchain4j/store/embedding/RelevanceScoreTest\n-  #31 = Utf8               java/lang/Object\n-  #32 = Utf8               dev/langchain4j/store/embedding/RelevanceScore\n-  #33 = Utf8               fromCosineSimilarity\n-  #34 = Utf8               (D)D\n-  #35 = Utf8               org/assertj/core/api/Assertions\n-  #36 = Utf8               assertThat\n-  #37 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-  #38 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n-  #39 = Utf8               isEqualTo\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Double             -1.0d\n+   #9 = Methodref          #10.#11        // dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n+  #10 = Class              #12            // dev/langchain4j/store/embedding/RelevanceScore\n+  #11 = NameAndType        #13:#14        // fromCosineSimilarity:(D)D\n+  #12 = Utf8               dev/langchain4j/store/embedding/RelevanceScore\n+  #13 = Utf8               fromCosineSimilarity\n+  #14 = Utf8               (D)D\n+  #15 = Methodref          #16.#17        // org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #16 = Class              #18            // org/assertj/core/api/Assertions\n+  #17 = NameAndType        #19:#20        // assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #18 = Utf8               org/assertj/core/api/Assertions\n+  #19 = Utf8               assertThat\n+  #20 = Utf8               (D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #21 = Methodref          #22.#23        // org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #22 = Class              #24            // org/assertj/core/api/AbstractDoubleAssert\n+  #23 = NameAndType        #25:#20        // isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+  #24 = Utf8               org/assertj/core/api/AbstractDoubleAssert\n+  #25 = Utf8               isEqualTo\n+  #26 = Double             0.5d\n+  #28 = Class              #29            // dev/langchain4j/store/embedding/RelevanceScoreTest\n+  #29 = Utf8               dev/langchain4j/store/embedding/RelevanceScoreTest\n+  #30 = Utf8               Code\n+  #31 = Utf8               LineNumberTable\n+  #32 = Utf8               LocalVariableTable\n+  #33 = Utf8               this\n+  #34 = Utf8               Ldev/langchain4j/store/embedding/RelevanceScoreTest;\n+  #35 = Utf8               should_convert_cosine_similarity_into_relevance_score\n+  #36 = Utf8               RuntimeVisibleAnnotations\n+  #37 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #38 = Utf8               SourceFile\n+  #39 = Utf8               RelevanceScoreTest.java\n {\n   dev.langchain4j.store.embedding.RelevanceScoreTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -61,39 +61,39 @@\n             0       5     0  this   Ldev/langchain4j/store/embedding/RelevanceScoreTest;\n \n   void should_convert_cosine_similarity_into_relevance_score();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: ldc2_w        #2                  // double -1.0d\n-         3: invokestatic  #4                  // Method dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n-         6: invokestatic  #5                  // Method org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+         0: ldc2_w        #7                  // double -1.0d\n+         3: invokestatic  #9                  // Method dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n+         6: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n          9: dconst_0\n-        10: invokevirtual #6                  // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        10: invokevirtual #21                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         13: pop\n         14: dconst_0\n-        15: invokestatic  #4                  // Method dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n-        18: invokestatic  #5                  // Method org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n-        21: ldc2_w        #7                  // double 0.5d\n-        24: invokevirtual #6                  // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        15: invokestatic  #9                  // Method dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n+        18: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        21: ldc2_w        #26                 // double 0.5d\n+        24: invokevirtual #21                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         27: pop\n         28: dconst_1\n-        29: invokestatic  #4                  // Method dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n-        32: invokestatic  #5                  // Method org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        29: invokestatic  #9                  // Method dev/langchain4j/store/embedding/RelevanceScore.fromCosineSimilarity:(D)D\n+        32: invokestatic  #15                 // Method org/assertj/core/api/Assertions.assertThat:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         35: dconst_1\n-        36: invokevirtual #6                  // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n+        36: invokevirtual #21                 // Method org/assertj/core/api/AbstractDoubleAssert.isEqualTo:(D)Lorg/assertj/core/api/AbstractDoubleAssert;\n         39: pop\n         40: return\n       LineNumberTable:\n         line 11: 0\n         line 12: 14\n         line 13: 28\n         line 14: 40\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      41     0  this   Ldev/langchain4j/store/embedding/RelevanceScoreTest;\n     RuntimeVisibleAnnotations:\n-      0: #20()\n+      0: #37()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"RelevanceScoreTest.java\"\n"}]}, {"source1": "dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest.class", "source2": "dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,89 +1,89 @@\n-  SHA-256 checksum 6675ebb3f9abb5f5277b5af3ef96092a78ad53eff249410b7ea11f5bfaafb423\n+  SHA-256 checksum 6319e7f1469b278bb08d5d6808bdb19781e24110be1a66c997a16b266e164afb\n   Compiled from \"InMemoryChatMemoryStoreTest.java\"\n class dev.langchain4j.store.memory.chat.InMemoryChatMemoryStoreTest implements org.assertj.core.api.WithAssertions\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #19                         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest\n-  super_class: #20                        // java/lang/Object\n+  this_class: #17                         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 2, attributes: 1\n Constant pool:\n-   #1 = Methodref          #20.#36        // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #37            // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore\n-   #3 = Methodref          #2.#36         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.\"<init>\":()V\n-   #4 = String             #38            // foo\n-   #5 = Methodref          #2.#39         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n-   #6 = Methodref          #19.#40        // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-   #7 = Methodref          #41.#42        // org/assertj/core/api/ListAssert.isEmpty:()V\n-   #8 = Class              #43            // dev/langchain4j/data/message/ChatMessage\n-   #9 = Class              #44            // dev/langchain4j/data/message/UserMessage\n-  #10 = String             #45            // abc def\n-  #11 = Methodref          #9.#46         // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n-  #12 = Class              #47            // dev/langchain4j/data/message/AiMessage\n-  #13 = String             #48            // ghi jkl\n-  #14 = Methodref          #12.#46        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n-  #15 = Methodref          #49.#50        // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #16 = Methodref          #2.#51         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.updateMessages:(Ljava/lang/Object;Ljava/util/List;)V\n-  #17 = Methodref          #41.#52        // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #18 = Methodref          #2.#53         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.deleteMessages:(Ljava/lang/Object;)V\n-  #19 = Class              #54            // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest\n-  #20 = Class              #55            // java/lang/Object\n-  #21 = Class              #56            // org/assertj/core/api/WithAssertions\n-  #22 = Utf8               <init>\n-  #23 = Utf8               ()V\n-  #24 = Utf8               Code\n-  #25 = Utf8               LineNumberTable\n-  #26 = Utf8               LocalVariableTable\n-  #27 = Utf8               this\n-  #28 = Utf8               Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest;\n-  #29 = Utf8               test\n-  #30 = Utf8               store\n-  #31 = Utf8               Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStore;\n-  #32 = Utf8               RuntimeVisibleAnnotations\n-  #33 = Utf8               Lorg/junit/jupiter/api/Test;\n-  #34 = Utf8               SourceFile\n-  #35 = Utf8               InMemoryChatMemoryStoreTest.java\n-  #36 = NameAndType        #22:#23        // \"<init>\":()V\n-  #37 = Utf8               dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore\n-  #38 = Utf8               foo\n-  #39 = NameAndType        #57:#58        // getMessages:(Ljava/lang/Object;)Ljava/util/List;\n-  #40 = NameAndType        #59:#60        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #41 = Class              #61            // org/assertj/core/api/ListAssert\n-  #42 = NameAndType        #62:#23        // isEmpty:()V\n-  #43 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #44 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #45 = Utf8               abc def\n-  #46 = NameAndType        #22:#63        // \"<init>\":(Ljava/lang/String;)V\n-  #47 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #48 = Utf8               ghi jkl\n-  #49 = Class              #64            // java/util/Arrays\n-  #50 = NameAndType        #65:#66        // asList:([Ljava/lang/Object;)Ljava/util/List;\n-  #51 = NameAndType        #67:#68        // updateMessages:(Ljava/lang/Object;Ljava/util/List;)V\n-  #52 = NameAndType        #69:#70        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #53 = NameAndType        #71:#72        // deleteMessages:(Ljava/lang/Object;)V\n-  #54 = Utf8               dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest\n-  #55 = Utf8               java/lang/Object\n-  #56 = Utf8               org/assertj/core/api/WithAssertions\n-  #57 = Utf8               getMessages\n-  #58 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #59 = Utf8               assertThat\n-  #60 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-  #61 = Utf8               org/assertj/core/api/ListAssert\n-  #62 = Utf8               isEmpty\n-  #63 = Utf8               (Ljava/lang/String;)V\n-  #64 = Utf8               java/util/Arrays\n-  #65 = Utf8               asList\n-  #66 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n-  #67 = Utf8               updateMessages\n-  #68 = Utf8               (Ljava/lang/Object;Ljava/util/List;)V\n-  #69 = Utf8               containsExactly\n-  #70 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n-  #71 = Utf8               deleteMessages\n-  #72 = Utf8               (Ljava/lang/Object;)V\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore\n+   #8 = Utf8               dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore\n+   #9 = Methodref          #7.#3          // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.\"<init>\":()V\n+  #10 = String             #11            // foo\n+  #11 = Utf8               foo\n+  #12 = Methodref          #7.#13         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n+  #13 = NameAndType        #14:#15        // getMessages:(Ljava/lang/Object;)Ljava/util/List;\n+  #14 = Utf8               getMessages\n+  #15 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #16 = Methodref          #17.#18        // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest.assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #17 = Class              #19            // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest\n+  #18 = NameAndType        #20:#21        // assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #19 = Utf8               dev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest\n+  #20 = Utf8               assertThat\n+  #21 = Utf8               (Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+  #22 = Methodref          #23.#24        // org/assertj/core/api/ListAssert.isEmpty:()V\n+  #23 = Class              #25            // org/assertj/core/api/ListAssert\n+  #24 = NameAndType        #26:#6         // isEmpty:()V\n+  #25 = Utf8               org/assertj/core/api/ListAssert\n+  #26 = Utf8               isEmpty\n+  #27 = Class              #28            // dev/langchain4j/data/message/ChatMessage\n+  #28 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #29 = Class              #30            // dev/langchain4j/data/message/UserMessage\n+  #30 = Utf8               dev/langchain4j/data/message/UserMessage\n+  #31 = String             #32            // abc def\n+  #32 = Utf8               abc def\n+  #33 = Methodref          #29.#34        // dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+  #34 = NameAndType        #5:#35         // \"<init>\":(Ljava/lang/String;)V\n+  #35 = Utf8               (Ljava/lang/String;)V\n+  #36 = Class              #37            // dev/langchain4j/data/message/AiMessage\n+  #37 = Utf8               dev/langchain4j/data/message/AiMessage\n+  #38 = String             #39            // ghi jkl\n+  #39 = Utf8               ghi jkl\n+  #40 = Methodref          #36.#34        // dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+  #41 = Methodref          #42.#43        // java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #42 = Class              #44            // java/util/Arrays\n+  #43 = NameAndType        #45:#46        // asList:([Ljava/lang/Object;)Ljava/util/List;\n+  #44 = Utf8               java/util/Arrays\n+  #45 = Utf8               asList\n+  #46 = Utf8               ([Ljava/lang/Object;)Ljava/util/List;\n+  #47 = Methodref          #7.#48         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.updateMessages:(Ljava/lang/Object;Ljava/util/List;)V\n+  #48 = NameAndType        #49:#50        // updateMessages:(Ljava/lang/Object;Ljava/util/List;)V\n+  #49 = Utf8               updateMessages\n+  #50 = Utf8               (Ljava/lang/Object;Ljava/util/List;)V\n+  #51 = Methodref          #23.#52        // org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #52 = NameAndType        #53:#54        // containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #53 = Utf8               containsExactly\n+  #54 = Utf8               ([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+  #55 = Methodref          #7.#56         // dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.deleteMessages:(Ljava/lang/Object;)V\n+  #56 = NameAndType        #57:#58        // deleteMessages:(Ljava/lang/Object;)V\n+  #57 = Utf8               deleteMessages\n+  #58 = Utf8               (Ljava/lang/Object;)V\n+  #59 = Class              #60            // org/assertj/core/api/WithAssertions\n+  #60 = Utf8               org/assertj/core/api/WithAssertions\n+  #61 = Utf8               Code\n+  #62 = Utf8               LineNumberTable\n+  #63 = Utf8               LocalVariableTable\n+  #64 = Utf8               this\n+  #65 = Utf8               Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest;\n+  #66 = Utf8               test\n+  #67 = Utf8               store\n+  #68 = Utf8               Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStore;\n+  #69 = Utf8               RuntimeVisibleAnnotations\n+  #70 = Utf8               Lorg/junit/jupiter/api/Test;\n+  #71 = Utf8               SourceFile\n+  #72 = Utf8               InMemoryChatMemoryStoreTest.java\n {\n   dev.langchain4j.store.memory.chat.InMemoryChatMemoryStoreTest();\n     descriptor: ()V\n     flags: (0x0000)\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n@@ -96,76 +96,76 @@\n             0       5     0  this   Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest;\n \n   public void test();\n     descriptor: ()V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=8, locals=2, args_size=1\n-         0: new           #2                  // class dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore\n+         0: new           #7                  // class dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore\n          3: dup\n-         4: invokespecial #3                  // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.\"<init>\":()V\n+         4: invokespecial #9                  // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.\"<init>\":()V\n          7: astore_1\n          8: aload_0\n          9: aload_1\n-        10: ldc           #4                  // String foo\n-        12: invokevirtual #5                  // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n-        15: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-        18: invokevirtual #7                  // Method org/assertj/core/api/ListAssert.isEmpty:()V\n+        10: ldc           #10                 // String foo\n+        12: invokevirtual #12                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n+        15: invokevirtual #16                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        18: invokevirtual #22                 // Method org/assertj/core/api/ListAssert.isEmpty:()V\n         21: aload_1\n-        22: ldc           #4                  // String foo\n+        22: ldc           #10                 // String foo\n         24: iconst_2\n-        25: anewarray     #8                  // class dev/langchain4j/data/message/ChatMessage\n+        25: anewarray     #27                 // class dev/langchain4j/data/message/ChatMessage\n         28: dup\n         29: iconst_0\n-        30: new           #9                  // class dev/langchain4j/data/message/UserMessage\n+        30: new           #29                 // class dev/langchain4j/data/message/UserMessage\n         33: dup\n-        34: ldc           #10                 // String abc def\n-        36: invokespecial #11                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        34: ldc           #31                 // String abc def\n+        36: invokespecial #33                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n         39: aastore\n         40: dup\n         41: iconst_1\n-        42: new           #12                 // class dev/langchain4j/data/message/AiMessage\n+        42: new           #36                 // class dev/langchain4j/data/message/AiMessage\n         45: dup\n-        46: ldc           #13                 // String ghi jkl\n-        48: invokespecial #14                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        46: ldc           #38                 // String ghi jkl\n+        48: invokespecial #40                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n         51: aastore\n-        52: invokestatic  #15                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n-        55: invokevirtual #16                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.updateMessages:(Ljava/lang/Object;Ljava/util/List;)V\n+        52: invokestatic  #41                 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;\n+        55: invokevirtual #47                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.updateMessages:(Ljava/lang/Object;Ljava/util/List;)V\n         58: aload_0\n         59: aload_1\n-        60: ldc           #4                  // String foo\n-        62: invokevirtual #5                  // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n-        65: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+        60: ldc           #10                 // String foo\n+        62: invokevirtual #12                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n+        65: invokevirtual #16                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n         68: iconst_2\n-        69: anewarray     #8                  // class dev/langchain4j/data/message/ChatMessage\n+        69: anewarray     #27                 // class dev/langchain4j/data/message/ChatMessage\n         72: dup\n         73: iconst_0\n-        74: new           #9                  // class dev/langchain4j/data/message/UserMessage\n+        74: new           #29                 // class dev/langchain4j/data/message/UserMessage\n         77: dup\n-        78: ldc           #10                 // String abc def\n-        80: invokespecial #11                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n+        78: ldc           #31                 // String abc def\n+        80: invokespecial #33                 // Method dev/langchain4j/data/message/UserMessage.\"<init>\":(Ljava/lang/String;)V\n         83: aastore\n         84: dup\n         85: iconst_1\n-        86: new           #12                 // class dev/langchain4j/data/message/AiMessage\n+        86: new           #36                 // class dev/langchain4j/data/message/AiMessage\n         89: dup\n-        90: ldc           #13                 // String ghi jkl\n-        92: invokespecial #14                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n+        90: ldc           #38                 // String ghi jkl\n+        92: invokespecial #40                 // Method dev/langchain4j/data/message/AiMessage.\"<init>\":(Ljava/lang/String;)V\n         95: aastore\n-        96: invokevirtual #17                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n+        96: invokevirtual #51                 // Method org/assertj/core/api/ListAssert.containsExactly:([Ljava/lang/Object;)Lorg/assertj/core/api/AbstractIterableAssert;\n         99: pop\n        100: aload_1\n-       101: ldc           #4                  // String foo\n-       103: invokevirtual #18                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.deleteMessages:(Ljava/lang/Object;)V\n+       101: ldc           #10                 // String foo\n+       103: invokevirtual #55                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.deleteMessages:(Ljava/lang/Object;)V\n        106: aload_0\n        107: aload_1\n-       108: ldc           #4                  // String foo\n-       110: invokevirtual #5                  // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n-       113: invokevirtual #6                  // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n-       116: invokevirtual #7                  // Method org/assertj/core/api/ListAssert.isEmpty:()V\n+       108: ldc           #10                 // String foo\n+       110: invokevirtual #12                 // Method dev/langchain4j/store/memory/chat/InMemoryChatMemoryStore.getMessages:(Ljava/lang/Object;)Ljava/util/List;\n+       113: invokevirtual #16                 // Method assertThat:(Ljava/util/List;)Lorg/assertj/core/api/ListAssert;\n+       116: invokevirtual #22                 // Method org/assertj/core/api/ListAssert.isEmpty:()V\n        119: return\n       LineNumberTable:\n         line 13: 0\n         line 14: 8\n         line 16: 21\n         line 18: 52\n         line 16: 55\n@@ -174,11 +174,11 @@\n         line 29: 106\n         line 30: 119\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     120     0  this   Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStoreTest;\n             8     112     1 store   Ldev/langchain4j/store/memory/chat/InMemoryChatMemoryStore;\n     RuntimeVisibleAnnotations:\n-      0: #33()\n+      0: #70()\n         org.junit.jupiter.api.Test\n }\n SourceFile: \"InMemoryChatMemoryStoreTest.java\"\n"}]}]}
