GOOGLE SDK OPEN-SOURCE NOTICES QR Decoder: Scan & PDF Tools Effective Date: October 27, 2026 Last Updated: October 27, 2026 1. ABOUT THIS FILE QR Decoder: Scan & PDF Tools (the “App”) is published by Jesus Afkerian, an individual operating under the AFKERIAN INTERACTIVE brand (“AFKERIAN INTERACTIVE,” “we,” “us,” or “our”). The App includes software development kits (SDKs) from Google LLC: Google Mobile Ads, the User Messaging Platform, Google Analytics for Firebase, Firebase Crashlytics, ML Kit and Google Play services, including Nearby Connections. Google distributes each of these libraries with two files, third_party_licenses.json and third_party_licenses.txt, that name the open-source components the library contains and give their license notices. This file and its 5 parts reproduce those notices for the Google library versions listed in Section 2. Each notice is copied exactly as Google distributes it, with two changes only: line endings are written as line feeds, and blank lines at the very start and end of a notice are left out. When Google gives the same notice for several components, or the same notice appears in several libraries, it is reproduced once. Component names are written exactly as Google writes them. Because of their size, the notices are in separate files: GOOGLE_SDK_OPEN_SOURCE_NOTICES_PART_1.txt to GOOGLE_SDK_OPEN_SOURCE_NOTICES_PART_5.txt. Section 3 lists every component, the number of its notice and the part that contains it. The Google SDKs themselves are not open source. Google provides them under the Android Software Development Kit License and the service terms described in AD_SERVICES_NOTICE.txt, FIREBASE_NOTICE.txt, GOOGLE_MLKIT_SCANNER_NOTICE.txt and GOOGLE_NEARBY_NOTICE.txt. If this file and a notice differ, the notice controls for that component. 2. GOOGLE LIBRARIES COVERED The notices come from these Google libraries, at the versions included in the App: - com.google.android.datatransport:transport-runtime:5.0.0 (2 entries) - com.google.android.gms:play-services-ads:25.5.0 (36 entries) - com.google.android.gms:play-services-ads-api:25.5.0 (25 entries) - com.google.android.gms:play-services-ads-identifier:18.0.0 (15 entries) - com.google.android.gms:play-services-appset:16.0.1 (19 entries) - com.google.android.gms:play-services-base:18.5.0 (16 entries) - com.google.android.gms:play-services-basement:18.9.0 (17 entries) - com.google.android.gms:play-services-measurement:24.0.0 (29 entries) - com.google.android.gms:play-services-measurement-api:24.0.0 (27 entries) - com.google.android.gms:play-services-measurement-base:24.0.0 (22 entries) - com.google.android.gms:play-services-measurement-impl:24.0.0 (29 entries) - com.google.android.gms:play-services-measurement-sdk:24.0.0 (29 entries) - com.google.android.gms:play-services-measurement-sdk-api:24.0.0 (22 entries) - com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.1 (59 entries) - com.google.android.gms:play-services-mlkit-document-scanner:16.0.0 (63 entries) - com.google.android.gms:play-services-mlkit-text-recognition:19.0.1 (59 entries) - com.google.android.gms:play-services-mlkit-text-recognition-common:19.1.0 (59 entries) - com.google.android.gms:play-services-nearby:19.5.1 (31 entries) - com.google.android.gms:play-services-stats:17.0.2 (14 entries) - com.google.android.gms:play-services-tasks:18.4.0 (17 entries) - com.google.android.odml:image:1.0.0-beta1 (45 entries) - com.google.android.play:hsdp:2.0.1 (70 entries) - com.google.android.ump:user-messaging-platform:4.0.0 (59 entries) - com.google.firebase:firebase-crashlytics:21.0.1 (2 entries) - com.google.firebase:firebase-measurement-connector:20.0.1 (26 entries) - com.google.firebase:firebase-sessions:4.0.1 (2 entries) - com.google.mlkit:barcode-scanning:17.3.0 (98 entries) - com.google.mlkit:barcode-scanning-common:17.0.0 (55 entries) - com.google.mlkit:common:18.11.0 (57 entries) - com.google.mlkit:text-recognition:16.0.1 (198 entries) - com.google.mlkit:text-recognition-bundled-common:17.0.0 (198 entries) - com.google.mlkit:vision-common:17.3.0 (56 entries) - com.google.mlkit:vision-interfaces:16.3.0 (52 entries) These Google libraries in the App also include license files, but those files name no components: com.google.android.datatransport:transport-api:5.0.0, com.google.android.datatransport:transport-backend-cct:5.0.0, com.google.firebase:firebase-common:23.0.0, com.google.firebase:firebase-components:20.0.0, com.google.firebase:firebase-config-interop:17.0.0, com.google.firebase:firebase-datatransport:21.0.0, com.google.firebase:firebase-encoders-json:19.0.0, com.google.firebase:firebase-installations:20.0.0, com.google.firebase:firebase-installations-interop:18.0.0. 3. COMPONENT INDEX - Abseil: Notice 1 (Part 1) - address_sorting: Notice 2 (Part 1) - Android SDK: Notice 3 (Part 1) - Android SDK Platforms: Notice 3 (Part 1) - android_build: Notice 4 (Part 1) - AndroidX activity library: Notice 5 (Part 1) - AndroidX animated vectordrawable library: Notice 5 (Part 1) - AndroidX annotation experimental library: Notice 6 (Part 1) - AndroidX annotation jvm library: Notice 6 (Part 1) - AndroidX annotation library: Notice 5 (Part 1) - AndroidX appcompat library: Notice 5 (Part 1) - AndroidX appcompat resources library: Notice 5 (Part 1) - AndroidX architecture core common library: Notice 5 (Part 1) - AndroidX architecture core library: Notice 5 (Part 1) - AndroidX architecture core runtime library: Notice 5 (Part 1) - AndroidX architecture library: Notice 5 (Part 1) - AndroidX asynclayoutinflater library: Notice 5 (Part 1) - AndroidX collection jvm library: Notice 5 (Part 1) - AndroidX collection library: Notice 5 (Part 1) - AndroidX compose runtime annotation library: Notice 7 (Part 1) - AndroidX compose runtime library: Notice 5 (Part 1) - AndroidX concurrent futures library: Notice 5 (Part 1) - AndroidX coordinatorlayout library: Notice 5 (Part 1) - AndroidX core ktx library: Notice 5 (Part 1) - AndroidX core library: Notice 5 (Part 1), Notice 7 (Part 1) - AndroidX core viewtree library: Notice 8 (Part 1) - AndroidX cursoradapter library: Notice 5 (Part 1) - AndroidX customview library: Notice 5 (Part 1) - AndroidX documentfile library: Notice 5 (Part 1) - AndroidX drawerlayout library: Notice 5 (Part 1) - AndroidX emoji2 base library: Notice 5 (Part 1) - AndroidX emoji2 views_helper library: Notice 5 (Part 1) - AndroidX exifinterface library: Notice 5 (Part 1) - AndroidX fragment library: Notice 5 (Part 1) - AndroidX interpolator library: Notice 5 (Part 1) - AndroidX legacy coreui library: Notice 5 (Part 1) - AndroidX legacy coreutils library: Notice 5 (Part 1), Notice 6 (Part 1) - AndroidX legacy v4 library: Notice 5 (Part 1) - AndroidX lifecycle common library: Notice 5 (Part 1) - AndroidX lifecycle livedatacore library: Notice 5 (Part 1) - AndroidX lifecycle process library: Notice 5 (Part 1) - AndroidX lifecycle runtime library: Notice 5 (Part 1) - AndroidX lifecycle viewmodel library: Notice 5 (Part 1) - AndroidX lifecycle viewmodel savedstate library: Notice 5 (Part 1) - AndroidX loader library: Notice 5 (Part 1), Notice 7 (Part 1) - AndroidX localbroadcastmanager library: Notice 5 (Part 1) - AndroidX media base library: Notice 5 (Part 1), Notice 6 (Part 1) - AndroidX navigationevent library: Notice 5 (Part 1) - AndroidX performance annotation library: Notice 5 (Part 1) - AndroidX print library: Notice 5 (Part 1) - AndroidX savedstate library: Notice 9 (Part 1) - AndroidX startup runtime library: Notice 5 (Part 1) - AndroidX swiperefreshlayout library: Notice 5 (Part 1) - AndroidX tracing library: Notice 5 (Part 1) - AndroidX v7 library: Notice 5 (Part 1) - AndroidX vectordrawable base library: Notice 5 (Part 1) - AndroidX versionedparcelable library: Notice 10 (Part 1) - AndroidX viewpager library: Notice 5 (Part 1) - angle: Notice 11 (Part 1) - Animal Sniffer: Notice 12 (Part 1) - Apache-2.0: Notice 4 (Part 1) - apksig: Notice 13 (Part 1) - archive_patcher: Notice 14 (Part 1) - Bazel Platforms: Notice 4 (Part 1) - Boost: Notice 15 (Part 1) - BoringSSL: Notice 16 (Part 1) - Brotli: Notice 17 (Part 1) - bzip2: Notice 18 (Part 1) - c-ares: Notice 19 (Part 1) - cblas: Notice 20 (Part 1) - Checker Framework Annotations: Notice 21 (Part 1) - Checker Framework Utilities: Notice 22 (Part 1) - checker_framework_util: Notice 23 (Part 1) - Chrome Certificate Verifier: Notice 24 (Part 1) - cnpy: Notice 25 (Part 1) - Conscrypt: Notice 4 (Part 1) - cppitertools: Notice 26 (Part 1) - cpu_features: Notice 27 (Part 1) - cpuinfo: Notice 28 (Part 1) - Crunchy Crypt: Notice 4 (Part 1) - customtabsclient: Notice 29 (Part 1) - cutlass: Notice 30 (Part 1) - Dagger: Notice 4 (Part 1), Notice 31 (Part 1) - Darts-clone: Notice 32 (Part 1) - dav1d: Notice 33 (Part 1) - dawn: Notice 34 (Part 1) - Dimsum: Notice 4 (Part 1) - double-conversion: Notice 35 (Part 1) - ducc: Notice 36 (Part 1) - ecclesia: Notice 4 (Part 1) - Edge TPU (0): Notice 37 (Part 1) - Edge TPU (1): Notice 38 (Part 1) - Edge TPU firmware callback: Notice 39 (Part 1) - Eigen 3: Notice 40 (Part 1) - Error Prone: Notice 4 (Part 1) - ExoPlayer: Notice 41 (Part 1) - expat: Notice 42 (Part 1) - f2reduce: Notice 43 (Part 1) - fast_hash: Notice 44 (Part 1) - Firebase: Notice 45 (Part 2) - FlatBuffers: Notice 4 (Part 1) - FP16: Notice 46 (Part 2) - from_libaom (0): Notice 47 (Part 2) - from_libaom (1): Notice 48 (Part 2) - FXdiv: Notice 49 (Part 2) - gcc_14_1_0: Notice 50 (Part 2) - gemmlowp: Notice 4 (Part 1) - giflib: Notice 51 (Part 2) - glslang: Notice 52 (Part 2) - Google Auto: Notice 4 (Part 1) - Google Toolbox for Mac: Notice 4 (Part 1) - gRPC: Notice 53 (Part 2) - gRPC Protos: Notice 4 (Part 1) - gsfclient: Notice 4 (Part 1) - Gson: Notice 54 (Part 2) - Guava JDK5: Notice 4 (Part 1) - Guava JDK7: Notice 55 (Part 2) - Halide: Notice 56 (Part 2) - highway: Notice 4 (Part 1) - HighwayHash: Notice 4 (Part 1) - hwloc: Notice 57 (Part 2) - ICU4C: Notice 58 (Part 2) - imath: Notice 59 (Part 2) - intel_dnnl: Notice 60 (Part 2) - J2ObjC: Notice 4 (Part 1), Notice 61 (Part 2), Notice 62 (Part 2), Notice 63 (Part 3) - Jakarta Inject: Notice 4 (Part 1) - java_annotations: Notice 64 (Part 3) - jpegxl: Notice 65 (Part 3) - JsInterop Annotations: Notice 66 (Part 3) - JSpecify: Notice 4 (Part 1) - JSR 250: Notice 4 (Part 1) - JSR 305: Notice 67 (Part 3) - JSR 330: Notice 68 (Part 3) - Khronos OpenGL headers: Notice 4 (Part 1) - KleidiAI: Notice 69 (Part 3) - kotlin: Notice 70 (Part 3) - Kotlin: Notice 71 (Part 3), Notice 72 (Part 3), Notice 73 (Part 3), Notice 74 (Part 4), Notice 75 (Part 4) - Kotlin coroutines: Notice 4 (Part 1) - kotlinx_atomicfu: Notice 4 (Part 1) - kotlinx_serialization: Notice 76 (Part 4) - LAPACK: Notice 77 (Part 4) - legacy_libcxx_sort: Notice 78 (Part 4) - Leptonica: Notice 79 (Part 4) - libaom: Notice 80 (Part 4) - libavif: Notice 81 (Part 4) - libdeflate: Notice 82 (Part 4) - libexecinfo: Notice 83 (Part 4) - libjpeg-turbo: Notice 84 (Part 4) - libpfm4: Notice 85 (Part 4) - liburing: Notice 86 (Part 4) - libwebp: Notice 87 (Part 4) - Libxml2: Notice 88 (Part 4) - libyuv: Notice 89 (Part 4) - Little CMS: Notice 90 (Part 4) - LLVM: Notice 91 (Part 4) - mecab: Notice 92 (Part 4) - MediaPipe: Notice 93 (Part 4) - minizip: Notice 94 (Part 4) - ml_dtypes: Notice 4 (Part 1) - mobiledatadownload: Notice 4 (Part 1) - Mosys: Notice 4 (Part 1) - mozilla_psl: Notice 95 (Part 5) - mp4parser: Notice 96 (Part 5) - Nano Protocol Buffers: Notice 97 (Part 5) - nanoflann: Notice 98 (Part 5) - NCurses: Notice 99 (Part 5) - nearby: Notice 7 (Part 1) - neon2sse: Notice 100 (Part 5) - nsync: Notice 4 (Part 1) - NVIDIA Management Library: Notice 101 (Part 5) - Okio: Notice 4 (Part 1) - Ooura FFT: Notice 102 (Part 5) - open_platforms_util_subtle: Notice 4 (Part 1) - OpenCensus: Notice 4 (Part 1) - opencl_headers: Notice 4 (Part 1) - opencl_icd_loader: Notice 4 (Part 1) - OpenCV: Notice 103 (Part 5) - openexr: Notice 104 (Part 5) - openssh: Notice 105 (Part 5) - p2putils: Notice 106 (Part 5), Notice 107 (Part 5) - PCG Random Number Generator: Notice 76 (Part 4) - pdlp: Notice 4 (Part 1) - perfetto: Notice 108 (Part 5) - piex: Notice 4 (Part 1) - PNG: Notice 109 (Part 5) - pngnq: Notice 110 (Part 5) - program_image_remapper: Notice 4 (Part 1) - Proto Converter: Notice 4 (Part 1) - Protocol Buffers: Notice 97 (Part 5), Notice 111 (Part 5) - Protocol Buffers for Go v2: Notice 112 (Part 5) - Protocol Buffers for Java: Notice 70 (Part 3) - pthreadpool: Notice 113 (Part 5) - RE2: Notice 114 (Part 5) - Riegeli: Notice 4 (Part 1) - ruy: Notice 4 (Part 1) - SafeParcelable library: Notice 4 (Part 1) - sentencepiece: Notice 115 (Part 5) - sequence_lock: Notice 4 (Part 1) - sha3: Notice 116 (Part 5) - sjpeg: Notice 4 (Part 1) - Skia: Notice 117 (Part 5) - sobol_data: Notice 118 (Part 5) - spirv_headers: Notice 119 (Part 5) - spirv_tools: Notice 4 (Part 1) - splitfile: Notice 4 (Part 1) - stablehlo: Notice 4 (Part 1) - SwiftShader: Notice 120 (Part 5) - Tape: Notice 121 (Part 5) - tbb: Notice 4 (Part 1) - TCMalloc: Notice 1 (Part 1) - TensorFlow: Notice 122 (Part 5) - TensorFlow Lite Support: Notice 123 (Part 5) - TensorFlow Models: Notice 124 (Part 5) - TensorFlow Serving: Notice 125 (Part 5) - tf_runtime: Notice 126 (Part 5) - tf_runtime_eigen: Notice 95 (Part 5) - tf_runtime_llvm: Notice 127 (Part 5) - tiff: Notice 128 (Part 5) - Tink: Notice 4 (Part 1) - tz database: Notice 129 (Part 5) - Unsmear: Notice 4 (Part 1) - UTF: Notice 130 (Part 5) - utf8_range: Notice 131 (Part 5) - Volley: Notice 4 (Part 1) - vulkan_headers: Notice 132 (Part 5) - vulkan_loader: Notice 133 (Part 5) - vulkan_memory_allocator: Notice 134 (Part 5) - vulkan_volk: Notice 135 (Part 5) - X.Org: Notice 136 (Part 5) - XCB library: Notice 137 (Part 5) - xmp_toolkit: Notice 138 (Part 5) - XNNPACK: Notice 139 (Part 5) - xxhash: Notice 140 (Part 5) - Zippy: Notice 141 (Part 5) - zlib: Notice 142 (Part 5) - Zstandard: Notice 143 (Part 5) 4. MISSING OR INCORRECT NOTICES If you believe a notice is missing or incorrect, write to afkerian.support@gmail.com with the subject QR Decoder: Third-Party Notices, and we will correct it.