René's URL Explorer Experiment


Title: CPU and Memory Optimizations by yuzawa-san · Pull Request #56 · IABTechLab/iabgpp-java · GitHub

Open Graph Title: CPU and Memory Optimizations by yuzawa-san · Pull Request #56 · IABTechLab/iabgpp-java

X Title: CPU and Memory Optimizations by yuzawa-san · Pull Request #56 · IABTechLab/iabgpp-java

Description: I found the CPU and Memory in the decode hot path is very high, so I did some light refactoring to alleviate this. Added a BitString and BitStringBuilder for efficient bitstring operations Make substring operation zero-copy (BitString slices the underlying data) BitString also removes the need to validate 0/1 using Pattern. Optimize base64 decoding by assembling reverse dictionary lookup table from char to BitString (previously it was a HashMap and from Character (boxed) to Integer, which needed to be converted to a bit string) Reduce number of substring operations. e.g. FixedIntegerEncoder.decode(bitString, fromIndex, length) Made FixedBitfieldEncoder return BitString directly which does fulfill List. This is a lot smaller that the ArrayList Fixed bit ranges are backed by bitsets. Use more StringBuilder Presize things that we know the size or approximate sizes of Use more constants. NOTE: I used Strings constants in the + usages since that is optimized (in JDK8) to a StringBuilder. if it used the char constant it appears to have to convert those chars to Strings each time. however in later JDK's this is not needed. NOTE: the encode flow could technically use the BitString too, but i held off on that for now. the encode accumulates using more efficiently. toString is only called at the last minute. added an IntegerCache which is largest enough to contain all of the vendor ID's in the global vendor list. This cut down on a lot allocations. Added JMH microbenchmarking made constants final do more presizing in segment initializeData make GppModel more DRY and use switch statements instead of if/elses contains containsKey + get calls to just get call with nullcheck. this avoids double Map reads. make initializeSegments more memory efficient with Arrays.asList or Collections.singletonList use CharSequence for zero copy string splits use Instant instead of ZonedDatetime since Instant is more lightweight. (breaking) add rudimentary toString implementations for easy debugging microbenchmark results: before Benchmark Mode Cnt Score Error Units MyBenchmark.decodeGpp thrpt 25 3425.619 ± 103.495 ops/s MyBenchmark.decodeGpp:gc.alloc.rate thrpt 25 6099.516 ± 186.780 MB/sec MyBenchmark.decodeGpp:gc.alloc.rate.norm thrpt 25 1867059.215 ± 4110.174 B/op MyBenchmark.decodeGpp:gc.count thrpt 25 2632.000 counts MyBenchmark.decodeGpp:gc.time thrpt 25 2700.000 ms after Benchmark Mode Cnt Score Error Units MyBenchmark.decodeGpp thrpt 25 19205.372 ± 485.226 ops/s MyBenchmark.decodeGpp:gc.alloc.rate thrpt 25 1037.076 ± 26.204 MB/sec MyBenchmark.decodeGpp:gc.alloc.rate.norm thrpt 25 56624.003 ± 0.001 B/op MyBenchmark.decodeGpp:gc.count thrpt 25 866.000 counts MyBenchmark.decodeGpp:gc.time thrpt 25 842.000 ms seems to be around 6x faster than the last released version and uses only about 97% less memory. ad-hoc benchmark code against https://github.com/InteractiveAdvertisingBureau/iabtcf-java (partially ported into JMH) public class TcfBench { private static final String in = "CQCDewAQCDewAPoABABGA9EMAP-AAB4AAIAAKVtV_G__bXlv-X736ftkeY1f9_h77sQxBhfJs-4FzLvW_JwX32EzNE36tqYKmRIAu3bBIQNtHJjUTVChaogVrzDsak2coTtKJ-BkiHMRe2dYCF5vmwtj-QKZ5vr_93d52R_t_dr-3dzyz5Vnv3a9_-b1WJidK5-tH_v_bROb-_I-9_5-_4v8_N_rE2_eT1t_tevt739-8tv_9___9____7______3_-ClbVfxv_215b_l-9-n7ZHmNX_f4e-7EMQYXybPuBcy71vycF99hMzRN-ramCpkSALt2wSEDbRyY1E1QoWqIFa8w7GpNnKE7SifgZIhzEXtnWAheb5sLY_kCmeb6__d3edkf7f3a_t3c8s-VZ792vf_m9ViYnSufrR_7_20Tm_vyPvf-fv-L_Pzf6xNv3k9bf7Xr7e9_fvLb__f___f___-______9__gAAAAA.QKVtV_G__bXlv-X736ftkeY1f9_h77sQxBhfJs-4FzLvW_JwX32EzNE36tqYKmRIAu3bBIQNtHJjUTVChaogVrzDsak2coTtKJ-BkiHMRe2dYCF5vmwtj-QKZ5vr_93d52R_t_dr-3dzyz5Vnv3a9_-b1WJidK5-tH_v_bROb-_I-9_5-_4v8_N_rE2_eT1t_tevt739-8tv_9___9____7______3_-.IKVtV_G__bXlv-X736ftkeY1f9_h77sQxBhfJs-4FzLvW_JwX32EzNE36tqYKmRIAu3bBIQNtHJjUTVChaogVrzDsak2coTtKJ-BkiHMRe2dYCF5vmwtj-QKZ5vr_93d52R_t_dr-3dzyz5Vnv3a9_-b1WJidK5-tH_v_bROb-_I-9_5-_4v8_N_rE2_eT1t_tevt739-8tv_9___9____7______3_-"; public static void main(String[] args) { while(1==1) { TCString old = TCString.decode(in); old.getPubPurposesConsent(); old.getPurposesConsent(); old.getVendorConsent(); old.getPurposesLITransparency(); old.getVendorLegitimateInterest(); old.getSpecialFeatureOptIns(); old.getCmpId(); old.getPublisherRestrictions(); TcfEuV2 nu = new TcfEuV2(in); nu.getPublisherConsents(); nu.getPurposeConsents(); nu.getVendorConsents(); nu.getPurposeLegitimateInterests(); nu.getVendorLegitimateInterests(); nu.getSpecialFeatureOptins(); nu.getCmpId(); nu.getPublisherRestrictions(); nu.setFieldValue(TcfEuV2Field.CMP_ID, 14); nu.encode(); } } } benchmarked using async-profiler asprof -d 20 -e cpu,alloc -f ~/Desktop/dump16.jfr TcfBench Flame Charts: memory before: memory after (note how TCString parse was small teal sliver in the before graph, but the iab-gpp portion has shrank so much that the TCString parse is now a larger percentage of the icicle chart): cpu before: cpu after: Future Additional Ideas (not in PR). I'll likely open issues to discuss: List is still a little bulky in the charts above. I was thinking of maybe making a specialty class backed by int[] like https://github.com/InteractiveAdvertisingBureau/iabtcf-java/blob/master/iabtcf-decoder/src/main/java/com/iabtcf/utils/IntIterable.java but that would likely break API stability since this a beta candidate i have broken compatibility on this and introduce an IntegerSet Should the fields map have keys be enum's instead of strings? The EnumMap would be a lot more lightweight. the Fields are stored in a more efficient manner using a list is there too much stuff which is public which should be not public? should List be replaced with Set since I feel set contains is something worth optimizing (i.e. is this vendor(s) present in the set) once, again IntegerSet extends AbstractSet are the defensive copies in some getValue implementation necessary, could we achieve the same from returning read-only versions (Collections.unmodifiableList). introduced a managed IntegerSet which can detect modification and update the dirty flags, such that once could do tcfeuv2.getPurposes().addInt(10) fixes #25 supersedes #45

Open Graph Description: I found the CPU and Memory in the decode hot path is very high, so I did some light refactoring to alleviate this. Added a BitString and BitStringBuilder for efficient bitstring operations Make su...

X Description: I found the CPU and Memory in the decode hot path is very high, so I did some light refactoring to alleviate this. Added a BitString and BitStringBuilder for efficient bitstring operations Make su...

Opengraph URL: https://github.com/IABTechLab/iabgpp-java/pull/56

X: @github

direct link

Domain: github.com

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:41ab2c04-d434-3798-4465-8e33ee82691b
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idABE2:38151D:11CA44:1768EC:6AF65C3C
html-safe-noncec8caec75f22ce82d7c8695d321482ec3244137ab74893af4311e18d98f38a64b
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQkUyOjM4MTUxRDoxMUNBNDQ6MTc2OEVDOjZBRjY1QzNDIiwidmlzaXRvcl9pZCI6Ijg5OTAzNDQ0NjkxMzExODkzMDgiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac611f5acc51c058f052470a2e981a12017c5c024bf57d0b51e47086d2dc7bd62a
hovercard-subject-tagpull_request:1982292157
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/IABTechLab/iabgpp-java/pull/56/files
twitter:imagehttps://avatars.githubusercontent.com/u/1082334?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/1082334?s=400&v=4
og:image:altI found the CPU and Memory in the decode hot path is very high, so I did some light refactoring to alleviate this. Added a BitString and BitStringBuilder for efficient bitstring operations Make su...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Nonefded9ab97d594702a6a4ebcef0ee4f94c91fb16da7c62cac91ee0125e9c2d58c
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/IABTechLab/iabgpp-java git https://github.com/IABTechLab/iabgpp-java.git
octolytics-dimension-user_id82903538
octolytics-dimension-user_loginIABTechLab
octolytics-dimension-repository_id538620496
octolytics-dimension-repository_nwoIABTechLab/iabgpp-java
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id538620496
octolytics-dimension-repository_network_root_nwoIABTechLab/iabgpp-java
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release39cd7745159797c426e62ba2199c584d653d4b32
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/IABTechLab/iabgpp-java/pull/56/files#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FIABTechLab%2Fiabgpp-java%2Fpull%2F56%2Ffiles
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FIABTechLab%2Fiabgpp-java%2Fpull%2F56%2Ffiles
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=IABTechLab%2Fiabgpp-java
Reloadhttps://github.com/IABTechLab/iabgpp-java/pull/56/files
Reloadhttps://github.com/IABTechLab/iabgpp-java/pull/56/files
Reloadhttps://github.com/IABTechLab/iabgpp-java/pull/56/files
IABTechLabhttps://github.com/IABTechLab
iabgpp-javahttps://github.com/IABTechLab/iabgpp-java
Codehttps://github.com/IABTechLab/iabgpp-java
Issues13 (13)https://github.com/IABTechLab/iabgpp-java/issues
Pull requests4 (4)https://github.com/IABTechLab/iabgpp-java/pulls
Actionshttps://github.com/IABTechLab/iabgpp-java/actions
Projectshttps://github.com/IABTechLab/iabgpp-java/projects
Security and qualityhttps://github.com/IABTechLab/iabgpp-java/security
Insightshttps://github.com/IABTechLab/iabgpp-java/pulse
Sign up for GitHub https://github.com/signup?return_to=%2FIABTechLab%2Fiabgpp-java%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2FIABTechLab%2Fiabgpp-java%2Fissues%2Fnew%2Fchoose
lamrowenahttps://github.com/lamrowena
IABTechLab:4.Xhttps://github.com/IABTechLab/iabgpp-java/tree/4.X
yuzawa-san:cpu-memory-optimizationshttps://github.com/yuzawa-san/iabgpp-java/tree/cpu-memory-optimizations
Conversation 8 https://github.com/IABTechLab/iabgpp-java/pull/56
Commits 43 https://github.com/IABTechLab/iabgpp-java/pull/56/commits
Checks 0 https://github.com/IABTechLab/iabgpp-java/pull/56/checks
Files changed https://github.com/IABTechLab/iabgpp-java/pull/56/files
Please reload this pagehttps://github.com/IABTechLab/iabgpp-java/pull/56/files
CPU and Memory Optimizations https://github.com/IABTechLab/iabgpp-java/pull/56/files#top
Show all changes 43 commits https://github.com/IABTechLab/iabgpp-java/pull/56/files
24147c4 cpu and memory optimizations yuzawa-san Jul 20, 2024 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/24147c43690f8128acaa64468c3b4d2907768e27
d14374d zero copy split yuzawa-san Jul 26, 2024 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/d14374d060b4f0fecb2e829f2281d1a5e76617f9
f7b9f73 optimize fl,mt,or,tx yuzawa-san Nov 6, 2024 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/f7b9f73fff4714738f32bfe2ff67abd9b608d51a
8595a96 update mt yuzawa-san Nov 6, 2024 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/8595a964a78fa93d0fa386e26f3574b826349543
f3f8c3f remove microbenchmarking yuzawa-san Dec 9, 2024 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/f3f8c3fd735cd6d724091d88341647d6da54f950
165d8ec fewer substrings yuzawa-san Mar 5, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/165d8ec8e03a13dab85646762112d97aa55492dc
564bda1 fibonacci optimization yuzawa-san Mar 5, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/564bda1394c1a19c30e5a1d4ac95978b8a77a5d8
0c9a10f annotate tests yuzawa-san Mar 5, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/0c9a10f66227ed2f21a679f47a428394e9e3c2ba
68788e1 loop variables yuzawa-san Mar 5, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/68788e1c235f04330c641ec3204516594ee767c4
a79dc78 DI IA NE NH NJ TN yuzawa-san Mar 24, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/a79dc78542b4d4d915310f15d61bcadc25bd0427
c099e37 make Segments smaller yuzawa-san Mar 24, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/c099e37f37bab6604775c7450ca18117cb39f627
6e6709d optimize encoding yuzawa-san Mar 25, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/6e6709df7d12ef8d9d401b4b9ed21912441b9445
4da705c use BitSet to represent List yuzawa-san Mar 25, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/4da705c52def012b8223867cc386fe8a268b4504
c83f58d initialize segments once yuzawa-san Mar 25, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/c83f58dff5cf70adb7d24ff836d62364cf18244e
d30798b more efficient grouping in range encoders yuzawa-san Mar 28, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/d30798b43a9d99b35b3e573f45cf7cf9e80a292f
dcc958d store fields in list instead of map yuzawa-san Mar 28, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/dcc958d6d5235da6bcfa6ad7d0f07789a1a606f3
0702f1b use StringBuilders to avoid copies yuzawa-san Mar 28, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/0702f1bf1aab4e85f5f839cf6f42bfefc35e1ead
8cf0bcc store dirty on DataType yuzawa-san Mar 28, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/8cf0bcca0bff0a891f3c8e17f58ee1f23132a352
bcee628 detect external modification of values yuzawa-san Mar 29, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/bcee62810074fa6262fcd1e0d457b460dcfb4cf3
949a235 fix tests yuzawa-san Apr 1, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/949a235069b7606c319f4bc5cdceb839379b8e8d
6323d96 move and rename yuzawa-san Apr 1, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/6323d96f4820788b74215b41c401814418dcfbbc
caff49f move and rename yuzawa-san Apr 1, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/caff49f85cd021ec3a28d393a6e49b1ee058f20f
62e0b2d remove yuzawa-san Apr 1, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/62e0b2d1a4fd9643c92a9efff06b270a2ca18cef
56a9d68 cleanup yuzawa-san Apr 1, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/56a9d68c3f2167600637a5bbb82eb5516e907041
830665d smaller max size yuzawa-san Apr 10, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/830665dc3122ff291f81cefe84868dc5d305a90f
749fc88 sonarqube fixes yuzawa-san Apr 10, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/749fc889067a1161b15c48bfd3969b110408a336
c72610f trailing whitespace yuzawa-san Apr 10, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/c72610f5548c7abd2f40e0bcc0f4880c5aacf666
eb678a4 more sonarqube yuzawa-san Apr 10, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/eb678a4da83911ebc682db6f10a747e43d78891b
41330b7 log when exceeding IntegerBitSet.MAX_COLLECTION_SIZE yuzawa-san Apr 10, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/41330b7b0ebe2c5ae3cedc1d623ffc2e5fc085c9
485a5b2 validation yuzawa-san Apr 10, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/485a5b24b1fc2117017136228af82dc3371bb3dd
ab84b32 CharSequence.isEmpty() yuzawa-san Apr 10, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/ab84b325709bcfc2ce4daa6c4cd352e58bdf21cc
2d8d330 fix tests yuzawa-san Apr 10, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/2d8d3307a235e71a617ed8b53170e1c98ac90278
2488a16 fix tests yuzawa-san Apr 14, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/2488a16f208b7d746ee10255f5ae65a8f238ba89
2613640 clean up fixed bitfields yuzawa-san Apr 14, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/26136408581f808754bed2e8925b5b806b99044c
7240018 add rudimentary toString implementations yuzawa-san Apr 14, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/724001893f010ba9c91773ae054b07ca9e56f6db
4d7c38c use lightweight Instant yuzawa-san Apr 14, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/4d7c38ccb9de453eccbf55bd557d037f6df09cd4
5cc4caf do not fetch date on every parse yuzawa-san Apr 14, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/5cc4caf6adab1ef70c9f2b26f26dcd9f70820eea
0804c21 add exception message yuzawa-san Apr 14, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/0804c2116e321c9633fd1b98d0ea737ecd983223
83e8d5a expose integerset on rangeentry yuzawa-san Apr 15, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/83e8d5ad204611e13762f26f23a44492a2bf125f
560f123 clean up rebase yuzawa-san Jun 26, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/560f123ca8291780204f2c769329a762115e11be
e3ea164 clean up rebase yuzawa-san Jun 26, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/e3ea1645c89c1f26d5c757d832d35b04614d7461
5acf45a clean up rebase yuzawa-san Jun 26, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/5acf45ab301bfff71f12367d5b19dfab8c2e948f
8a87187 set version yuzawa-san Jun 26, 2025 https://github.com/IABTechLab/iabgpp-java/pull/56/commits/8a87187da0c2649c6f0f66a26000c0f9b9b0bc4a
Clear filters https://github.com/IABTechLab/iabgpp-java/pull/56/files
Please reload this pagehttps://github.com/IABTechLab/iabgpp-java/pull/56/files
Please reload this pagehttps://github.com/IABTechLab/iabgpp-java/pull/56/files
pom.xml https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-9c3052cc989f76ef970a98b358a1f264f24478181bb5e8dda971cc72dc228728
GppModel.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-52905c5e26d5015550baf7408f06f997d7b6b6c0a65b9bd36e44a00fdd0a7448
AbstractBase64UrlEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-12a4693256beb98a7f08b85844f04d643fba9ad362914e5274062a3319b9666c
CompressedBase64UrlEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-bbb80bc71b07a520b0f6c4a61647b6696f7059f310399104b9dca0b40c31c5ae
TraditionalBase64UrlEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-99467e612bbc53c2b9dd116b7bd86effb7677e5e46b8319e7ecd40e9127ec71f
BitString.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-0ed3b7d28d8d3fee2646cc25398fad7ef04424ca412b5cb56c93362a58885c1e
BitStringBuilder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-a10793e5ba7a8b46dfbabbe2cb64dcf13492ace136a7574de020524c8207faae
BitStringEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-d71df0b40a4515ad30a286269587b3be8434d8bbe93973c1c04435092b51cb84
AbstractEncodableBitStringDataType.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-48351ff7169dbdbd8a1d4ccc6e00b0dc866586b6ee27329f20523b22a7b6c0f6
DataType.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-aa3d83faf4c8d77db53cf17f3e1ace460dc4d80a5175741c6af1672595b42fed
EncodableArrayOfFixedIntegerRanges.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-3ec91f1ef1f59b43307687b289a9a545bef6ad3b82bfefb88d9f7053e0c9b722
EncodableBoolean.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-a8969b39abaefebc7ddd8457fc38409e2087181b19322726a06291f0273c820b
EncodableDataType.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-6fac6558531bc5bd5de831e25e960a579532d16249566683792b3d986138e25a
EncodableDatetime.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-ded0ed8a4ae1f4c70fa5a3095be48d0afa67f944f0747d4a05ea81614378eeb7
EncodableFibonacciInteger.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-c8db67f567f006d972858d160a06e938e3c56e4a7e19b1fc8d4a2bc73f528b7d
EncodableFibonacciIntegerRange.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-48301c75d30bf48eb5e17b88c493787f9d00abed968e4b8d2ab5ef84ed6b979f
EncodableFixedBitfield.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-b0d7c1ee977eeab935d4381353066808b753526961a23194088e97cc390e953d
EncodableFixedInteger.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-c74db8924b47f7e95e09dbb665a251b4d3b4cc9c61bb1d63a93d22faaae379cb
EncodableFixedIntegerList.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-59298ba45676230d315eaabea628e7e7c99b255de3bc909082e7af6aa8038efb
EncodableFixedIntegerRange.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-eb7564f73a22376bebc9f4cef53248f603b15e6bca1f97340e2eeca5c83fd90b
EncodableFixedString.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-8d32631ab18cb3ea2ed0a9d2a677d48b31fbcbcadf9b71924e7d7951dc52ad85
EncodableFlexibleBitfield.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-69f9b7772bff268e8505c1e1ee89375d97a6e2cda805256ee1471b10644c9d77
EncodableOptimizedFibonacciRange.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-aee7609bcebfddc64a15cc2341dad7e5336cea4212ff43b6b913d2096efb2252
EncodableOptimizedFixedRange.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-7458913bcea3c176de2962e8e0c15fc0817dafa6b523cfd2da9576103ec6abb3
ManagedFixedList.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-74dfb95dfee46a5f9abc9fef0bf1493df48d5802ade147ecddd14951b5c48035
ManagedIntegerSet.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-b39903f68a073d3ec2134c791f43da143a70e07b9fe85a4240cdb2ddd2c2560b
RangeEntry.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-1719aa18e7e026f499da41132b823f2b7cd2e47018f75a158db95005d2ea0f32
UnencodableBoolean.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-aa678992d9b5c5c3ef9f87ca5b18889a0af43980f0980aae5da3ba78a974fd4b
UnencodableCharacter.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-6f14e79434599516c1af141c91de8f1ec7b2a13a3b2d04834254b45e308d033e
UnencodableInteger.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-46d8d77b7034d484be296faae2a6e9bb759253a9cccab668b2b7290722c0ecbf
ArrayOfRangesEntryEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-c72c61e6069381cea3190ea13198d9274890930529d70a4cd4402de3e38077f8
BaseIntegerSet.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-c4d6c2371e2b9f363a384fe78b01eeb696bbd95d4a8a330abf292e79b4836f53
BooleanEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-379faefb2d84099d40f89e87a91acbd47be437b2db396eb9df11c6bb739ef6d3
DatetimeEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-a85470ca2b89f5e9da0a0c3a1232155f7c19bdf7f79669adbb21c1725d3b2c08
FibonacciIntegerEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-40af5105cdedff90532b015f5de89701532cda73fd3a0e1253d4b512b99ff5d6
FibonacciIntegerRangeEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-5da7ada62db8d638c4a0450047f0688efa1e288366c876af03a6aacbbadaba38
FixedBitfieldEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-d46ff34542df973be15ebeb4b96e09ee02bbccf2119e8da66a55fdd492811f28
FixedIntegerEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-a73338d3d670d34b929548e8ce9d9b5f24d3720c824af8c2feb4f31504414c27
FixedIntegerListEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-4a57a999f2cdfd69e751a7100ef362b263d18eac37e114f8aa6f29fb5dafbeb6
FixedIntegerRangeEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-e300a011183c6bee1c08b890b1314d397b236a3e0b5eb5c230c11120599ab942
FixedLongEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-78042df3c27dfa020ecf8633efef0fe3be47ed85b23ebee843c96e3d2b16388f
FixedStringEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-8dfe85b4a65414144710afa37b5cb10af107bbfc75f49ae325fe9b7f4719ec07
IntegerBitSet.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-f07cb451bf3cabf540067846acffb00beccb60c9c26ac6259baf10d117ddda5f
IntegerCache.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-d5c43c1daa428a085d2123b58646a4ed9c2e3b01173187668ac44023c3e4a9fd
IntegerSet.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-478453f86eb2cfe9cb9452d1b4fb97fa525622126b882485a11dd57a1f2c8596
OptimizedFibonacciRangeEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-fbe3c17bb80a6b08de913979c35b9b19c753c826e8e7d45bf29b7708422873fc
OptimizedFixedRangeEncoder.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-3e4f0c254ede0f5fa600f3d80a98df487e63de29b8c18043b1cd106b55a5d095
EncodableBitStringFields.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-43b47841789c32e2c78d24ad4262b974ef2e9739305ca6001b39e7902e79e724
FieldNames.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-029e02f4c71d30c1dca611c1a77097612026c9d002d5c8046e33bc2df43cccf2
Fields.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-4bec9c647e216a5a6005a67b49904fa8a0c07293a0f515b2cf29ad7497922e34
GenericFields.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-dcbfa3252477e477dcce9677cbfe6140a35b49e4d35597dd8984413e37bc0c29
HeaderV1Field.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-59483c8a916798530c670726a479da956875ee062c9973016b471997e45b4b82
TcfCaV1Field.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-93744930fa13ad623919241ddc4ade8528db235de47e46aee9cd6b848410b81b
TcfEuV2Field.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-cb984a7af628b294d8d4d0d4f7eb32c2f09461bcee9b592e039fff82daf8818d
UsCaField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-9e8f0b9949f1f58325665be9e3376525704539e309704b30450999bf6a48fa68
UsCoField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-47a796159a5da4c06192cc1c0fed95223cd567274e8326314908fedf09c4f199
UsCtField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-df131a59b9b8ea250e00951a04d8c158d9ee0a7de7517c57e52f105433512473
UsDeField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-718841d4463881a609584bc791f7c595e80d1660050a7d9dab980b6edb80c717
UsFlField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-557a68bf4ab49892d4dd78b439bbf1a133e248b6c2b002f81b4fbc328fda5aae
UsIaField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-85f9390ade3f0612249c4658c9bff951e50ba3d84b53d683590357c64e36a432
UsMtField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-1573fa1bd27b0cd34894890281c2ca9dfd0810bde760ede293d10d2c89bc5376
UsNatField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-1972505f5c0983741386b0371772e3935f46a5e0d0b76bc7ade6589858caf5d9
UsNeField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-5668e81239b78d08a61b521e7d03a84239c39134b70ad2d2a9b67470ec39dcd1
UsNhField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-6be233f09dce4e95241a681753fba520c240b70ed4c8b007da74c18b2d55b7a1
UsNjField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-65c331f4c60c83854462aeaa8d8a40a11f410687959b8e58f1819fecb304b620
UsOrField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-0fcab3ae2ed6a8f06678a30f9b6e5fce086869826077f446846823b8830d2d2c
UsTnField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-2917be7cc5e80c6dde68e26c98eeb099441e68a5bb49cf690af760e6182108ad
UsTxField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-2e08135df5fb71969585746148a178f16e560b22094f9b07034e597168f0f51f
UsUtField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-5861f7b57ca8c4568262bb48873956c410a594e696814177b57cc7cb47444c8f
UsVaField.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-d12641b49af080597dde0c540cfe35e48d6c0eee11cf1fc10529ec87df146a6e
UspV1Field.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-4cf85aa8e58d736fb3762b1c15707e3606291d3df8af6a1ee23943af7531339c
AbstractEncodableSegmentedBitStringSection.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-2e024e8bd1ac0363035654acc6f7ca078084809a5c74d3374aeab6390b3fdf75
AbstractLazilyEncodableSection.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-23048b61c09059afd58f0fa60e297a86a20cd58eb4fe52c52f9a2e78f30d90a0
EncodableSection.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-5fd2d5511347ec7194bfd5d6f1e6add71ee1369161e2c1fa3252617b3cf8d0ba
HeaderV1.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-92bdb4730c31459067b38068d7a4cc7f3513edc9c09242a9ca0d6420446a4811
Sections.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-1bd29d9ee39222a23efe7de739f2096d4243f1ed38e7fe998680b098637eec56
SlicedCharSequence.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-617eb4e09f0e82089497bdba8f3762217603fda4151441280d274b98c5f87261
TcfCaV1.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-1b6dce43d243ee2fdec6f5ea60c8592d5dcd57a8d48cbb35b0351ea72229a276
TcfEuV2.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-3c19e3c627e92787f9b61ff06743bdb7168390902b4f23b67ae698e98a248ced
UsCa.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-f0bf49c305e16ca193a9bb2685f0ae01bb651ef31c5924d2a0c8d12319f3abea
UsCo.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-5c0992a4fd9eb1d974b2724cd0cb29517efe3ee94d98d9d637c26d19e6f08662
UsCt.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-d12413be91859e1abad91c9bdaf25521bba52cc7e14a15caffc030918c30846e
UsDe.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-cb637a1d0691089bc3cb25aaca75f5eab99f8628501851f62741e85293dac735
UsFl.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-8956f0b7982b2947f25b76b90846e3bb649f12a4312946322b0e7e70ce1243c7
UsIa.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-2c6ad39c0906857ded38b1637d539fa459f1d79d77b37dd6389c180f865f5a0f
UsMt.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-e3673a5b74a7b96aeb8887650aa704a20a3c23470eb90444549c5f7c91f47f60
UsNat.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-3bc7f4a5a67dd088342598d19d9177019439fec1dacab2eb17acd9a4bf41bbc6
UsNe.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-6f5cb234651299088404d53e851a55c7d350dc0f7709824b8a76b7f7908f5fd3
UsNh.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-a74ab08a64b327600ae0cef57f3f83e55e6e0b6e412740b6efc62e9dde5f4206
UsNj.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-a9ff903e83d8c6e6b3160d7e7cf3855226990d6c542ff3511c743549f72c2c9e
UsOr.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-62041c979d44dd01139746dfe392407fa6aa889a3f5dd5ceb6fd50d09aa5f6c5
UsTn.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-3a7e9964d4262f4eb18f3c37dd8a9894294733033c6ce1cb7d6104a6706aea38
UsTx.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-9972ca54324b73ed6accccc9e0652fd8b68d417add0863cadcc29fca1bfad542
UsUt.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-1dcfbba2538326ae7030ecae6df06f5a9106846de27a17dfeb7b389b996b195b
UsVa.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-7cd99aa9db827ee7cacb46818f3ed06a201a1f7276d6d8b9d0bcd855fe0842f2
UspV1.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-624d4e237c7ce6b33b1f1a138dc2ceee70e87c54ce9092d3d9c3cb6d8a31380b
AbstractLazilyEncodableSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-8e6efda43d2a388ad2fe3c0570481a47c76c183f13074b40f27251e9f52bc9a3
EncodableSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-349e6ed18c00df2a4e122c2514ae0328802aad99e7eae118711bfde80d8b35ab
HeaderV1CoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-0a155b76ff8d8a9760d187af4a26b1d9899d0b47165deeaf149817c30febf942
TcfCaV1CoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-70c2ec4eda4292b887bd62c79fb526d7474dfcf8de2ea22fe476de8aa9d32ba7
TcfCaV1DisclosedVendorsSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-aaae3ddeda95d87bcde8dd6d94078d08e9b86d6354d5d7c7556febe9248e0b4f
TcfCaV1PublisherPurposesSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-521d17752af0270733643d5c266dd4fef189752e93afee731b1e2592b098903a
TcfEuV2CoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-f39f5da1588a65d501c35ed6d75f77091e02515b09b0c87f1f0a2b54791d10b8
TcfEuV2PublisherPurposesSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-7c44756ef4d840ab3d8f7eb7a1a525f03d946c49a1ae1bd0b2688ddb7684c99d
TcfEuV2VendorsAllowedSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-9967bdcd3d76d4759a33ec02331481fae93e25d59495a8a4b62c9b4ac3bc7b26
TcfEuV2VendorsDisclosedSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-aa1ad114945bb1ea43d5a3748f58295e6a31dccada0bfb95845b80ed86d9434c
UsCaCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-de7dcda852b272733e97396a1d8b4d26a2b811484a441f51d59f13826583bccf
UsCaGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-6fcd67c03e83ee438014c17915b7eff83176877b7ae184a06cd33914af989550
UsCoCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-3fff77bb1924ea26751b78d765d9ecc5d06eaa439944ef1e0058f6c5f273223b
UsCoGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-03ce1146a9ea097643417442632ef0a731e1214dc5314f45fde7395b6bb5ffcd
UsCtCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-3b542c64e15a765440ad62841b3d830ada5ddca9c5954a41a8c7608c41f097f6
UsCtGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-8d7e783994307463339ceec1b4b60883282f2f080154f0d1dffbba5c12024789
UsDeCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-60c0259be8c657db3b919707332c34deb839a531e83d12415a19ef4291e322a0
UsDeGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-35cd7a14a4733f74fd58505e49d4f0edfe9a7845ebd3b38d2be550bd4c79ee4c
UsFlCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-ffd474c3410a4b956b61993b813204fd408d880300def47e125779fd623e9da9
UsIaCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-f25829457531035c0bf546f6b0b0054a477c9fef33df03cea793b52f2b3a7163
UsIaGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-2ccbb022ae3c76ed8abe8795f807192112829037ff8df441ff07e6867af0c8ba
UsMtCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-ab40ef3b0a38cffaa0cdb4dc42793ad710d9be2361acd571efcf09d917a8791d
UsMtGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-146dee157de0f0eacc5de31c406460768a194a311b94d53f5407391a665cc9f8
UsNatCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-1c09ce0f7c348e0e130209d4d2c075c449af7ebab828edecbc2413c7b01ae45c
UsNatGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-d0040184c538d97d854da0f7f897c0afc2f0ea68df9a04763c2ab7baab39c8e0
UsNeCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-a1e2a7f8d234acec8b326e96ec6dada64df691ab6f56ced7459ca1957df62922
UsNeGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-f725038aa667a9206fe8b14a2b1599dfe23144bd14565d631775e670a0352567
UsNhCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-cde3ead97c72965054850e2cd12ae17eec8a99826021138a14b705597da12173
UsNhGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-e2011154d648dbe738dd680e7f068205f9a3a3ea396bd7be566f96ea3868ed32
UsNjCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-d6bb48c670c2238c7bf1184795984d5e4b96b8a0425665f35f0bf701c126f746
UsNjGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-a155382215e78dfd32f8e2c98cde9c7829c4d59ade20c8dacca99b66a8e4e627
UsOrCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-b7f23ff8855b4716999a666723c0978d7e8432ecb7d5fdef28a71b89a2fc8fb2
UsOrGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-e7115cf4865f83a466e232e76c894a82d149ac88da73860112a84a5374dd869c
UsTnCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-6458b3b987dfc61b9eaeebc70f9267f9bff54992db1236f2396d0dd7dff48ece
UsTnGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-8656bdccfb3f27baee9d12b3e99430cd85928a9815269f92abcfe496c7e8e4af
UsTxCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-6e032fb98f17f70f28d9fbc3796d5f7b7d16fe52116f86bf99a4020f71b1a51e
UsTxGpcSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-69185edba05898d1ca2d9b9200c5653a57bcb0bd43c3d56edf1f03a57c1b1df2
UsUtCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-d759965253ac9f121cf2810fa34faabda7bac4f2eb803b559c76e0e3a1c95488
UsVaCoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-69355fc26b7878dd1c012cd2edb92955b3150f57873a7e4033ae064d254203c7
UspV1CoreSegment.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-10aaa6803a8f4cb6e72162a328b5e34de035677600d47e102020e2ccf81d8b87
GppModelTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-ae8c0971a91ea4a256ed67bb915ecc588494cd9c060ab78989aa8aeb458ac93b
TraditionalBase64UrlEncoderTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-64f5d90dbd8a435b21712dc0af62cb357dcda674acd3ab384de6919db99c962f
EncodableBooleanTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-55e6603a3ec55f64a8c939e9272da6fca7497840f8fe3d4f0633a7b7f3f24431
EncodableDatetimeTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-92eddaf9c492ea1762d7e8a7403e2543ae5cbe2cdce0111e4c826e8b9f4f7bee
EncodableFibonacciIntegerRangeTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-6fdd13bbde868c5c316bb9fdc6db8326a2f55410adb136f2ea252199d0ccd843
EncodableFibonacciIntegerTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-10931c7db5abf6a41aa02c933e165bbcfd720777329fe6c395815bd61d68d581
EncodableFixedBitfieldTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-0b52c8e15d76318ac446d740cb62152fd5c3069ef3dca008b4a930bfdcf9eb73
EncodableFixedIntegerListTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-54cb5dbc951127e208b14facde7d77f5bb802dbb5180be20e51663d12970d438
EncodableFixedIntegerRangeTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-66300ee45ec21248ba59fa170d5b72d3b895d82f9826e55c8b216350cb0991d6
EncodableFixedIntegerTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-fa5a51a0d343d50494dac284adaefe18c2a82b20bc7b45c8e4bd125f70fcbb14
EncodableFixedStringTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-88efaabe8e2b6dfddc11b65efa1ca8d5ed216334ed44da401a20c89473d399d2
EncodableOptimizedFixedRangeTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-0fc9502f66c7045019982f62e6a16ccf2e284a7c13afebeff55e4dff70befbc7
BooleanEncoderTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-b8a81e0c73b965107caca6d9a9c964dc0a8907740fb512be77a693c973ae21cc
DatetimeEncoderTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-a3d512de4ca3221b05a447694dfd40100b813d9ed7b1b24a390fbfe2c4d72d00
FibonacciIntegerEncoderTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-77049eb1c5e74e7e43cdd783148eaaaca5a2584f8f6a5ef66a459b2639b968f1
FibonacciIntegerRangeEncoderTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-9d8c8d0dcfbf2e59b0f7282e3e5071f3b68b4f5406998180b7c94ca36c2b1635
FixedBitfieldEncoderTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-03ab4e9d0ceaf8479cc62bf67ed8e45c19ba8a3e730c94ea2591ca57baf4c6bd
FixedIntegerEncoderTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-e9d23f0bae4c022ad9637017d4f5bd8472916794d74ec13003a8b5ee5aaf75e1
FixedIntegerListEncoderTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-6d14b170a91f8d9c250abf0fc332d2af6311451ff31f2aae477c36664a725e72
FixedIntegerRangeEncoderTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-975d24a1f0daeae0101ce30e6161005d4c2148cf440cdf6d29b047ad99e66bfb
FixedLongEncoderTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-250167e264a466764f0b66bad91dc567cd0e84ee8228850d11566ccb5d7a9699
FixedStringEncoderTest.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-7e5de02234cb77388eb45e00d8da9cd43b7d0aa4aaf9d10adadbdf34fdce300a
HeaderV1Test.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-1d9171aa7516a4d70a092f2187089117a6e5572bbe3c44afe5d67c3c768d5a65
TcfCaV1Test.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-e7691a6dcfb04136ff8798b242fb4c3db5bd9fe2241a11dd3c18847375a08890
TcfEuV2Test.java https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-64fa94e47ffaa727ca96d47c28dd8fedc38b4cfce399a1bd216e68eaae78939a
pom.xml https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-2366ed9efc1c2ecc868a67fec679290a24d4a1fa44d7652133dbe9f77dc82af0
pom.xml https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-9d6a494a61e5d7ece577be733aa57f9a723312a9df05f58a2235c9a528f3d7e4
pom.xml https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-9c5fb3d1b7e3b0f54bc5c4182965c4fe1f9023d449017cece3005d3f90e8e4d8
iabgpp-encoder/pom.xmlhttps://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-9c3052cc989f76ef970a98b358a1f264f24478181bb5e8dda971cc72dc228728
View file https://github.com/yuzawa-san/iabgpp-java/blob/8a87187da0c2649c6f0f66a26000c0f9b9b0bc4a/iabgpp-encoder/pom.xml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/IABTechLab/iabgpp-java/pull/56/{{ revealButtonHref }}
https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-9c3052cc989f76ef970a98b358a1f264f24478181bb5e8dda971cc72dc228728
https://github.com/IABTechLab/iabgpp-java/pull/56/files#diff-9c3052cc989f76ef970a98b358a1f264f24478181bb5e8dda971cc72dc228728
Please reload this pagehttps://github.com/IABTechLab/iabgpp-java/pull/56/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.